需求背景:

用户生成的报表样式比较固定是较常见的网格式报表,但是要求可以选择报表的数据来源(数据表),并可以选择需要展现哪些列。根据用户选择结果生成报表查询结果。

实现思路:
1. 利用宏可控制数据集的取数sql,实现同一数据集可根据参数输入不同得到不同的数据表检索结果。
2. 利用datasetName.field( stringExp )及datasetName.fieldName( intExp )实现动态列报表。

实现步骤:
1. 参数、宏、数据集配置:
参数说明:

Sql:根据参数table动态生成宏,"select * from "+@table

数据集说明:
数据集ds1,数据集sql语法:${sql},直接利用宏运算结果作为数据集。
2. 报表模板设计

B2:=columns,根据接收到的字段序号组结果,横向扩展出若干个格子
B3:= ds1.fieldname(B2),根据列号取数据集的列名
B4:=ds1.field(B3),获得数据集当前行或者当前组中第一行中,指定列的数据
A4单元格为数据集结果的行号,不显示,只是作为主格。
3. 参数模板设计
数据集说明:


 
其中C2单元格变量名为table,编辑方式为下拉数据集:

E2单元格变量名为columns,编辑方式为下拉数据集

该单元格实现了和B2单元格的动态过滤,并支持多选功能。

实现效果:

用户可以通过选择数据库表及表中相应的字段生成自定义的网格式报表。

补充说明:
此种方式的报表格式比较固定,只能实现最简单意义上的报表自定义。另外函数datasetName.field(#colNo )的性能比较低应该慎用!

润乾实现简单自定义动态列报表相关推荐

  1. 润乾ajax,通过异步请求实现报表组功能

    问题描述:通过ajax的异步处理来切换多张报表的模型,类似润乾中的 具体实现: 首先先做两张普通的raq报表,用于之后展现所用. 在最终展现的页面中加入两个标签,分别通过触发js来进行异步处理,分别传 ...

  2. 报表没完没了怎么办? | 润乾集算器提效报表开发

    完整资料下载: 报表没完没了怎么办?| 报表提效方案

  3. 润乾集算报表多样性数据源之动态SQL传递

    大多数情况下报表的数据源SQL都是固定的,但有时也需要动态变动其中某些部分实现动态拼出,比如在报表应用中允许用户通过选择表和字段查询自己关心的报表数据,报表开发时则希望对同类报表(明细或汇总)使用同一 ...

  4. 润乾报表CookBook与使用

    part1 1. 数据源相关 1.1 报表工具连接文本数据 1.2 报表工具连接非关系数据库(待补充) 1.3 报表异构数据源关联混算 1.4 报表工具 json 数据源 1.5 报表工具连 sap ...

  5. 如何实现报表的动态列展现效果

    在数据信息系统中,常常会看到这样一类报表需求,它们往往格式简单,一般为列表式明细报表,但是要显示的列很多.而不同终端用户在不同时刻关心的数据又不同,这样就要求报表能够让他们随心所欲的选择要显示的列,以 ...

  6. 中国式报表——介绍信实现(润乾 vs 帆软)

    介绍信是一种常见的格式文件,事实上也可以看做一种报表.传统方式是印好空白格式文件,用时手工填写.现在,电子信息系统已经日益普及,介绍信也可以在应用系统中选择人员信息后,通过代码或报表工具直接生成,然后 ...

  7. 润乾报表的竞争对手到底是谁?

    说到润乾报表的竞争对手,度娘有好多答案告诉你,我就不一一赘述了,还有什么技术对比啊.谁抄袭谁啊.谁的图更好看啊.谁的内存容易崩溃啊等等,看起来很热闹,但是我要告诉你,NO,这些现在都不是! 我们都知道 ...

  8. 【案例分享】使用ActiveReports报表工具,在.NET MVC模式下动态创建报表

    提起报表,大家会觉得即熟悉又陌生,好像常常在工作中使用,又似乎无法准确描述报表.今天我们来一起了解一下什么是报表,报表的结构.构成元素,以及为什么需要报表. 什么是报表 简单的说:报表就是通过表格.图 ...

  9. 润乾集算报表用Java动态修改报表数据源

    实际应用中通过程序动态修改报表模板的情况很常见,其中动态修改数据源SQL就是一种典型场景.常见于系统中有一些结构相同而数据源不同的报表,为减少报表开发工作量,只开发一套报表模板,使用时通过程序动态修改 ...

最新文章

  1. rancher安装mysql_四、rancher搭建Mysql集群化部署,做到同步备份
  2. 《HTML、CSS、JavaScript 网页制作从入门到精通》——6.6 单元格属性
  3. html5点线的设置,html5 Canvas画图教程(2)—画直线与设置线条的样式如颜色/端点/交汇点...
  4. mysql 5.6开启binlog_docker快速入门02——在docker下开启mysql5.6 binlog日志
  5. 个人随笔-《江城子·驻西航》
  6. 删除对于job收缩日志失败547_MySQL中常见的几种日志
  7. vue中获取输入框中得到值_如何获取vue input的值
  8. 底部显示水平滚动_LG专利展示带有可滚动显示屏和触控笔的智能手机
  9. 21天战拖记——Day6:复习阶段性完成!(2014-05-09)
  10. 2017全球光伏增速或放缓 国内“6·30”仍将是分水岭
  11. 翻译:如何理解梯度下降算法Gradient Descent algorithm
  12. HTML黑客帝国代码雨
  13. GB28181国标协议
  14. leetcode **773. 滑动谜题(拼图)(2021.6.26)
  15. 正好配资在线开户叶飞带崩小票
  16. 买哪种计算机可以弹奏,还能酱紫玩:网友用AMD撕裂者3990X的126个框框演奏音乐...
  17. Php扫码签到功能怎么实现,扫码签到常用方法_云分组小程序
  18. 动图如何在线制作?教你一键在线制作动图
  19. PHPStorm 配置 debug 默认参数
  20. 详解BlockingQueue

热门文章

  1. DataSnap 用TStream 传递大数据 返回流大小为-1的情况
  2. neoterm如何安装python_NeoTerm下载-NeoTerm(安卓终端)下载v2.1.0-be8d6cf 安卓版-西西软件下载...
  3. soap 版本可能不匹配: 出现意外的 envelope 命名空间_Collaboratorv11.5版本上新!GitHub Polling集成被弃用!...
  4. Win64 驱动内核编程-19.HOOK-SSDT
  5. Windows核心编程 第十七章 -内存映射文件(下)
  6. POJ2688状态压缩(可以+DFS剪枝)
  7. hdu4499 搜索
  8. 【Android 逆向】ART 脱壳 ( DexClassLoader 脱壳 | DexClassLoader 构造函数 | 参考 Dalvik 的 DexClassLoader 类加载流程 )
  9. 【错误记录】Android 应用打包错误 ( Entry name ‘assets/xxx.xml‘ collided )
  10. 网卡的7种bond模式