明细表拆分
有时要求明细表在流程审批的特定环节只能看到其中的一部分数据。
比如:某路由器分销公司,代理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