以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [原创] (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=113453) |
-- 作者:glhyg -- 发布时间:2018/1/16 12:06:00 -- [原创] 请教老师: 我是初学者。如何通过筛选树选择,实现WORD报表批量打印。 1、左treeview图筛选右Teble表内容 2、批量打印代码 Dim dt1 As WinForm.treeview = e.Form.Controls("treeview1") Dim drs As List(of DataRow) = DataTables("b1").Select("乡镇|村 = \'&dt1.AllNodes & \' ") \'筛选出符合条件的行 If drs.Count > 0 Then \'如果存在符合条件的行 Dim tm As String = ProjectPath & "Attachments\\123.doc" \'指定模板文件 Dim fl As String = ProjectPath & "Reports\\5.doc" \'指定目标文件 Dim wrt As New WordReport(Tables("b1"),tm,fl) \'定义一个WordReport For Each dr As DataRow In drs \'逐行生成报表 wrt.BuildOne(dr) Next wrt.print \'显示报表 wrt.quit End If |
-- 作者:glhyg -- 发布时间:2018/1/16 12:09:00 -- 请教老师: 我是初学者。如何通过筛选树选择,实现WORD报表批量打印。 1、左treeview图筛选右Teble表内容 2、批量打印代码 Dim dt1 As WinForm.treeview = e.Form.Controls("treeview1") Dim drs As List(of DataRow) = DataTables("b1").Select("乡镇|村 = \'&dt1.AllNodes & \' ") \'筛选出符合条件的行 If drs.Count > 0 Then \'如果存在符合条件的行 Dim tm As String = ProjectPath & "Attachments\\123.doc" \'指定模板文件 Dim fl As String = ProjectPath & "Reports\\5.doc" \'指定目标文件 Dim wrt As New WordReport(Tables("b1"),tm,fl) \'定义一个WordReport For Each dr As DataRow In drs \'逐行生成报表 wrt.BuildOne(dr) Next wrt.print \'显示报表 wrt.quit |
-- 作者:有点甜 -- 发布时间:2018/1/16 12:13:00 -- 1、你先实现多选筛选树,如
http://www.foxtable.com/webhelp/scr/2503.htm
2、直接打印表格即可,如
Dim tm As String = ProjectPath & "Attachments\\123.doc" \'指定模板文件 |
-- 作者:glhyg -- 发布时间:2018/1/16 12:25:00 -- 出现以下错误: .NET Framework 版本:2.0.50727.8762 Foxtable 版本:2017.12.18.1 错误所在事件:窗口,窗口1,Button4,Click 详细错误信息: 检索 COM 类工厂中 CLSID 为 {000209FF-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80040154。 |
-- 作者:glhyg -- 发布时间:2018/1/16 12:41:00 -- 老师:运行后出现了以下错误,请指正! 代码:Dim nms As String() = {"乡镇","村","组","户主姓名"} \'指定生成目录树的各列 Dim qts As String() = {"\'","\'","\'","\'"} \'指定将各列的值括起来的符号,这里都是字符型,所以都是单引号 Dim trv As WinForm.TreeView = e.Sender Dim flt As String Dim nd As WinForm.TreeNode For Each nd In e.node.allNodes \'清除子节点的选中标记 nd.Checked = False Next nd = e.Node.ParentNode Do While nd IsNot Nothing \'清除父节点的选中标记 nd.Checked = False nd = nd.ParentNode Loop For Each nd In trv.AllNodes If nd.Checked Then Dim rts() As String = nd.FullPath.Split("\\") Dim val As String = "" For i As Integer = 0 To rts.length - 1 If val > "" Then val = val & " And " End If val = val & nms(i) & " = " & qts(i) & rts(i) & qts(i) Next If flt > "" Then flt = flt & " Or (" & val & ")" Else flt = val End If End If Next
|
-- 作者:glhyg -- 发布时间:2018/1/16 13:11:00 -- 谢谢老师,解决问题! |