润乾集算报表多样性数据源之文本文件

上传人:xzh****18 文档编号:44377597 上传时间:2018-06-09 格式:PDF 页数:5 大小:642.88KB
返回 下载 相关 举报
润乾集算报表多样性数据源之文本文件_第1页
第1页 / 共5页
润乾集算报表多样性数据源之文本文件_第2页
第2页 / 共5页
润乾集算报表多样性数据源之文本文件_第3页
第3页 / 共5页
润乾集算报表多样性数据源之文本文件_第4页
第4页 / 共5页
润乾集算报表多样性数据源之文本文件_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《润乾集算报表多样性数据源之文本文件》由会员分享,可在线阅读,更多相关《润乾集算报表多样性数据源之文本文件(5页珍藏版)》请在金锄头文库上搜索。

1、润乾集算报表多样性数据源之文本文件润乾集算报表多样性数据源之文本文件 多样性数据源在报表开发中越来越常见, 润乾集算报表对多样性数据源的有效支持使得 这类报表开发变得非常简单, 目前集算报表支持的数据源类型除传统的关系型数据库外, 还支持:TXT 文本、Excel、JSON、HTTP、Hadoop、mongodb 等。 这里通过两个例子介绍集算报表使用文本文本数据源数据源制作报表的步骤, 对于小文本文件和大文本文件在集算报表中可以采用不同的方式进行处理。 小文本小文本文件文件 报表报表说明说明 股 票 交 易 记 录 按 月以 文 本 形 式 存储 , 文 件 名 为 stock_record

2、_yyyyMM.txt ( 如stock_record_200901.txt) ,文本内容包括股票代码、交易日期和收盘价。现根据指定日期精 确查询某一只或几只股票的收盘价,以便进行股价趋势分析。文本内容如下: code tradingDate price 120089 2009-01-01 00:00:00 50.24 120123 2009-01-01 00:00:00 10.35 120136 2009-01-01 00:00:00 43.37 120141 2009-01-01 00:00:00 41.86 120170 2009-01-01 00:00:00 194.63 报表样式如下

3、: 输入查询日期和股票代码,查询到的交易信息 由于某天的股价信息只会存在一个文件中(按月存储) ,单个文件数据量并不是很大,因而可以将文件一次性加载到内存中完成数据查询。 这里我们也将能够一次性读入内存进行 计算的文件称为小文本文件。以下为具体实现: 编写编写计算计算脚本脚本 使用集算编辑器编写脚本(p1.dfx) ,完成文件读入和数据过滤,为报表返回结果集。由 于要接收报表传递的参数,首先设置脚本脚本参数 编辑脚本内容(右侧为格子运行后结果) : A 1 =file(“E:/stock_record_“+string(d_date,“yyyy MM“)+“.txt“).importt() 2

4、 =A1.select(tradingDate=d_date & s_code.array().pos(code)!=null) 3 result A2 A1: 根据日期参数导入指定文件 (一个) ; 这里使用了 f.import()将文本数据一次性读入内存, 采用全内存方式完成数据计算,这也是处理小文件的常用方法 A2:根据指定日期和股票代码查询交易记录 A3:为报表返回结果集 编辑编辑报表模板报表模板 使用集算报表设计器新建报表模板,并设置参数: 设置数据集,使用“集算器”数据集类型,调用编辑好的脚本文件(p1.dfx) 其中,dfx 文件路径既可以是绝对路径,也可以是相对路径,相对路径是

5、相对选项中配置的 dfx 主目录的。 编辑报表表达式,直接使用集算脚本返回的结果集,不再在报表中过滤,完成报表制作 通过上面的实现可以看到, 使用集算器脚本可以很方便地完成文本文件的读取计算, 而且外置的集算脚本具有可视化的编辑调试环境, 编辑好的脚本还可以复用 (被其他报表或程 序调用) 。不过,如果脚本已经调试好,而且不需要复用的时候,要维护两个文件(集算脚 本和报表模板) 的一致性会比较麻烦, 这时候直接使用集算报表的脚本数据集就比较简单了。 在脚本数据集中可以分步编写脚本完成计算任务, 语法与集算器一致, 还可以直接使用报表定义好的数据源(本例并未涉及)和参数。可以这样使用脚本数据集替

6、代集算器数据集(集算脚本)部分(报表参数、表达式等部分与使用集算器数据集时完全一致,不再赘述) : 直接使用报表定义的参数 date 和 code。 大文本文件大文本文件 除了可以用小文本文件做为报表数据源, 集算报表还可以读取大文本文件 (无法一次性读入内存进行计算) 。 与小文本处理方式不同, 集算报表采用外存计算的方式来处理大文件,这里也通过实例来说明。 我们更改一下上面的报表需求, 要求可以查询指定时间段的某些股票交易信息。 由于时 间跨度可大可小, 所以需要读入的文件可能很多, 这时无法将多个文件一次性加载到内存中 进行计算,需要使用处理大文本的外存计算方式。以下为具体实现: 编写编

7、写计算脚本计算脚本 设置脚本参数 编辑脚本内容(右侧为格子运行后结果) A 1 =to(int(string(b_date,“yyyyMM“),int(string(e_ date,“yyyyMM“).select(%1000) 2 =A1.(file(“E:/stock_record_“+string()+“.txt“).c ursort().conjx() 3 =A2.select(tradingDate=b_date & tradingDate=e_date & s_code.array().pos(code)!=null) 4 result A3.fetch() A1:根据日期范围计算需要查询的月份,以确定用到的文件 A2: 循环所有月份, 使用 f.cursor()建立文件游标, 并通过 cs.conjx()将多个游标合并为一个;与使用 f.import()一次性读入内存不同,文件游标只是外存文件的引用,并未实际读入数据 A3:根据参数进行过滤,仍然返回游标 A4:使用 cs.fetch()通过游标取出结果后为报表返回 编辑编辑报表模板报表模板 设置报表参数 设置数据集 编辑报表表达式 通过以上步骤即可完成大文件的读取计算。 集算报表提供内外存不同的处理方式可以满 足用户不同的报表需求,为文本文件数据源报表开发提供帮助。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 统计图表

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号