【cpt导出】

请问大家,我想实现cpt模板中展示是一个sql,导出的数据是另一个sql(最好能复用展示的样式和字段名称),请问能实现吗?

FineReport ran1025 发布于 2023-2-2 14:11
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
jenniferjunLv4初级互助
发布于2023-2-2 14:28

可以通过js大数据集导出,导出数据

https://help.fanruan.com/finereport/doc-view-2597.html?source=4

var widgetNames = ['aa']; //定义数组存放控件名称 function getWidgetValueByName(name) { var widget = _g().parameterEl.getWidgetByName(name); //根据控件名获取控件值 if (widget == undefined) return; var obj = {}; obj[name] = widget.getValue(); console.log(obj); return obj; //返回控件值组成的数组 } var paramJson = widgetNames.map(getWidgetValueByName).reduce(function(a, b) { return Object.assign(a, b) }); var paramJsonStr = JSON.stringify(paramJson); //将json数据转换为字符串 var col = _g().getParameterContainer().getWidgetByName("col").getValue();//需导出的列 //alert(col); //参数进行url编码 var colNames = encodeURIComponent(col) //调用导出接口 _g().directExportToExcel("ds1", "名称", encodeURIComponent(paramJsonStr), colNames);

  • ran1025 ran1025(提问者) 请问_g().directExportToExcel(\"ds1\", \"名称\", encodeURIComponent(paramJsonStr), colNames); \"名称\"这个部分是一个复杂查询sql怎么写呢?
    2023-02-02 15:45 
  • jenniferjun jenniferjun 回复 ran1025(提问者) 名称是随便什么就可以啊,主要是ds1改成你要导出的数据集啊,复杂的sql在数据集里面啊
    2023-02-02 15:57 
  • ran1025 ran1025(提问者) 回复 jenniferjun 阿懂了。我以为这个名称是指数据库表名,谢谢我再试试
    2023-02-02 15:58 
  • ran1025 ran1025(提问者) 我模板有2个参数A,B,其中A为空则默认全部,请问js怎么实现:导出js的参数只跟随B变动,A则默认为空
    2023-02-02 16:07 
最佳回答
0
CD20160914Lv8专家互助
发布于2023-2-2 14:12

做两个cpt文件了。。。自定义导出另一个模板。里面的sql不一样就行了

  • ran1025 ran1025(提问者) 因为原始cpt数据有4w行,又有一些条件格式等,直接展示4w行数据很费时间,我想能否展示部分数据,直接有一个按钮导出全部数据。如果另外做一个cpt就还是又回到了这个问题
    2023-02-02 14:16 
  • CD20160914 CD20160914 回复 ran1025(提问者) https://help.fanruan.com/finereport/doc-view-4682.html 这里看一下。反正不管如何。原理都是一样的。要导出还要保留的话,你就得展示了才能导出有格式的。不然只导出明细可以有单独的js,比较快,但是这样是没有任何格式了
    2023-02-02 14:17 
  • ran1025 ran1025(提问者) 回复 CD20160914 这个插件似乎只接受11.0.5版本,我显示还是10
    2023-02-02 14:22 
  • CD20160914 CD20160914 回复 ran1025(提问者) https://market.fanruan.com/plugin/835d9d7c-65d2-4f7f-9b1d-d6b0e15a8aeb 有10的呀
    2023-02-02 14:24 
最佳回答
0
snrtuemcLv8专家互助
发布于2023-2-2 14:12

这个不就是两个cpt,展示一个,导出一个

  • ran1025 ran1025(提问者) 因为原始cpt数据有4w行,又有一些条件格式等,直接展示4w行数据很费时间,我想能否展示部分数据,直接有一个按钮导出全部数据。如果另外做一个cpt就还是又回到了这个问题
    2023-02-02 14:16 
  • snrtuemc snrtuemc 回复 ran1025(提问者) 那这个就不支持了,有大数据集导出插件,但是没有报表格式
    2023-02-02 14:16 
  • ran1025 ran1025(提问者) 回复 snrtuemc 这个插件似乎只接受11.0.5版本,我显示还是10
    2023-02-02 14:22 
  • snrtuemc snrtuemc 回复 ran1025(提问者) 10 有的啊,参考大数据集导出插件-https://help.fanruan.com/finereport10.0/doc-view-3610.html
    2023-02-02 14:23 
最佳回答
0
崔家豪Lv4见习互助
发布于2023-2-2 14:14(编辑于 2023-2-2 14:15)

image.png

选择导出其他模板

  • ran1025 ran1025(提问者) 我这里点击事件选不到导出事件?只有【提交入库】【发送邮件】【JS脚本】【移动端弹窗】
    2023-02-02 14:22 
  • 崔家豪 崔家豪 回复 ran1025(提问者) https://help.fanruan.com/finereport/doc-view-1142.html 试试这个,页面放个按钮,添加一个「点击」事件,写js导出
    2023-02-02 14:31 
  • ran1025 ran1025(提问者) 回复 崔家豪 示例【大数据集导出动态参数值】是模板有2个参数,导出数据跟随这2个参数变动。请问怎么实现导出数据只跟随其中一个参数变动,另一个参数默认为空?
    2023-02-02 16:17 
最佳回答
0
用户y5617963Lv5见习互助
发布于2023-2-2 14:20

你做俩个cpt文件,自定义一个导出按钮,然后设置点击后,里面加上这个js就成,参数那个看你,需要的话就加,不需要删除

var REPORT_URL = "${servletURL}?viewlet=你的文件路径&format=excel&extype=simple&参数=" + 参数;

//原样导出excel表格

window.location = encodeURI(REPORT_URL);

  • ran1025 ran1025(提问者) 同学可以给一个案例参考吗?针对js里面的写法问题。比如我想带一个原始cpt模板的【年月】参数值。以及文件路径的写法,谢谢
    2023-02-02 14:29 
  • 5关注人数
  • 332浏览人数
  • 最后回答于:2023-2-2 14:28
    请选择关闭问题的原因
    确定 取消
    返回顶部