[二开案例] 引出支持移除行原创
2人赞赏了该文章
188次浏览
编辑于2022年11月04日 16:53:33
部分场景下,引出数据需要过滤,移除掉部分不需要的数据。
以下代码演示了,按引入模板引出时,移除单据体字段业务关闭等于“业务终止”的行。
参考以下代码:
public class ExportByImportPlugIn : AbstractListPlugIn { public override void BeforeExportDataNew(BeforeExportDataNewArgs e) { var ds = e.obj as DataSet; if (ds == null || ds.Tables.Count ==0) return; //有分组的单据,数据可能在Tables[1](跟据是否引出分组参数) var dt = ds.Tables[0]; //判断行业务终止状态,需要在引入模板中设置此字段引出(BOS IDE需要配置此字段的允许引出) if (!dt.Columns.Contains("FMRPTerminateStatus")) return; Stack<int> removeStack = new Stack<int>(); for (int i = 0; i < dt.Rows.Count; i++) { //如果需要修改表格的值,可以使用dt.Rows[i]["colName"] ="指定的值"; if (dt.Rows[i]["FMRPTerminateStatus"]!=null && dt.Rows[i]["FMRPTerminateStatus"].ToString() == "业务终止") { removeStack.Push(i); } } //使用栈,先移除后面再移除前面的 while (removeStack.Count > 0) { var index = removeStack.Pop(); dt.Rows.RemoveAt(index); } }
推荐阅读