设为首页 收藏本站
查看: 969|回复: 0

[经验分享] 使用Sharepoint web应用程序用户满意度调查程序详解

[复制链接]

尚未签到

发表于 2015-9-27 07:14:32 | 显示全部楼层 |阅读模式
  上篇文章说过,我们使用Sharepoint的web应用程序来实现用户满意度调查,这里再解释一下这个情景:

  • 服务台的工程师为公司员工提供服务,用户满意度是绩效考核指标之一,利用sharepoint的调查可以直观的统计满意度的百分比,不用开发,因此,我们就用sharepoint自带的调查列表。
  • 但是,调查中,我们要能够包含以下内容:提供服务的工程师是谁?提供服务的时间?提供服务的内容?满意度?用户的建议和投诉?如果这些都要用户去填的话,一方面是用户不会记得那么多,另一方面,是用户不愿意填那么多,因此,除了满意度和用户意见,其他的我们都应该让系统产生。
  • 怎么产生呢?因为,我们每个工程师在每次服务结束后多要填报服务记录,上面的那些信息服务记录里都有,因此可以从那里去。但是,用户并没有读取这个服务记录的权限(服务记录也使用sharepoint的自定义列表做的)。
  • 因此,我们设计一个sharepoint的web程序,从服务记录中读取相关信息,把用户的满意度和意见写回调查问卷中去。
  • 在工程师填写好服务记录之后,用工作流给用户发一个邮件,邮件中包含一个链接地址,链接到这个web程序,并且传送一个服务记录的ID

  • 当用户点击这个链接的时候,就会打开这web程序,上面是服务信息,包含服务记录的id,服务工程师的姓名、服务内容、服务时间,下半部分就是让用户填的满意度和意见。
    DSC0000.png
  程序如下:
  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["事件描述"] != null)
  {
  strEventDescript = strEventDescript + eventItem.Versions["事件描述"].ToString();
  }
  if (eventItem.Versions["事件处理过程"] != null)
  {
  eventExe = eventExe + eventItem.Versions["事件处理过程"].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);
  }
  }
  调查库里就会增加一条记录:
  
DSC0001.png
  用sharepoint调查库自己的功能就可以统计出满意度:
DSC0002.png

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-119226-1-1.html 上篇帖子: 发布infopath模板到sharepoint站点 下篇帖子: 利用jQuery定制Sharepoint的WebPart样式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表