以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求助:如何将已筛选出的数据为导出为报表  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=140865)

--  作者:Mr-sky
--  发布时间:2019/9/16 15:00:00
--  求助:如何将已筛选出的数据为导出为报表
1.大检查记录表里面有很多问题,通过系统菜单筛选出了某一个项目,希望只导出当前筛选项目的罚款单,但是单击导出罚款单按钮后,还是把整个表里面的罚款问题都导出来了。


图片点击可在新窗口打开查看此主题相关图片如下:筛选出项目.jpg
图片点击可在新窗口打开查看

单击代码如下:
Forms("提示窗口").open
Application.DoEvents()\'显示正在执行,请稍后

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 = ""
Dim drs As List(of DataRow) = DataTables("季度大检查记录表").Select("[经济处罚] = \'是\'") \'筛选出符合条件的行
If drs.Count > 0 Then \'如果存在符合条件的行
    For Each r As DataRow In drs \'逐行生成报表
        str = str & vbcrlf & r("存在问题")
    Next
    str = str.Trim(vbcr).Trim(vblf)
End If
wrt.Replace("[存在问题]",str)
wrt.BuildOne(Tables("季度大检查记录表").current)
wrt.Show() \'显示报表

Forms("提示窗口").Close

--  作者:Mr-sky
--  发布时间:2019/9/16 15:04:00
--  
示例如下:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:安全管理标准化平台.table




--  作者:Mr-sky
--  发布时间:2019/9/16 15:05:00
--  
报表模板如下:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:处罚通知单.zip


--  作者:有点蓝
--  发布时间:2019/9/16 15:14:00
--  
……
Dim str As String = ""
    For Each r As Row In Tables("季度大检查记录表").rows \'逐行生成报表
        str = str & vbcrlf & r("存在问题")
    Next
    str = str.Trim(vbcr).Trim(vblf)
wrt.Replace("[存在问题]",str)
……

--  作者:Mr-sky
--  发布时间:2019/9/16 16:54:00
--  回复:(有点蓝)……Dim str As String = ""  &...
不行啊,这样就把所有的问题都显示出来了。一是通过菜单筛选出某个项目。 二是筛选出[经济处罚]=是 的问题,代码中已经筛选。问题是不管我是不是通过菜单筛选出某个项目,单击导出时把所有项目 [经济处罚]=是 的问题都导出来了。
替换了老师的代码后,是实现了导出当前筛选出的项目,但是把所有的问题都导出来了,没有把[经济处罚]=是 的问题筛选出来。
能不能筛选出某个项目后,导出[经济处罚]=是 的问题???

--  作者:有点蓝
--  发布时间:2019/9/16 17:07:00
--  
……
Dim str As String = ""
    For Each r As Row In Tables("季度大检查记录表").rows \'逐行生成报表
if r("经济处罚") = true
        str = str & vbcrlf & r("存在问题")
end if
    Next
    str = str.Trim(vbcr).Trim(vblf)
wrt.Replace("[存在问题]",str)
……