56.2、报表插件,树形账表原创
金蝶云社区-林荫大道cc身份
林荫大道cc
8人赞赏了该文章 4526次浏览 未经作者许可,禁止转载编辑于2020年07月15日 21:17:24
封面

56.1



和 上一节 55.2 操作类似



1、添加类 TreePOOrderDetailt.cs


2、引用,使用,继承和上一节一样


3、复制 53.3的代码


image.png



4、改成树形账表 TREE


this.ReportProperty.ReportType = ReportType.REPORTTYPE_TREE;


image.png



5、树形报表


        // 树形报表必须实现的方法,此方法用于为报表提供树形依据。
        public override List<TreeNode> GetTreeNodes(IRptParams filter)
        {
            //属性报表添加数据源
            DynamicObject customFilter = filter.FilterParameter.CustomFilter;
            
            List<TreeNode> nodelist = new List<TreeNode>();
            
            StringBuilder sb = new StringBuilder();
            
string sSQL = string.Format(@"/*dialect*/select a.FORGID,FNAME as Orgname from T_ORG_ORGANIZATIONS a
inner join T_ORG_ORGANIZATIONS_L b 
on a.FORGID = b.FORGID and b.FLOCALEID = 2052  
where a.FORGID in ({0})", Convert.ToString(customFilter["F_PAEZ_OrgId"]));
            
            sb.Append(sSQL);
            
            DynamicObjectCollection DOCL = DBUtils.ExecuteDynamicObject(this.Context, sb.ToString());
            
            for (int i = 0; i < DOCL.Count; i++ )
            {
                TreeNode rootNode = new TreeNode()
                {
                    children = new List<TreeNode>(),
                    id = DOCL[i]["FORGID"].ToString(),
                    text = DOCL[i]["Orgname"].ToString()
                };
                nodelist.Add(rootNode);
            }
            return nodelist;
        }


image.png



6、和上一节一致


image.png



7、增加 临时表,过滤条件


if(((TreeRptParams)filter).CurrentGroupID !=null &&((TreeRptParams)filter).CurrentGroupID.ToString() != "-1" )
     {
         sql = sql + " AND  FPURCHASEORGID=" + ((TreeRptParams)filter).CurrentGroupID.ToString();
     }


image.png



8、后面和上一节代码一样,具体请参考附件代码


8.1、请参考最后面附件WORD,红书部分是在上一节简单账表上做的修改;


9、注册插件



10、最终效果,打开报表,左边显示树形结构,本例只有一个组织,按组织显示,类似物料列表左边的树形结构;


image.png


总目录链接

https://vip.kingdee.com/article/6499387201459123

56.2.zip(49.05KB)

树形账表.docx(45.06KB)

赞 8