您的位置:首页 > 其它

采用Visual Studio 2008 开发工作流模板(二)

2009-07-23 22:18 405 查看
设计工作流模板的任务表单

上一节已经看到了默认的任务编辑页面,这显然是不符合实际要求,普通的审批页面一般具有一个意见框、一个批准和拒绝的选项。本节讲述如何采用InfoPath来开发自定义的任务操作界面。

设计表单

Step1 新建表单。打开InfoPath,选择"表单模板"单选按钮,确认选中"仅启动浏览器兼容性功能"复选框,如图1所示。



图1 新建表单

Step2 添加数据源域。在数据源中添加两个字段域,一个名称为"comments",数据类型为"文本";另一个名称为"approval",数据类型为"boolean",如图2和图3所示。



图2添加数据源域



图3 添加数据源域

Step3 插入布局表格。选择"插入"菜单中的"版式表格"选项,插入一个3行1列的布局表格,如图4和图5所示。



图4 插入布局表格



图5 插入布局表格

Step4 设计表单字段。将审批意见域拖曳到布局表格上,并调整高度。将审批结果域拖曳到布局表格上,并且更改为选项按钮,分别在两个单项框后面添加批准和拒绝文字,如图6所示。



图6 设计表单字段

Step5 添加"提交"按钮。通过设计任务转到插入控件面板,拖曳一个按钮控件到布局表格中,双击按钮,在属性窗口中将按钮标签改为"提交",如图7所示。



图7 添加提交按钮

Step6 添加按钮规则。单击"规则"按钮,在规则编辑窗口中单击"添加"按钮,如图8所示。在添加规则窗口单击"添加操作"按钮,如图9所示。





图8 添加按钮规则 图9 "添加操作"按钮

选择使用数据连结进行提交操作,单击"添加"按钮,如图10所示。在"数据连接向导"窗口中,选择"新建连接"和"仅提交数据"单选按钮,如图11所示。





图10 使用数据连接进行提交操作 图11 选择"新建连接"和"仅提交数据"

单击"下一步"按钮,选择"提交到宿主环境"单选按钮,如图12所示,再单击"下一步"按钮,在弹出的窗口中单击"完成"按钮,然后依次单击"确定"按钮,返回规则编辑窗口。在规则编辑窗口中添加关闭表单操作,如图13所示,最终设计好的表单如图14所示。





图12 选择提交到宿主环境 图13 添加关闭表单操作



图14 设计好的表单

2.发布表单

Step1 确认表单的安全级别为"完全信任"。通过"工具"菜单调出"表单选项"窗口,在"安全和信任"类别中选中表单的安全级别为"完全信任",如图15和图16所示。





图15 调出"表单选项"窗口 图16 确认表单的安全级别为"完全信任"

Step2 单击设计任务面板中的"发布表单模板"链接,如图17所示。在"发布向导"窗口中选择"网络位置"单选按钮,单击"下一步"按钮,如图18所示。





图17 任务面板 图18 "发布向导"窗口

Step3 指定表单模板的发布位置为项目所在的目录,指定文件名为"ApprovalForm.xsn",单击"下一步"按钮,如图19所示。确保如图20所示的路径输入框为空,单击"下一步"按钮完成表单发布。





图19 指定表单模板的发布位置

图20 路径输入框

3.修改工作流的配置文件和代码

Step1 确保表单正确发布到项目目录中,如图21所示。



图21 确保表单正确发布到项目目录

Step2 修改feature.xml文件。在feature.xml文件的ElementManifests节点下添加如下代码,确保infopath表单能被Visual Studio自动发布。

<ElementFile Location="ApprovalForm.xsn" />

最终的feature.xml文件如下所示。

<?xml version="1.0" encoding="utf-8" ?>

<Feature Id="cb022cd6-9eb8-4102-9fb0-103ea0580283"

Title="CodeArt.WorkflowDemo1 feature"

Description="My SharePoint Workflow Feature"

Version="12.0.0.0"

Scope="Site"

ReceiverAssembly="Microsoft.Office.Workflow.Feature, Version=12.0.0.0,

Culture=neutral, PublicKeyToken=71e9bce111e9429c"

ReceiverClass="Microsoft.Office.Workflow.Feature.WorkflowFeatureReceiver"

xmlns="http://schemas.microsoft.com/sharepoint/">

<ElementManifests>

<ElementManifest Location="workflow.xml" />

<ElementFile Location="ApprovalForm.xsn" />

</ElementManifests>

<Properties>

<Property Key="GloballyAvailable" Value="true" />

<!-- Value for RegisterForms key indicates the path to the forms relative to

feature file location -->

<!-- if you don't have forms, use *.xsn -->

<Property Key="RegisterForms" Value="*.xsn" />

</Properties>

</Feature>

Step3 修改workflow.xml文件。在workflow.xml文件的Workflow节点下添加如下属性,确保工作流创建的任务采用infopath表单内容类型。

TaskListContentTypeId="0x01080100C9C9515DE4E24001905074F980F93160"

在MetaData节点下添加任务的FormURN注册,代码如下所示。

<Task0_FormURN>urn:schemas-microsoft-com:office:infopath:Task0:-myXSD-2008-10-02T19-07-06</Task0_FormURN>

FormURN的实际值可以通过infopath表单的"文件"→"属性"命令获得,如图22所示的ID域即是表单的FormURL。



图22 表单模板属性

Step4 修改greateTask的MethodInvoking事件处理方法,指定TaskType为0,代码如下。

private void createTask1_MethodInvoking(object sender, EventArgs e)

{

this.task1Id = Guid.NewGuid(); //生产任务ID

this.task1Properties.Title = "文档审批";

this.task1Properties.AssignedTo = "codeart\\user1"; //指定任务操作人

this.task1Properties.TaskType = 0; //设置任务采用第一个任务表单

//将任务编辑权限分配给任务操作人

this.specialPermissions1.Add(this.task1Properties.AssignedTo,

SPRoleType.Contributor);

}

以上操作完成后可以再次部署工作流,启动流程后可以看到如图23所示的任务编辑页面。



图23 任务编辑页面

4.表单的校验步骤

InfoPath表单发布后,访问任务页面的时候可能会出现表单加载错误,这个现象大多数情形下是由表单本身引起的,可以先通过SharePoint管理中心的管理表单模板模块进行校验,确保表单校验成功。表单校验步骤如下。

Step1 访问应用程序管理中的管理表单模板模块,如图24所示。



图24 管理表单模板模块

Step2 单击"上载表单模板"链接,如图25所示。



图25 "上载表单模板"链接

Step3 单击"浏览"按钮找到项目目录中发布后的模板,再单击"校验"按钮,确定表单验证状态为"成功",如图26和图27所示。若表单校验不成功,则按照提示信息操作。



图26 验证表单模板



图27 表单验证成功

转载:http://book.csdn.net/bookfiles/936/10093629438.shtml
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: