


























上篇文章说过,我们使用Sharepoint的web应用程序来实现用户满意度调查,这里再解释一下这个情景:
当用户点击这个链接的时候,就会打开这web程序,上面是服务信息,包含服务记录的id,服务工程师的姓名、服务内容、服务时间,下半部分就是让用户填的满意度和意见。

程序如下:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Utilities;
public partial class _Default : System.Web.UI.Page
{
public string strEventDescript;
public string eventID;
public string eventEngneerName;
public string eventTitle;
public string evnetTime;
public string strErr;
public string eventExe;
protected void Page_Load(object sender, EventArgs e)
{
//因为普通用户(接受服务的人)没有权限访问信息管理部内部的服务登记系统,因此需要提升权限
SPSecurity.RunWithElevatedPrivileges(delegate()
{
//打开信息管理部内部的网站
SPSite eventSite = new SPSite("http://itsm.sharepointtest.net/imd");
SPWeb eventWeb = eventSite.AllWebs["/imd"];
//进入服务记录(事件记录表)的列表库
SPList eventList = eventWeb.Lists["事件记录表"];
//接收从链接中用?itemID=XXXX传进来的事件ID号
string quryId = Request.QueryString["ItemID"].ToString();
//通过ID获取记录
SPListItem eventItem = eventList.GetItemById(int.Parse(quryId));
try
{
//从记录中获取相关信息,填到页面上
//SPList eventList=eventWeb.Lists["事件记录"];
eventID = eventItem["ID"].ToString();
eventTitle = eventItem["标题"].ToString();
eventEngneerName = eventItem["处理人"].ToString().Replace(";#", "-");
string[] strArr = eventEngneerName.Split('-');
eventEngneerName = "";
//有可能有多名工程师为他提供服务,因此通过一个循环获取所有工程师的名字,这个地方用了一个比较歪的点子,去掉用户名前面的";#[数字]"
int arrCount = strArr.Length;
for (int j = 0; j < arrCount; j++)
{
try
{
int temp = int.Parse(strArr[j]);
}
catch (Exception e1)
{
eventEngneerName = eventEngneerName + strArr[j] + ";";
string err1 = e1.Message;
}
}
evnetTime = eventItem["事件发生时间"].ToString();
//由于在事件描述这个字段上启用了"追加内容的"功能,也就是说工程师可以在这个多行输入框中追加内容,但是没有办法改变原来的内容,因此,需要读出所有的记录
int n = eventItem.Versions.Count;
for (int i = n - 1; i >= 0; i--)
{
if (eventItem.Versions[i]["事件描述"] != null)
{
strEventDescript = strEventDescript + eventItem.Versions[i]["事件描述"].ToString();
}
if (eventItem.Versions[i]["事件处理过程"] != null)
{
eventExe = eventExe + eventItem.Versions[i]["事件处理过程"].ToString();
}
}
}
catch (Exception ex)
{
//TextBox2.Text = ex.Message;
strErr = ex.Message;
Response.Write(strErr);
}
eventWeb.Close();
eventSite.Close();
});
}
protected void Button1_Click(object sender, EventArgs e)
{//单击按钮,将内容提交到调查中
try
{
SPSite dcSite = new SPSite("http://itsm.sharepointtest.net/itservice");
SPWeb dcWeb = dcSite.AllWebs["/itservice"];
SPList dcList = dcWeb.Lists["IT服务台服务质量反馈调查"];
SPListItem dcItem = dcList.Items.Add();
dcItem["相关事件ID"] = eventID;
dcItem["为您提供服务的工程师是:"] = eventEngneerName;
dcItem["服务时间是:"] = evnetTime;
dcItem["本次服务的主要内容是:"] = eventTitle;
if (TextBox1.Text == "")
{
dcItem["您的意见和建议:"] = "无";
}
else
{
dcItem["您的意见和建议:"] = TextBox1.Text;
}
if (RadioButton1.Checked == true)
{
dcItem["对工程师的服务态度您是否满意"] = "非常满意";
}
if (RadioButton2.Checked == true)
{
dcItem["对工程师的服务态度您是否满意"] = "满意";
}
if (RadioButton3.Checked == true)
{
dcItem["对工程师的服务态度您是否满意"] = "不满意";
}
if (RadioButton4.Checked == true)
{
dcItem["对工程师的服务态度您是否满意"] = "非常不满意";
}
dcWeb.AllowUnsafeUpdates = true;
dcItem.Update();
dcWeb.AllowUnsafeUpdates = false;
dcWeb.Close();
dcSite.Close();
Label1.Text = "您的评价已经成功提交到服务器服务器上,再次感谢您的支持!";
Button1.Enabled = false;
RadioButton1.Enabled = false;
RadioButton2.Enabled = false;
RadioButton3.Enabled = false;
RadioButton4.Enabled = false;
TextBox1.Enabled = false;
Label1.Visible = true;
// });
}
catch (SPException ex1)
{
Response.Write(ex1.Message);
}
//Response.Write(dcWeb.Title);
}
}
调查库里就会增加一条记录:

用sharepoint调查库自己的功能就可以统计出满意度:

此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。