有时要求明细表在流程审批的特定环节只能看到其中的一部分数据。

比如:某路由器分销公司,代理3个品牌:H3C、ZTE、CISCO,每个品牌的报价分别由不同部门负责,在处理客户订单时,订单中可能包含各种品牌的路由器,流程处理时,需要按品牌拆分明细表,由不同部门分别处理相应的销售条目。

明细表拆分可以可以通过设置实现,对于复杂的拆分逻辑也可以书写代码实现。

拆分效果

在H3C处理环节,只能看到明细表中H3C产品条目。

通过设置实现

在节点属性中的“数据控制”页签可进入“明细表过滤”设置界面,对相应字段设置过滤值即可。

本例中使用常量过滤,也可以在开窗中选择其他过滤值,比如表单字段和处理人账号、部门、扩展属性匹配。

代码过滤

当过滤条件复杂时,还可以使用代码过滤。

使用代码过滤时,在节点属性\事件页签\OnFiltering事件中书写相应代码即可。

过滤时只需对明细表数据按行循环,对不可见的行设置row.Visible = false即可。

本例代码:

FlowDataTable table = Context.Current.FormDataSet.Tables["PurchaseDetail"];

foreach(FlowDataRow row in table.Rows)

{

   string prodCode = Convert.ToString(row["ItemCode"]);

   if (prodCode.StartsWith("1")) //H3C产品编码以“1”开头

      row.Visible = true;

   else

      row.Visible = false;

}

Created with the Personal Edition of HelpNDoc: Easy EBook and documentation generator