刘政道 - 应用程序框架

《31天学会CRM项目开发(C#编程入门及项目实战)》作者,IT经理,程序员
  博客园  :: 新随笔  :: 联系 :: 管理

SharePoint2007状态机工作流开发案例(转载)

Posted on 2008-11-26 14:00  刘政道  阅读(803)  评论(4编辑  收藏  举报


必备工具

VS2008+VSeWSSv12


目标
创建一个档案借阅审批流程,申请人提出申请>本部门经理审批>档案经理审批>创建归还记录。

实现方式
新建eaLend数据表,以存储申请单基本信息;

Image

新建eaLend.aspx网页,存储在layouts文件夹下,该网页用于显示申请单填写或查看;

Image

创建档案借阅文档库,用于存放申请单(新申请单创建时),申请单的内容指向eaLend.aspx

Image

申请单内容:

<script language='javascript'>location.href='http://moss /_layouts/eaLend.aspx?f=workflowdocs/档案借阅申请00007.html00007.html'; </script>


实际上是给eaLend.aspx传递个参数,如果参数f为空,就是新建一个申请表单,如果有值,就显示该表单。

Image

审批人以任务形式完成审批任务

Image
Image

新建项目

Image
Image

对审批任务的判断

private void StateTask002_While_002(object sender, ConditionalEventArgs e)

{

try

{

string result = onTaskChanged2_AfterProperties1.ExtendedProperties[workflowProperties.TaskList.Fields[" 审批"].Id].ToString();

if (result == "拒绝")

{

SPList cList = workflowProperties.TaskList;

SPListItem cItem = cList.GetItemById(onTaskChanged2_AfterProperties1.TaskItemId);

string str = cItem["修改者"].ToString();

str = "&nbsp;审批人:" + str.Remove(0, str.IndexOf("#") + 1) + "&nbsp;审批时间:" + DateTime.Now.ToLocalTime().ToString();



//

e.Result = true;

}

else { e.Result = false; }

}

catch (Exception ex) { logs(ex.ToString()); }

}

审批完成后的结果
Image