ABI分析表-附件下载ABI接口详解及示例

4310
2

yangqh 数据老手Lv5

发表于2020-8-21 15:42

楼主
本帖最后由 yangqh 于 2020-8-21 15:50 编辑

适用需求背景:数据库表中有blob字段存储文件格式数据,希望在分析表格中加一列下载按钮,点击后可下载对应行的附件文件到本地


该需求可用到ABI附件下载接口,以下给出接口说明:
接口函数名[ _showfile(dwfile, keyfields, keyDwValues, destFile, format,fileSuffix)

下载示例:
  1. var dwfile = "CLGLCLXX.CLGL_CLXX_CLNR";
  2. var keyDwValues=[];
  3. var value="<#=GRID6.E2#>"
  4. keyDwValues.push(value);
  5. var format=null;
  6. var filename= "<#=GRID6.D2#>";
  7. var fileSuffix = filename.split(".")[1];
  8. var destFile= filename.split(".")[0];
  9. _showfile(dwfile, ['CLGL_CLXX_CLBH'], keyDwValues, destFile, format,fileSuffix);
复制代码

参数详解:
第一个参数:dwfile 代表需要下载的数据库blob字段名称,CLGLCLXX.CLGL_CLXX_CLNR代表的是数据库表CLGLCLXX中的CLGL_CLXX_CLNR字段,此CLGL_CLXX_CLNR字段为需要下载的blob字段(不可为空)
第二个参数: keyfields:关键字表元(可为多条数据,格式为"keyfield1##keyfield2##..")
第三个参数:keyDwValues:关键字表元对应的值(可为多条数据,格式为"keyDwValue1##keyDwValue2##..")
代表的是dwfile这条数据对应的两个字段名,值与value一一对应,由这两个数据确定dwfile这一条数据(不可为空)
第四个参数:destFile 代表的是下载的文件名(不可为空)
第五个参数:format 代表的是文件类型(可为空 为空填null)
第六个参数:fileSuffix 代表文件后缀(不可为空)

后台查询原理以及对应参数:
后台查询数据库是根据参数中的值拼接sql:dwfile 中包含表名以及需要查询的字段名,keyfields 代表筛选的数据库列名,keyDwValues代表这个字段对应的值,
按照上述示例所拼接出的sql为:select CLGL_CLXX_CLNR from  CLGLCLXX where CLGL_CLXX_CLBH="keyDwValues"

-----------------------------话不多说,我们在分析表中实战一下~----------------------------------------------------------------------------------------------------------

Step1、在报表模板做好分析表格,其中注意以下几点:
(1)因为数据库表中一条数据对应一个文件,所以浮动表元上设置分组类型为“只选择不分组”
(2)表格上需要拾取出所有主键字段,以便后面脚本中可直接引用、找到对应需要下载的那一行的附件表元(如果表样界面不需要显示对应列,可设置列隐藏)
Step2、在“下载”表元上设置万能式表达式
  1. var c="<#=GRID1.A2#>"+"##"+"<#=GRID1.B2#>";
  2. var d="文件名";
  3. _showfile('ICEHI_B0.A_12',"ICEHI_B0.BBQ_##ICEHI_B0.USERID_", c,d,null,"xlsx");
复制代码
(写法参考上面接口说明)
PS:以上是当blob字段中存储的文件格式都为一种(xlsx)时的示例,如果当blob字段中存储的文件类型各不相同,需要自行在数据库表中维护一个文件类型字段列,在做表格的时候吧文件类型取出来,然后作为变量拼接到接口的fileSuffix参数中




最近看过此主题的会员

lingzed

杨国签

Yuuuu

gelin

2个回答

只看楼主

wxqing 初学数据Lv2

发表于2021-4-16 11:27

只看该作者

取消 关注该作者的回复

沙发

想请问下,按照上面的方法,下载下来的附件都是空白的,感觉是这里出问题   ----第一个参数:dwfile 代表需要下载的数据库blob字段名称。
这除了写上数据库的blob字段外,还有其他注意点吗?

niuyi688988 初学数据Lv2

发表于2021-9-27 16:42

只看该作者

取消 关注该作者的回复

板凳

我也是空的

登录后可回答问题,请登录注册

快速回复 返回顶部 返回列表

小时

全天响应

分钟

快速处理问题

工程师强势助力

明星产品
解决方案
联系合作

400咨询:400-0011-866

技术支持QQ:400-0011-866(工作日9:00-18:00)

产品建议邮箱yixin@esensoft.com

关注我们

扫TA学习更多干货

一对一专家交流

版权所有© 2006-2024 北京亿信华辰软件有限责任公司 京ICP备07017321号 京公网安备11010802016281号