以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求助:如何根据已勾选的行生成报表?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=140453)

--  作者:Mr-sky
--  发布时间:2019/9/5 22:30:00
--  求助:如何根据已勾选的行生成报表?
如图:
1.表中有很多问题,如何将已经勾选的,需要处罚的问题生成Word报表?
2.如何将这些已经勾选的问题逐条显示在Word报表中?

图片点击可在新窗口打开查看此主题相关图片如下:tim截图20190905222413.jpg
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2019/9/6 9:22:00
--  
合并为一个字符串,然后使用代码替换:http://www.foxtable.com/webhelp/topics/2890.htm
--  作者:Mr-sky
--  发布时间:2019/9/6 9:51:00
--  回复:(有点蓝)合并为一个字符串,然后使用代码替换...
谢谢老师,已经解决问题1.
但是勾选了两条记录后,生成出了俩个报表,就是说勾选一条记录会生成一个报表。
如何才能把勾选的记录合并到一起呢?
报表模板格式如下:

公司安全质量环保检查

处罚通知单

受检单位:项目名称                                                编号:

<!--[if !supportMisalignedColumns]--> <!--[endif]-->

违规事实

经查,你单位在施工中存在如下违规行为:

[存在问题]

违规条款

上述行为(现象)违反了                                                   条第    的规定。

处罚明细

 

责任人或单位

职务

处罚金额

[@处罚明细表,责任人或单位,1]

[@处罚明细表,职务,1]

[@处罚明细表,处罚金额,1]

[@处罚明细表,责任人或单位,2]

[@处罚明细表,职务,2]

[@处罚明细表,处罚金额,2]

[@处罚明细表,责任人或单位,3]

[@处罚明细表,职务,3]

[@处罚明细表,处罚金额,3]

[@处罚明细表,责任人或单位,4]

[@处罚明细表,职务,4]

[@处罚明细表,处罚金额,4]

[@处罚明细表,责任人或单位,5]

[@处罚明细表,职务,5]

[@处罚明细表,处罚金额,5]

[@处罚明细表,责任人或单位,6]

[@处罚明细表,职务,6]

[@处罚明细表,处罚金额,6]

[@处罚明细表,责任人或单位,7]

[@处罚明细表,职务,7]

[@处罚明细表,处罚金额,7]

检查组组员签字:

 

日期

 

检查组负责人签字:

 

日期

 

受处罚单位负责人签字:

 

日期

 


单击事件代码如下:

Dim rs As List(of Row) = Tables("季度大检查记录表").GetCheckedRows

If rs.Count > 0 Then \'如果存在符合条件的行

    Dim tm As String  = ProjectPath & "Attachments\\处罚通知单.doc" \'指定模板文件

    Dim fl As String = ProjectPath & "Reports\\处罚通知单.doc" \'指定目标文件

    Dim wrt As New WordReport(Tables("季度大检查记录表"),tm,fl) \'定义一个WordReport

    For Each r As Row In rs \'逐行生成报表

        wrt.BuildOne(r)

    Next

    wrt.Show() \'显示报表

End If


[此贴子已经被作者于2019/9/6 9:52:02编辑过]

--  作者:Mr-sky
--  发布时间:2019/9/6 9:54:00
--  
怎么合并为一个字符串啊?是在报表模板里写代码,还是在单击事件里写代码呢?代码怎么写,有参考不?
--  作者:有点蓝
--  发布时间:2019/9/6 10:12:00
--  
Dim tm As String  = ProjectPath & "Attachments\\处罚通知单.doc" \'指定模板文件
Dim fl As String = ProjectPath & "Reports\\处罚通知单.doc" \'指定目标文件
Dim wrt As New WordReport(Tables("季度大检查记录表"),tm,fl) \'定义一个WordReport
Dim str As String = ""
im rs As List(of Row) = Tables("季度大检查记录表").GetCheckedRows
If rs.Count > 0 Then \'如果存在符合条件的行
    For Each r As Row In rs \'逐行生成报表
        str = str & vbcrlf & r("存在问题")
    Next
    str = str.Trim(vbcr).Trim(vblf)
End If
wrt.Replace("[存在问题]",str)
wrt.BuildOne(Tables("主表").current)
wrt.Show() \'显示报表

[此贴子已经被作者于2019/9/6 10:13:41编辑过]

--  作者:Mr-sky
--  发布时间:2019/9/6 14:50:00
--  回复:(有点蓝)Dim tm As String  = ProjectPa...
老师,您好。还是不行啊,勾选的两个问题没有合并到一起,还是生成了两页,和之前一样。

公司安全质量环保检查

处罚通知单

受检单位:项目名称                                                编号:

<!--[if !supportMisalignedColumns]--> <!--[endif]-->

违规事实

经查,你单位在施工中存在如下违规行为:

西院挡土墙搭设脚手架,临空作业高度超过10米,仅下发施工图,未下发专项技术交底。(就是这部分,怎么能把勾选的两条问题合并到一处呢)

违规条款

上述行为(现象)违反了                                                   条第    的规定。

处罚明细

 

责任人或单位

职务

处罚金额

张三

项目经理

100

李丽

办公室主任

200

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

检查组组员签字:

 

日期

 

检查组负责人签字:

 

日期

 

受处罚单位负责人签字:

 

日期

 

说明:         

 



--  作者:有点蓝
--  发布时间:2019/9/6 15:24:00
--  
上传实例说明
--  作者:Mr-sky
--  发布时间:2019/9/6 15:47:00
--  回复:(有点蓝)上传实例说明
代码在:【隐患录入】-【报表按钮】-【单击事件】
问题在Word模板里面有红字说明
链接:https://pan.baidu.com/s/13u0uGCEGN_WtBmVbG5nU1Q 
提取码:9ax9 


--  作者:有点蓝
--  发布时间:2019/9/6 16:13:00
--  
改为5楼的代码啊!

下次把项目文件.table和word模板发上来即可。不需要这个项目其他文件。
--  作者:Mr-sky
--  发布时间:2019/9/6 16:22:00
--  回复:(有点蓝)改为5楼的代码啊!下次把项目文件.ta...
已改。但是提示出错

图片点击可在新窗口打开查看此主题相关图片如下:tim截图20190906162042.jpg
图片点击可在新窗口打开查看