网站首页 > 技术文章 正文
报表可以理解为多样的布局 + 动态的数据 + 丰富的输出,数据是报表的核心。所有炫动的布局和展示都是建立在真实数据基础上,缺少了真实数据报表则是空洞没有意义的。因此数据源设置是报表数据绑定操作的第一步,也是最核心的一步。
如果说数据是水,数据库或数据文件就是水库,那么数据源就是连接水库的管道,用户看到的数据集是管道里流出来的水。因此信息化工具必须能够支持强大的数据源,兼容的数据源类型必须能够覆盖现有的数据类型。
报表的数据来源可以是数据库(如:SQL Server、Oracle、Mysql、SQLite、Postgresql)等关系型的数据结构,也可以是单独文件(如:Excel、XML、Txt,CSV,Json)等业务系统生成的数据文件,也可以是其他形式(如:WebService、Google Analytics、Salesforce)。
葡萄城报表支持更丰富的数据源格式,不仅支持常用的SQL Server,Oracle,Mysql 等关系型数据库,更能够支持JSON,CSV,XML 等文档型数据源,JSON 数据是Web系统数据传递的DNA,因此支持Json 数据源为用户创建Web端报表提供了极大的便捷性。
常见报表支持绑定数据源方式
1. 根据报表状态将绑定数据源类型分为:
设计时数据源:在设计时为报表设置报表数据源,即设计报表时,已经预先设置报表数据源,用于研发内部、报表小组进行配置、测试报表用。运行时数据源:在运行时为报表设置报表数据源,即动态绑定数据源,用于数据动态生成的报表系统,运行时数据源可在运行时执行相关数据源操作如修改数据库连接字符串。设计时数据源的运行比较广:配置报表、测试、运行报表。而运行时数据库切换数据库连接字符串即可无缝实现数据源在用户现场部署,相对比较容易。
2. 根据绑定的报表数据源数量分为:单数据源:为报表只设置单一的数据源。多数据源:当单一数据源无法满足报表需求时,需要为报表设置多个数据源,报表显示的数据来自多个不同的文件或数据库。
设置报表数据源
每个报表工具都有自己的数据源绑定操作流程,但是无论是哪种报表工具,都包含以下基本步骤。
设置设计时数据源的基本步骤:
1.指定数据源
2.指定数据集
3.将数据集字段与数据控件绑定
设置动态时数据源的基本步骤:
1.添加数据控件
2.设置空数据源及数据集,数据字段
3.将数据字段与数据控件绑定
4.在代码中添加需要的数据源,与设置的数据集对应
葡萄城报表中使用 JSON 数据源
JSON数据格式已成为互联网的DNA。因此在AR11中我们智慧的开发者们也教会AR来使用JSON 数据源,增加了对JSON 数据的支持:
文件系统
Web服务
REST API
葡萄城报表不仅支持静态时直连JSON数据,也支持为报表绑定运行时JSON数据;页面和RDL 报表均提供了JSON 数据提供器。
JSON 连接字符串和查询语句定义
JSON 数据源的连接字符串包含以下内容:
Json schema 可以是schema URL 或文件路径
内嵌JSON Schema
JSON 数据文件可以是引用外部json 文件的url或路径,这些文件中必须包含 ”xmldoc”关键字。如:
jsondoc=http://www.xmlfiles.com/examples/cd_catalog.json
使用”jsondata”关键字将数据内嵌到报表中,如:
jsondata={"employees":[
{"firstName":"John","lastName":"Doe"},
{"firstName":"Anna", "lastName":"Smith"},
{"firstName":"Peter", "lastName":"Jones"}]}
jsondata支持表达式的使用,表达式可以在运行时使用,如依赖用户使用上下文的json数据源。
数据集查询语句遵循JSON PATH的规范。
1. 新建RDL 报表
2. 添加数据源
2.1 选择JSON 类型
选择Schema
如果您不知道具体的JSON Schema ,推荐网站可根据您的Json Data生成对应的Schema:
http://jsonschema.net/#/
设置内容
查看连接字符串
3. 添加数据集
右键单击“DataSource1”选择添加数据集
选择可视化查询设计器
JSON查询生成器,会根据您指定的JSON Schema生成具体的Json结构,可根据选择生成查询语句
选择节点后,点击确定,自动生成查询语句,点击确定后,会生成可选的字段名称。
在数据控件中绑定数据
在这里Json数据源就绑定成功了。
猜你喜欢
- 2024-10-19 Node-RED系列(六):Node-RED解析节点的使用
- 2024-10-19 越南指数行情数据API接口(越南指数股票最新行情)
- 2024-10-19 Pinot 架构分析(pod架构)
- 2024-10-19 大模型开发者实战揭秘:SFT指令微调数据构建的全方位指南
- 2024-10-19 27K star!这款开源可视利器帮你一眼看穿JSON
- 2024-10-19 linux-shell命令处理json数据(linux检查json格式)
- 2024-10-19 MongoDB常用特性一览(mongodb4.2新特性)
- 2024-10-19 轻量级的原生JavaScript的Excel插件——JExcel
- 2024-10-19 5万字长文!搞定Spark方方面面(五)
- 2024-10-19 越南指数清单列表数据API接口(越南指数清单列表数据api接口在哪)
- 最近发表
- 标签列表
-
- cmd/c (64)
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- sqlset (64)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)