《U8开发听我说》第二讲:UAP报表显示动态列

发布时间 2023-04-02 01:10:20作者: u8dev

《U8开发听我说》专栏,查看文章清单请点击

点我:《U8开发听我说》专栏发布

 

UAP报表动态列

什么是动态列呢?动态列是指在UAP报表设计时并不能得到其列的信息(包括字段名称,字段类型等信息),在组织数据源的时候将某些需要展示到报表运行时的列添加到数据源临时表中,UAP报表数据引擎在读取数据源时,如果发现有符合动态列命名规则的列在临时表中时,会按照预先设定的规则来展示在报表运行时,这种列就叫做动态列。

动态列设置规则:

由于该报表为多列头报表,因此具体规则如下:父列头<下划线>子列头,而如果是单列头的,则只需要将你需要显示的动态列动态添加到临时表最后的位置就可以了。

效果展示:

图片

动态列能干啥:

  1. 根据sql组织的临时表,可以动态扩展列

  2. 支持多表头,临时表字段名格式应为【销售部_金额】、【销售部_比率】

动态列弊端:

  1. 无法单独设置动态列的格式,比如显示格式为金额千分位

  2. 输出Excel文件时,格式不能设置显示格式

  3. 动态列不能单独设置列宽(目前没有找到好的方案)

动态列UAP如何实现:

  1. 临时表先组织非动态列的列,按照正常报表设置UAP相关内容

  2. 临时表增加上动态列

  3. UAP设计器,选中这张报表,在右侧属性栏选中Report对象,然后将动态列默认显示和支持动态列设置为true

  4. 刷新报表,即可看到动态列显示

图片

好了,最终的结果就是下面这张图的效果了,想怎么动态显示列就怎么显示,是不是感觉很不错。

图片

动态列后端如何实现:

动态列后端存储过程中的sql,实现方式也比较简单,将行转列实现即可,关于sql行转列可参考下文链接或者自行搜索学习下。

利用 SQL 实现行转列和列转行操作

最后说一句(整理不易,求关注,别白嫖我)

如果这篇文章对您有所帮助,或者有所启发的话,帮忙扫描下发二维码关注一下,您的支持是我坚持写作最大的动力。
关注公众号:【用友二次开发分享】,每天学习U8开发干货知识;

微信搜索:【知识星球】-《用友U8开发者社区》,几百篇开发文档等着你,还可以跟更多开发前辈交流和学习。