账表列构建原创
28人赞赏了该文章
4,183次浏览
编辑于2021年10月22日 14:30:05
表哥说对账表的列控制不是很清楚,那咱详细说说
用法一:插件控制
初始化时this.ReportProperty.IsUIDesignerColumns = false;
public override void Initialize() { base.Initialize(); //报表的列通过插件控制 this.ReportProperty.IsUIDesignerColumns = false; }
GetReportHeaders方法控制报表列
public override ReportHeader GetReportHeaders(IRptParams filter) { ReportHeader header = base.GetReportHeaders(filter); header.AddChild("FOrgNAME", new LocaleValue("采购组织名称")); var child = header.AddChild("FDeptNAME", new LocaleValue("采购部门名称")); child.ColIndex = 2; header.AddChild("FDate", new LocaleValue("采购日期")); header.AddChild("FMaterialNAME", new LocaleValue("物料名称")); header.AddChild("FQTY", new LocaleValue("数量"), SqlStorageType.SqlDecimal); header.AddChild("FPRICE", new LocaleValue("单价"), SqlStorageType.SqlDecimal); return header; }
用法二:BOS中拖拽字段
初始化时this.ReportProperty.IsUIDesignerColumns = true;
public override void Initialize() { base.Initialize(); //报表的列通过插件控制 this.ReportProperty.IsUIDesignerColumns = true; }
账表中拖拽字段
过滤中添加显示隐藏列
总结,ReportProperty.IsUIDesignerColumns = true时,不会走GetReportHeaders方法,直接从BOS的单据体中加载列信息,但是会根据过滤框中显示隐藏列信息做判断,不勾选时同样不会显示;ReportProperty.IsUIDesignerColumns = false时,走GetReportHeaders方法构建列信息,但是无论过滤框的显示隐藏列是否有,都会显示。
至于下图中这种情况,
我测试了一下,BOS中配置该字段,ReportProperty.IsUIDesignerColumns = false时,GetReportHeaders方法中也配置相同字段,会走BOS中配置的字段属性(比如文本字段显示链接)。
最后再分享两个小技巧:
组合表头,效果如下图:
“&”字符实现了这一骚操作
2.列显示顺序
child.ColIndex = 2;
代码实例如下:
赞 28
28人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读