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

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

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
润乾集算报表多样性数据源之文本文件 多样性数据源在报表开发中越来越常见,润乾集算报表对多样性数据源的有效支持使得 这类报表开发变得非常简单,目前集算报表支持的数据源类型除传统的关系型数据库外,还 支持:TXT 文本、Excel、JSON 、HTTP、Hadoop、mongodb 等。 这里通过两个例子介绍集算报表使用文本数据源制作报表的步骤,对于小文本文件和大 文本文件在集算报表中可以采用不同的方式进行处理。 小文本文件 报表说明 股票交易记录按月以文本形式存储,文件名为 stock_record_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 报表样式如下: 输入查询日期和股票代码,查询到的交易信息 由于某天的股价信息只会存在一个文件中(按月存储),单个文件数据量并不是很大, 因而可以将文件一次性加载到内存中完成数据查询。这里我们也将能够一次性读入内存进行 计算的文件称为小文本文件。以下为具体实现: 编写计算脚本 使用集算编辑器编写脚本 (p1.dfx),完成文件读入和数据过滤,为报表返回结果集。由 于要接收报表传递的参数,首先设置脚本脚本参数 编辑脚本内容 (右侧为格子运行后结果): A =file(E:/stock_record_+string(d_date,yyyy 1 MM)+.txt).import@t() =A1.select(tradingDate==d_date 2 s_code.array().pos(code)!=null) 3 result A2 A1:根据日期参数导入指定文件(一个);这里使用了f.import ()将文本数据一次性读入内存, 采用全内存方式完成数据计算,这也是处理小文件的常用方法 A2 :根据指定日期和股票代码查询交易记录 A3 :为报表返回结果集 编辑报表模板 使用集算报表设计器新建报表模板,并设置参数: 设置数据集,使用 “集算器”数据集类型,调用编辑好的脚本文件(p1.dfx) 其中,dfx 文件路径既可以是绝对路径,也可以是相对路径,相对路径是相对选项中配 置的dfx 主目录的。 编辑报表表达式,直接使用集算脚本返回的结果集,不再在报表中过滤,完成报表制作 通过上面的实现可以看到,使用集算器脚本可以很方便地完成文本文件的读取计算,而 且外置的集算脚本具有可视化的编辑调试环境,编辑好的脚本还可以复用(被其他报表或程 序调用)。不过,如果脚本已经调试好,而且不需要复用的时候,要维护两个文件 (集算脚 本和报表模板)的一致性会比较麻烦,这时候直接使用集算报表的脚本数据集就比较简单了。 在脚本数据集中可以分步编写脚本完成计算任务,语法与集算器一致,还可以直接使用 报表定义好的数据源(本例并未涉及)和参数。可以这样使用脚本数据集替代集算器数据集 (集算脚本)部分(报表参数、表达式等部分与使用集算器数据集时完全一致,不再赘述): 直接使用报表定义的参数date 和code 。 大文本文件 除了可以用小文本文件做为报表数据源,集算报表还可以读取大文本文件(无法一次性 读入内存进行计算)。与小文本处理方式不同,集算报表采用外存计算的方式来处理大文件, 这里也通过实例来说明。 我们更改一下上面的报表需求,要求可以查询指定时间段的某些股票交易信息。由于时 间跨度可大可小,所以需要读入的文件可能很多,这时无法将多个文件一次性加载到内存中 进行计算,需要使用处理大文本的外存计算方式。以下为具体实现: 编写计算脚本 设置脚本参数 编辑脚本内容 (右侧为格子运行后结果) A =to(int(string(b_date,yyyyMM

文档评论(0)

xiaofei2001129 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档