以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]基于模板,生成过滤条件之后的表 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=78715) |
-- 作者:chnfo -- 发布时间:2015/12/15 16:23:00 -- [求助]基于模板,生成过滤条件之后的表 基于模板,生成报表。 在窗口中左边有一棵树,有一个表,还有一个生成报表的按钮。 点击左边的树节点,右边的表只显示符合条件的数据。 比如说整个表有100行,但通过左边树节点的过滤,界面上只显示了30行。但点成生报表的按钮,还是100行。 除非将鼠标在表中的任何一个单元格点击一下,再点生成报表按钮,才在EXCEL表中生成30行。 生成报表的按钮代码如下: Dim TV As WinForm.TreeView = e.Form.Controls("TreeView1") Dim nd As WinForm.TreeNode = TV.SelectedNode Dim tbl As Table = e.Form.Controls("Table1").Table Select Case nd.Level Case 1 tbl.Filter = "A = \'" & nd.Text & "\'" If tbl.Rows.Count > 0 Then Dim Book As New XLS.Book(ProjectPath & "Attachments\\AAA.xls") \'打开模板 Dim Sheet As XLS.Sheet = Book.Sheets(0) Book.Build() \'生成细节区 Book.Save("c:\\reports\\test.xls") \'保存工作簿 Dim Proc As New Process \'打开工作簿 Proc.File = "c:\\reports\\test.xls" Proc.Start() End If End Select 请教,问题在哪里呢?
|
-- 作者:大红袍 -- 发布时间:2015/12/15 16:28:00 -- 你AAA.xls里设置的模板的表名是什么?直接写表名的筛选
Tables("表a").Filter = "A = \'" & nd.Text & "\'" |
-- 作者:chnfo -- 发布时间:2015/12/15 16:56:00 -- AAA模板没有设置表名。 窗口表是normal,绑定表A,设置为副本。 为什么用 tbl.Filter = "A = \'" & nd.Text & "\'” 就不行 而 Tables("表a").Filter = "A = \'" & nd.Text & "\'" 就可以呢? 或者每一次点生成报表按钮之前,鼠标去点一下tbl的任意单元格又可以呢?
|
-- 作者:大红袍 -- 发布时间:2015/12/15 17:05:00 -- 你模板的是表A,但是你窗口的有可能不是表A,而是副本表,表名不同,自然导出的结果不同。
以模板的表名为准。 |