套打树形单据体如何所见即所得
树形单据体比较特殊,分录行是有父子关系,但是表里面的记录并没有按父子关系插入,套打的时候去取数,就是按表的数据插入的先后进行打印的,所以往往会造成在界面上看到的顺序跟打印出来的树形单据体的顺序不一致。
明显数据的顺序不一致。
那么应该如何处理呢?
通过插件干预套打数据源的方法可以实现效果一致。
public override void OnPrepareNotePrintData(Core.DynamicForm.PlugIn.Args.PreparePrintDataEventArgs e) { base.OnPrepareNotePrintData(e); if (e.DataSourceId.Equals("FDetailEntity")) { List<DynamicObject> newDataObjs = e.DataObjects.Where(p => Convert.ToString(p["FPARENTROWID"]).TrimEnd().Length == 0).OrderBy(p => p["FDetailEntity_FSeq"]).ToList(); List<DynamicObject> objList = new List<DynamicObject>(); Sort(newDataObjs, objList, e.DataObjects); e.DataObjects = objList.ToArray(); } }
private void Sort(List<DynamicObject> tempDataObjs, List<DynamicObject> objList, DynamicObject[] orgDataObjects) { for (int i = 0; i < tempDataObjs.Count(); i++) { string rowId = tempDataObjs[i]["FROWID"].ToString(); var tempObjs = orgDataObjects.Where(p => Convert.ToString(p["FPARENTROWID"]) == rowId).OrderBy(p => p["FDetailEntity_FSeq"]).ToList(); if (!objList.Contains(tempDataObjs[i])) objList.Add(tempDataObjs[i]); if (tempObjs.Count > 0) { objList.AddRange(tempObjs); Sort(tempObjs, objList, orgDataObjects); } } }
树形单据体的有FPARENTROWID,FROWID和FDetailEntity_FSeq可以进行父子关系的关联和排序。
套打树形单据体如何所见即所得
树形单据体比较特殊,分录行是有父子关系,但是表里面的记录并没有按父子关系插入,套打的时候去取数,就是按表的数据插入的先后进行打印的...
点击下载文档
本文2024-09-23 04:13:35发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-163934.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章