Foxtable(狐表)用户栏目专家坐堂 → [求助]基于模板,生成过滤条件之后的表


  共有2114人关注过本帖树形打印复制链接

主题:[求助]基于模板,生成过滤条件之后的表

帅哥哟,离线,有人找我吗?
chnfo
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
[求助]基于模板,生成过滤条件之后的表  发帖心情 Post By: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

请教,问题在哪里呢?

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/15 16:28:00 [只看该作者]

你AAA.xls里设置的模板的表名是什么?直接写表名的筛选

 

Tables("表a").Filter = "A = '" & nd.Text & "'"


 回到顶部
帅哥哟,离线,有人找我吗?
chnfo
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2239 积分:18446 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2015/12/15 16:56:00 [只看该作者]

AAA模板没有设置表名。
窗口表是normal,绑定表A,设置为副本。

为什么用
tbl.Filter = "A = '" & nd.Text & "'”  就不行
Tables("表a").Filter = "A = '" & nd.Text & "'"  就可以呢?

或者每一次点生成报表按钮之前,鼠标去点一下tbl的任意单元格又可以呢?

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/15 17:05:00 [只看该作者]

你模板的是表A,但是你窗口的有可能不是表A,而是副本表,表名不同,自然导出的结果不同。

 

以模板的表名为准。


 回到顶部