一般一个工作流工程里面会包含很多工作流任务表单。我们在Visual Studio 2005开发的时候如何让程序知道在某个任务的时候给用户显示相应的工作流任务表单呢?
我们在设计工作流的时候,创建每个任务项的CreateTask Activity的对应有一个SPWorkflowTaskProperties类型的TaskProperties属性。我们在创建一个Task时候一般的过程类似:
private void CreateTask1(object sender, EventArgs e)
{
this.taskID_ReviewerApproval = Guid.NewGuid(); //initialize the task id
this.workflowTask1Properties.Title = "Reviewer: Please review this document";
this.workflowTask1Properties.AssignedTo = this.ReviewerName;
this.workflowTask1Properties.Description = this.instruction;
this.workflowTask1Properties.TaskType = 0;
this.workflowTask1Properties.ExtendedProperties["Comment"] = "";
this.workflowTask1Properties.ExtendedProperties["Instruction"] = this.instruction;
this.workflowTask1Properties.ExtendedProperties["CurrentReviewer"] = this.ReviewerName;
}
一般如果你的工作流中只有一个任务表单,上面红色标识的“this.workflowTask1Properties.TaskType = 0;”这句可以不写。
但是,如果你有多个不同的任务表单,就必须包括这句代码来指定使用哪个任务表单。
TaskType的值和Workflow.xml中的Metadata中的Task*_FormURN有如下对应关系:
<MetaData>
<Instantiation_FormURN>urn:schemas-microsoft-com:office:infopath:SMWorkflowDemoStartForm:-myXSD-2006-05-21T19-13-08</Instantiation_FormURN>
<Association_FormURN>urn:schemas-microsoft-com:office:infopath:SMWorkflowDemoStartForm:-myXSD-2006-05-21T19-13-08</Association_FormURN>
<Task0_FormURN>urn:schemas-microsoft-com:office:infopath:SMWorkflowDemoApproveForm:-myXSD-2006-04-27T03-00-28</Task0_FormURN>
<Task1_FormURN>urn:schemas-microsoft-com:office:infopath:SMWorkflowDemoReviseForm:-myXSD-2006-04-27T03-11-15</Task1_FormURN>
<Task2_FormURN>urn:schemas-microsoft-com:office:infopath:SMWorkflowDemoApproveForm:-myXSD-2006-04-27T03-00-28</Task2_FormURN>
<StatusPageUrl>_layouts/WrkStat.aspx</StatusPageUrl>
</MetaData>
TaskType为0的对应Task0_FormURN,TaskType为1的对应Task1_FormURN,以此类推。如果不指定TaskType的值,默认使用Task0_FormURN。
闭关了大半个月,终于把书稿完成了,应该会在之后不长的一段时间和大家见面!
以下是书稿中三个章节的目录(该目录在书出版前可能变化)
第四章 Office SharePoint Server 2007 开发概览
第一节 Windows SharePoint Services 3.0的对象模型概览
1、WSS3.0的核心名称空间和对象模型特点
2、WSS3.0的服务器场和网站结构
3、WSS3.0的文件系统
4、WSS3.0的网站栏、内容类型、列表和文档库
5、WSS3.0的网站内容查询管理
6、WSS3.0的用户权限系统
7、WSS3.0的界面导航定制
第二节 Windows SharePoint Services 3.0的Web服务
1、WSS3.0 Web服务概览
2、WSS3.0 Web服务的使用方法
第三节 Windows SharePoint Services 3.0增强的事件处理机制
1、WSS3.0事件处理机制概览
2、WSS3.0事件处理程序开发与部署
3、WSS3.0事件处理程序实战
第八章 Excel Services
第一节 Excel Services 的应用场景
1、共享和维护Excel工作簿
2、建立商业智能仪表盘
3、重用Excel工作簿中的计算逻辑
4、Excel Services可以无处不在
第二节 Excel Services 的架构与特性
1、Excel Services的架构
2、Excel Services的运行机制与性能
3、Excel Services的外部数据访问
4、Excel Services不支持的特性
第三节 Excel Services 的配置与使用
1、Excel Services的配置
2、Excel Services的使用
3、Excel 工作簿访问Web Part的使用(Excel Web Access)
第四节 Excel Services 的开发应用
1、Excel Services的Web Services接口介绍
2、利用Excel Services的Web Services接口建立应用程序
3、Excel Services中的用户自定义函数(UDFs)开发
第九章 InfoPath Forms Services
第一节 InfoPath Forms Services 的应用场景与架构
1、InfoPath Forms Services的应用场景
2、InfoPath Forms Services的运行机制
3、InfoPath Forms Services的应用架构
第二节 InfoPath Forms Services 的配置使用
1、配置InfoPath Forms Services
2、发布InfoPath表单
第三节 InfoPath表单容器XmlFormView
1、XmlFormView表单容器简介
2、XmlFormView Web Part的使用
3、XmlFormView控件实战:在自定义Web页面中嵌入InfoPath表单
如果大家对章节内容安排有什么好的建议,欢迎回复或直接给我邮件
MOSS中一般的都是在FormServer.aspx页面中查看填写InfoPath表单。如果我们要把InfoPath表单放在我们自己的Web部件页或者自定义的页面中的时候就需要有表单装载的容器。我们都知道XmlFormView控件是InfoPath提供的表单Web装载容器控件,在自定义页面中我们可以用它来把表单嵌入页面。但是,在Web部件页,我们就需要做成Web Part来用。现在,在网上我们可以找到一些这样的Web Part。前阵子我也写过一个叫InfoPatViewPart的Web Part来完成这项工作。
最近,在写书的过程中,发现之前写的InfoPathViewPart是白写了的。InfoPath提供的XmlFormView本身就可以当成Web Part来使用!用Reflector查看Microsoft.Office.InfoPath.Server.dll的时候发现:
public class XmlFormView : WebPart, INamingContainer
既然继承自WebPart,所以肯定可以当成WebPart来用了。
部署XmlFormView Web Part的方法:
1)把Microsoft.Office.InfoPath.Server.dll(位于服务器的C:\Program Files\Microsoft Office Servers\12.0\Bin)拷贝到你想部署的Web Application对应的IIS目录的bin目录下;
2)在Web.config的SafeControls节里加入
<SafeControl Assembly="Microsoft.Office.InfoPath.Server, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
Namespace="Microsoft.Office.InfoPath.Server.Controls" TypeName="XmlFormView" Safe="True" />
3)iisreset,在网站集中导入XmlFormView Web Part,即可使用。
在网站中使用XmlFormView Web Part:
XmlFormView Web Part的属性:
功能:
ShowHeader:显示上面的工具栏
ShowFooter:显示下面的工具栏
EditingStatus:编辑状态设置:Init,Closed,Edting
Options:参数,只支持DisableSave参数,是否显示保存按钮的参数设置
数据绑定:
XsnLocation:表单模板的地址(形如:http://moss/DocLib1/Forms/template.xsn)
XmlLocation:要装载的表单文件的地址 (形如:http://moss/DocLib1/毛毛.xml)
SaveLocation:填写的表单xml文件存储位置(形如:http://moss/DocLib1/)