KimhillZhang  

设计工作流模板的任务表单

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

设计表单

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

新建表单

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

2添加数据源域

3 添加数据源域

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

插入布局表格

5 插入布局表格

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

6 设计表单字段

Step5  添加"提交"按钮。通过设计任务转到插入控件面板,拖曳一个按钮控件到布局表格中,双击按钮,在属性窗口中将按钮标签改为"提交",如图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  修改greateTaskMethodInvoking事件处理方法,指定TaskType0,代码如下。

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

posted on 2009-07-23 22:18  KimhillZhang  阅读(1223)  评论(0编辑  收藏  举报