请问如何按照数据库内指定数据字段有无数据自动勾好复选框并正确导出PDF显示勾选框?

本帖最后由 滴水逐流 于 2017-5-8 11:31 编辑

小弟初来乍到,第一个求助贴,希望各位大神不吝赐教
问题是这样的

====================================================================
从一个表内的某一列或多列抽取字段设置入表格中,并根据该字段内各条数据是否包含所需内容自动在表内设定勾选其后的复选框组,最后将这个这个表导出为pdf文档,文档表上必须带有勾选框和相应的勾选状态。

目前进度:
====================================================================
我在文档中找到一个写好的函数, 叫Widget2Image(type, num, selection, textArray),这个函数确实可以满足输出的要求
但是这个函数中后面三个参数如何传入?
第二个参数num:如何获知选定字段一共有多少种不同的输入?
第三个参数selection:如何通过查询数据库指定字段的各个值来确定类似“10110”(1代表“勾选”,0代表“未勾选”)这样的效果?
第四个参数textArray:如何获取查询数据库指定字段(DISTINCT)值来作为勾选框组中各个的名字?

举例:
====================================================================
比如我在一个单元格里面填入:
Widget2Image("checkbox", 4, "1001", ['Class1','Class2','Class3','Class4'])
这个函数确实可以在导出的PDF文档中正确地显示想要的结果:




例子问题:
====================================================================
这种写法无法根据所选数据库自动调整输出
比如某数据库里有类似这样的字段:
姓名   |   满意度
-----------------
张三   |   很满意
李四   |   很满意
王五   |   不满意
赵六   |   一般般
李七   |   很满意
朱八   |                         /*   注意:这货没有选    */
需求最后得到类似这样的显示并可导出为显示复选框组选择结果的pdf文档
效果类似这样:

然后可以使用PDF文档以这种式样导出:

/*  这个效果是我用死代码写的,代码如下  */
  1. Widget2Image("checkbox", 4, "1000", ['很满意','一般般','不满意','未选择'])
  2. Widget2Image("checkbox", 4, "1000", ['很满意','一般般','不满意','未选择'])
  3. Widget2Image("checkbox", 4, "0010", ['很满意','一般般','不满意','未选择'])
  4. Widget2Image("checkbox", 4, "0100", ['很满意','一般般','不满意','未选择'])
  5. Widget2Image("checkbox", 4, "1000", ['很满意','一般般','不满意','未选择'])
  6. Widget2Image("checkbox", 4, "0001", ['很满意','一般般','不满意','未选择'])
复制代码
如何通过数据库自动获取后面3个参数:num、selection和textArray?
跪求大神帮忙~感恩~




FineReport滴水逐流 发布于 2017-5-5 17:58
悬赏:2 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
yiminglian发布于2017-5-6 08:28(编辑于 2023-9-6 09:34)
555
  • 滴水逐流 滴水逐流(提问者)

    感谢指点
    我现在可以做到使用复选框组直接收到数据库字段是否存在的信息并直接将此显示在报表中
    就是使用控件 --> 复选框组 --> 数组方式 并设定全数据库找到此表收集字段信息
    如果到了这一步,有没有什么办法能把这个无法导出到PDF文档上显示的复选框内容中已选和未选内容的信息拼接成所需的“1000”这种再传入这个函数呢?
    复选框组里各个复选框的状态(True | False)如何加载到页面(数组window.checkbox_current_status[]?)参数中呢?
    谢谢~{:8_199:}
    回复
    2017-05-06 10:17 
最佳回答
0
滴水逐流发布于2017-5-6 10:17(编辑于 2023-9-6 09:34)
555
  • yiminglian yiminglian

    在函数内部加入if条件试试,比如各复选框的状态是 true,false,false,fasle 那么输出1000 若 false,false,true,fasle 那么 0010
    {:9_224:}
    感觉这样应该可以的。。。吧
    回复
    2017-05-06 10:41 
最佳回答
0
yiminglian发布于2017-5-6 10:41(编辑于 2023-9-6 09:34)
555
  • 滴水逐流 滴水逐流(提问者)

    好吧,我找到一个一劳永逸的办法了:
    直接修改resources文件夹下复制一份config.xml并重命名为customconfig.xml
    修改customconfig.xml,在文件最后的标签</ReportServerParameter>之前添加一行<PrintWidget print=\"true\"/>
    最后把这个customconfig.xml文件复制进resources文件夹下重启设计器就搞定
    解决办法链接:
    http://help.finereport.com/doc-view-592.html
    感谢帮忙,鞠躬~
    回复
    2017-05-06 11:10 
最佳回答
0
滴水逐流发布于2017-5-6 11:10(编辑于 2023-9-6 09:34)
555
  • 1关注人数
  • 634浏览人数
  • 最后回答于:2017-5-6 11:10
    活动推荐 更多
    热门课程 更多
    返回顶部