56.2、报表插件,树形账表原创
11人赞赏了该文章
5,591次浏览
编辑于2020年07月15日 21:17:24
续
和 上一节 55.2 操作类似
1、添加类 TreePOOrderDetailt.cs
2、引用,使用,继承和上一节一样
3、复制 53.3的代码
4、改成树形账表 TREE
this.ReportProperty.ReportType = ReportType.REPORTTYPE_TREE;
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; }
6、和上一节一致
7、增加 临时表,过滤条件
if(((TreeRptParams)filter).CurrentGroupID !=null &&((TreeRptParams)filter).CurrentGroupID.ToString() != "-1" ) { sql = sql + " AND FPURCHASEORGID=" + ((TreeRptParams)filter).CurrentGroupID.ToString(); }
8、后面和上一节代码一样,具体请参考附件代码
8.1、请参考最后面附件WORD,红书部分是在上一节简单账表上做的修改;
9、注册插件
10、最终效果,打开报表,左边显示树形结构,本例只有一个组织,按组织显示,类似物料列表左边的树形结构;
总目录链接
赞 11
11人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读