QuickFlow只不过是SharePoint默认工作流功能的一个扩展,QuickFlow系列教程中没有涉及的内容,一般都是MOSS默认的功能,比如WF跟InfoPath表单的交互。
<亮剑>一书中详细讲述了WF和InfoPath表单的交互方法,工作流这章可以免费试读:
http://book.csdn.net/bookfiles/936/10093629438.shtml
工作流代码不能直接给表单域赋值,给表单域赋值必须借助于辅助数据源来进行。
以下是添加辅助数据源的步骤.
Step1 新建ItemMetadata.xml文件
新建一个文本文件,改名为ItemMetadata.xml,添加以下内容:
<z:row xmlns:z="#RowsetSchema"
ows_comments="" />
ows开头的属性是辅助数据源中的字段,工作流代码可以控制这些字段的值,按照需要可以添加多个字段,但是要注意字段命名的格式:以ows_开头。
Step2 添加数据连接
单击工具菜单中的数据连接菜单
图 9-1 数据连接菜单
在数据链接窗口单击添加按钮。如图9-58所示。选择新建链接,仅接受数据。单击下一步。
图 9-2 添加数据连接
选择从XML文档接收数据。如图9-56所示。单击下一步。
图 9-3
选择Step1中新建的ItemMetadata.xml文件作为数据文件。如图9-60所示。
图 9-4
确认选中图9-61所示的选项。
图 9-5
输入数据连接名称为ItemMetadata,单击完成。如图9-62所示。
图 9-6
添加好辅助数据源之后,需要将辅助数据源中的属性和表单域关联起来。
工作流代码可以控制辅助数据源中字段的值,但是默认情况下,辅助数据源是不会显示到表单上的,我们一般设置表单域的默认值为辅助数据源中字段的值,这样表单加载的时候即可显示辅助数据源中的字段数据。
假设我们要在任务表单显示的时候,审批意见框默认显示辅助数据源中ows_comments字段的值,操作步骤如下:
Step1 单击主数据源中的comments域,弹出如图9-63所示的属性编辑窗口。
图 9-7
Step2 单击默认值区域中的编辑按钮,在插入公式窗口单击选择域或组按钮。如图9-64所示。
图 9-8
Step3 在选择域或组窗口,切换到ItemMetadata辅助数据源,选择ows_comments域,单击确定按钮,如图9-65所示。
图 9-9 选择域
Step3 单击所有确定按钮,返回域或组属性编辑窗口,如图9-66所示。单击确定。
图 9-10 设置初始值
表单修改好之后,需要重新发布表单到工作流项目所在的目录。
最后,我们来修改工作流代码,来给辅助数据源中的ows_comments域赋值。
修改Task的TaskCreating事件处理方法如下:
private void task1_TaskCreating(object sender, QuickFlow.TaskEventArgs e)
{
e.TaskProperties.ExtendedProperties["comments"] = Comments1;
}
通过SPWorkflowTaskProperties类的ExtendedProperties属性可以控制辅助数据源的值。注意,尽管辅助数据源中的域全部是以ows_开头,但是代码访问的时候是不需要带ows_的。