提问
 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,极速登录

非数据集模式的动态列实现方案

sz_zdh 社区微信达人番薯互助团队 互助新人
发表于 2016-9-19 15:12 | 显示全部楼层 |取消关注该作者的回复
大家好,我最近做报表发现某些报表列太多了,可能相关人员查询的时候并不需要看到这么多列,因此有了做动态列的冲动(动态表头);
首先,找到帆软的案例,是基于数据集实现的动态列,从可读性上到可操作性上都不满足我的要求,我就想要用户能直接选查询的表头……
然后我想到了用JS去做:
QQ截图20160919150752.png
瞧,这就做好了,用户可以根据需要选择要查看的列,不过导出EXCEL的时候还是会全部字段导出的,因为我只是隐藏了,并没用像帆软设计器里隐藏行列的那样把宽度设置为0了;
最后,感兴趣的小伙伴可以付豆下载,支持下原创。
@传说哥 求打赏,求加精

动态列样例.cpt

10.34 KB, 下载次数: 28

售价: 200 个F豆  [记录]

样例

评分

参与人数 2F豆 +671 VIP经验 +10 F币 +10 收起 理由
传说哥 + 666 + 10 + 10 很给力!
哈易春 + 5 很腻害啊。。。。

查看全部评分

此帖共有 187 位番薯登录后查看
回复

使用道具 举报

sz_zdh 社区微信达人番薯互助团队 互助新人
发表于 2016-9-19 15:15 | 显示全部楼层 |取消关注该作者的回复
对于代码有不懂的可以消息我,有空就回
  收起(1)
  • 李半仙 李半仙

    楼主,这个js在哪呀
    2016-09-19 15:30 评论
  • 评论

回复 支持 反对

使用道具 举报

林思度 实名认证 初学乍练(Lv1)
发表于 2016-9-19 15:44 | 显示全部楼层 |取消关注该作者的回复
陛下,求体恤百姓,求打折
  • 评论

回复 支持 反对

使用道具 举报

king_mouxia  初学乍练(Lv1)
发表于 2016-9-19 15:53 | 显示全部楼层 |取消关注该作者的回复
能不能实现 读取角色 保存呢 下次还要重新选择吗?
  收起(1)
  • sz_zdh sz_zdh

    你可以保存到数据库里,下次查询先查这个默认选择的列的索引串,条件带上当前单点登录的用户就好了
    2016-09-19 17:19 评论
  • 评论

回复 支持 反对

使用道具 举报

李半仙 番薯互助团队 互助砖家、VIP1
发表于 2016-9-19 15:57 | 显示全部楼层 |取消关注该作者的回复
本帖最后由 李半仙 于 2016-9-19 15:58 编辑

哦,看见了,楼主对帆软web页上的各种标签掌握挺熟练呀。
怎么说,没有发现楼主的js方式和基于数据集方式的有什么操作上的不同,只能说楼主js方式,设置简单易懂但是,当遇到较多列时,楼主这种加载方式肯定会很耗时

btw,我建议楼主有心做就不要放在加载结束上啦,直接放在复选框这个控件上多好,选完后,不用点查询按钮,直接实时显示出动态列,我觉得这个卖点挺不错


评分

参与人数 2F豆 +350 收起 理由
sz_zdh + 50 建议很好
传说哥 + 300 很给力!

查看全部评分

  • 评论

回复 支持 2 反对 0

使用道具 举报

传说哥 社区微信达人实名认证 番薯互助团队 帆软员工 管理员
发表于 2016-9-19 16:12 | 显示全部楼层 |取消关注该作者的回复
楼主半小时就赚到1700豆
  收起(2)
  • sz_zdh sz_zdh

    哈哈~说明大家很需要这个呀~话说豆豆除了下别人的资源以外还能干啥,能换币吗
    2016-09-19 17:15 评论
  • 帆软传说哥 帆软传说哥

    非常棒
    2016-09-22 17:05 评论
  • 评论

回复 支持 反对

使用道具 举报

黑鸟  初学乍练(Lv1)
发表于 2016-9-19 16:58 | 显示全部楼层 |取消关注该作者的回复
好厉害啊
  • 评论

回复 支持 反对

使用道具 举报

左子娟 番薯互助团队 互助新人
发表于 2016-9-19 17:54 | 显示全部楼层 |取消关注该作者的回复
本帖最后由 左子娟 于 2016-9-19 17:56 编辑

这个能解决列太多带来的效率问题吗?有隐藏的时候实际加载的列是实际展示的列还是所有列啊(隐藏列也加载只是不显示)?
  收起(1)
  • sz_zdh sz_zdh

    并不能,谢谢,加载的列是肯定的,只是样式被改了;
    性能问题重点一般不在加载的列多少上(行比列影响大多了),而在于你的数据集;
    2016-09-19 17:57 评论
  • 评论

回复 支持 反对

使用道具 举报

匿名  发表于 2016-9-19 19:52
问个问题,怎么在不同职务的记录之间添加空白行?之间
  • 评论

回复 支持 反对

使用道具

yets11 社区微信达人番薯互助团队 帆软插件开发者 互助叫兽、助理编辑
发表于 2016-9-19 21:44 | 显示全部楼层 |取消关注该作者的回复
支持原创,可以作为特定需求下的一种简易解决方案。
  • 评论

回复 支持 反对

使用道具 举报

lly  初学乍练(Lv1)
发表于 2016-9-20 09:24 | 显示全部楼层 |取消关注该作者的回复
很给力,表字段太多,不同人不同需求,这非常适合查看报表
  • 评论

回复 支持 反对

使用道具 举报

lly  初学乍练(Lv1)
发表于 2016-9-20 09:27 | 显示全部楼层 |取消关注该作者的回复
我想请教:表中有不同的数据源字段,都可以纳入到表头,做动态表么???因为FR本身不支持多数据源的动态列呀
  收起(1)
  • sz_zdh sz_zdh

    可以,跟数据集无关,是单纯按照列(A,B,C……)去选择显示还是隐藏的;
    但是要注意一些特殊格式比如合并的表格最好不要有;
    2016-09-20 09:51 评论
  • 评论

回复 支持 反对

使用道具 举报

nhb2318  渐入佳境(Lv2)
发表于 2017-12-5 23:56 | 显示全部楼层 |取消关注该作者的回复
请问你这个支持记忆 吗?
  • 评论

回复 支持 反对

使用道具 举报

nhb2318  渐入佳境(Lv2)
发表于 2017-12-5 23:57 | 显示全部楼层 |取消关注该作者的回复
记忆就是把用户选择的结果保存下来,用户下次打开这个界面仍然是只显示这几列
  • 评论

回复 支持 反对

使用道具 举报

sz_zdh 社区微信达人番薯互助团队 互助新人
发表于 2017-12-6 08:43 来自手机 | 显示全部楼层 |取消关注该作者的回复
nhb2318 发表于 2017-12-5 23:57
记忆就是把用户选择的结果保存下来,用户下次打开这个界面仍然是只显示这几列

记忆要自己实现,一般是保存到数据库里,每次打开的时候读一下数据库,然后再加载动态列。
  • 评论

回复 支持 反对

使用道具 举报

nhb2318  渐入佳境(Lv2)
发表于 2017-12-7 11:02 | 显示全部楼层 |取消关注该作者的回复
sz_zdh 发表于 2017-12-6 08:43
记忆要自己实现,一般是保存到数据库里,每次打开的时候读一下数据库,然后再加载动态列。

可是具体 让怎么来操作?
  收起(3)
  • sz_zdh sz_zdh : 帆软JS支持执行公式:
    var sql = \"select cols from fr_table\";//表跟字段要自己设计一下,假设cols存了要显示的列名拼接字符串
    var a = FR.remoteEvaluate(\'=SQL(\"数据库连接名\", \"+sql+\")\');
    你再把现有的列全部按照取出的列名拼接字符串判断一下,才去设置那个显示哪个不显示;
    至于编辑显示列的时候也是一样的逻辑,把所有显示的列根据样例取出来后按格式设置到表中,改一下sql语句为update或insert语句也是上面说的办法提交到数据库;
    要再详细就不说了,你作为一个开发人员肯定这些最基本的要会的,思路已经提供给你了。
    2017-12-07 11:20 评论
  • sz_zdh sz_zdh : 这个表可以设计几个字段,如报表名称、显示列、是否生效之类的,具体再去修正你的查询语句;
    2017-12-07 11:21 评论
  • nhb2318 nhb2318 : 我是通过这种方法来实现的,但是也遇到点问题
    http://bbs.fanruan.com/forum.php?mod=viewthread&tid=100081&page=1#pid526621
    2017-12-09 11:00 评论
  • 评论

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册  

本版积分规则

Copyright © 帆软|联系帆软| 联系管理员@兔子酱|免责声明|手机版|帆软社区 ( 苏ICP备14031611号-3 )

GMT+8, 2018-8-14 22:05 , Processed in 0.477727 second(s), 190 queries , Gzip On.

返回顶部 返回列表