1 业务场景
EAS报表取异构系统中的数据。
2 解决方案
万能取数公式主要解决存在于EAS系统中的数据,但需要手动将数据粘贴到报表的场景,异构系统数据中心连接后,可通过万能取数公式直接将异构系统中的数据取到报表上,便于现场开发人员提高报表取数自动化率。
万能取数公式有以下三种取数方式:
序号 | 功能 | 说明 |
1 | 报表插入查询方案 | 根据输入的sql语句,在报表计算时直接形成报表。 |
2 | 动态sql设置 | 动态罗列报表填充的罗列项不来源于基础资料,但可以用sql语句取到。 |
3 | sqlgetdata取数公式 | Sqlgetdata取数公式,应用动态项sql设置和sqlgetdata公式结合,能解决大部分手工取数的自动化。 |
3 操作步骤
(1)连接外部数据中心
【路径:战略管理->合并基础资料->集成管理->外部数据中心】
①分配相应的功能权限
②点击新增进入外部数据中心-新增界面,输入数据中心编码、名称、数据库类型等必录项目,测试连接成功后保存。
(2)使用万能取数公式
方式一:报表插入查询方案
报表编辑界面,插入菜单栏下点击“查询方案”选项,打开脚本编辑界面,设置sql。
①脚本编辑框。用来输入脚本,并支持引用报表单元格的值,书写格式为: $+sheetName/sheetIndex+!+单元格,如:$Sheet1!A3:A5;如果输入当前页的 单元格,书写格式可以简化为: $A2;以 $ 符号开头,表示单元格,可以用sheetName或者index 表示Sheet,index以0开始。
②脚本查看。会将脚本编辑框中的脚本翻译成可执行的脚本,按测试按钮可以测试脚本的语法正确性。
③报表标题。输入该sql查询内容的主题,按应用需要,非必填,最终会在插入查询方案的单元格显示。
④在报表中显示字段。勾选后会将sql语句中查询的字段名或别名作为行头显示。
⑤伸缩罗列。勾选后计算时,sql查询出来的内容会插入行显示在报表,不覆盖原先内容;不勾选,计算时则会覆盖对应单元格的内容
⑥清除列。勾选后,计算式会将对应范围内的内容清除;不勾选,则会插入对应列数再填充报表。
⑦样式继承。当插入查询方案单元格下面一行设置了样式,计算填充后,会继承其样式。
计算结果:
方式二:动态sql取数
报表编辑界面,工具菜单栏下点击“动态sql设置”选项,打开动态sql设置编辑界面,设置sql。
①sql编辑。跟普通ksql语句语法一致。
②sql语句参数:a、要作为替换取数公式中的@符号的字段用别名dynaItem,作为罗列项显示的用别名showValue;
b、支持取报表变量作为sql的条件。{company}--公司编码、{currency}--币别编码、{startyear}--起始年、{endyear}--结束年、{startperiod}--起始期间、{endperiod}--结束期间、{startdate}--起始日期、{enddate}--结束年、{@}--罗列项
③重复项显示编号。勾上后,当sql语句中取出的值showValue部分有重复时,会加上序号1,2,3…罗列;不勾选,则只会罗列一个
计算结果:
方式三:Sqlgetdata取数公式
报表编辑界面,打开公式设置,选择sqlgetdata取数公式,点击F7,打开动态sql设置编辑界面,设置sql。
①Sql语句参数。跟普通ksql语句语法一致。
②sql语句参数编辑框:a、要作为返回值放到单元格的字段用别名returnValue,用用罗列项作为过滤条件的字段别名dynaFilter,设置了dynaFilter将按列计算,大大提高效率。
b、支持取报表变量作为sql的条件。{company}--公司编码、{currency}--币别编码、{startyear}--起始年、{endyear}--结束年、{startperiod}--起始期间、{endperiod}--结束期间、{startdate}--起始日期、{enddate}--结束年、{@}--罗列项
计算结果:
4 注意事项
• 注意事项1
动态sql取数的基准点需要是手动罗列,在基准点下一行的单元格设置sql语句,设置完后,在报表计算时会跟来源基础资料的填充并计算功能一致。
• 注意事项2
Sqlgetdata取数公式类似kpgetsql公式,但该公式应用动态项sql设置和sqlgetdata公式结合,计算效率比kpgetsql效率高。
更多EAS报表集成相关功能点击链接查看☟
EAS报表集成方案专题汇总