Foxtable(狐表)用户栏目专家坐堂 → [求助]Excel报表打印问题


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

主题:[求助]Excel报表打印问题

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


加好友 发短信
等级:童狐 帖子:232 积分:1938 威望:0 精华:0 注册:2019/3/20 10:45:00
[求助]Excel报表打印问题  发帖心情 Post By:2020/12/11 14:09:00 [只看该作者]

两张关联表打印一套Excel报表。每条父表数据生成一个Excel表,其中子表数据需要进行筛选。用代码生成。
结果出现子表的数据没有筛选过。但使用键盘鼠标换行打印Excel报表生成的Excel文件是筛选过的。正确代码是怎么写的?
Dim Filter As String
Filter = "JYSJ >= #" & dt1 & "# And JYSJ <= #" & dt2 & "#"
MainTable = Tables("CLXX")
Tables("CLXX.JYJL").Filter = Filter
Dim sheet1 As XLS.Sheet
Dim f1,f2 As String
f1=ProjectPath & "\temp.xls"
f2=SpecialFolder.DesktopDirectory & "\单车加油-" & Jysxn & Jysxy  & ".xls"
Dim Book2 As New XLS.Book
For i As Integer = 0 To CurrentTable.Rows.Count -1
    CurrentTable.Position = i
    System.Threading.Thread.Sleep(1000)
    Dim Book1 As New XLS.Book(ProjectPath & "Attachments\单车加油模板.xls")
    Book1.Build() '生成细节区
    Sheet1 = Book1.Sheets("muban")
    sheet1.Name = CurrentTable.Current("CH")
    System.Threading.Thread.Sleep(1000)
    Book1.Save(f1) '保存工作簿
    Book1.Sheets.Remove(Sheet1)
    Book2.Sheets.Add(Sheet1)
    System.Threading.Thread.Sleep(500)
Next
正确的写法是什么?

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107677 积分:547706 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/11 14:37:00 [只看该作者]

首先不是特别情况不要使用CurrentTable这种用法,最好是指定表。

Dim Filter As String
Filter = "JYSJ >= #" & dt1 & "# And JYSJ <= #" & dt2 & "#"
MainTable = Tables("CLXX")

Dim sheet1 As XLS.Sheet
Dim f1,f2 As String
f1=ProjectPath & "\temp.xls"
f2=SpecialFolder.DesktopDirectory & "\单车加油-" & Jysxn & Jysxy  & ".xls"
Dim Book2 As New XLS.Book
For i As Integer = 0 To Tables("CLXX").Rows.Count -1
    Tables("CLXX").Position = i
Tables("CLXX.JYJL").Filter = Filter
    Dim Book1 As New XLS.Book(ProjectPath & "Attachments\单车加油模板.xls")
    Book1.Build() '生成细节区
    Sheet1 = Book1.Sheets("muban")
    sheet1.Name = Tables("CLXX").Current("CH")
    Book1.Save(f1) '保存工作簿
    Book1.Sheets.Remove(Sheet1)
    Book2.Sheets.Add(Sheet1)
Next


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


加好友 发短信
等级:童狐 帖子:232 积分:1938 威望:0 精华:0 注册:2019/3/20 10:45:00
  发帖心情 Post By:2020/12/11 14:52:00 [只看该作者]

这样速度快了,但子表筛选还是出现问题,屏幕上确实筛选了,但打印出的Excel报表中仍有不是筛选范围的数据,怎么回事?移动键盘鼠标逐条打印就没有问题

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107677 积分:547706 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/11 14:55:00 [只看该作者]

嗯,execl报表关联表和筛选没有关系的,需要移除掉才行,或者子表只加载有关的数据

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


加好友 发短信
等级:童狐 帖子:232 积分:1938 威望:0 精华:0 注册:2019/3/20 10:45:00
  发帖心情 Post By:2020/12/11 15:05:00 [只看该作者]

但是键盘鼠标操作生成的没有问题啊!两者不一致,能模拟键盘鼠标操作点击报表按钮吗

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107677 积分:547706 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/11 15:14:00 [只看该作者]

搞不懂了。您是需要筛选还是不需要筛选?

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


加好友 发短信
等级:童狐 帖子:232 积分:1938 威望:0 精华:0 注册:2019/3/20 10:45:00
  发帖心情 Post By:2020/12/11 15:27:00 [只看该作者]

需要筛选,屏幕上已经筛选出正确结果了。但用代码出问题(未进行筛选,与屏幕不一致),逐行用点击菜单的方式没问题(与屏幕一致,有筛选)。
[此贴子已经被作者于2020/12/11 15:27:39编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107677 积分:547706 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/11 15:49:00 [只看该作者]

关联表的筛选对模板里子表的数据输出不可能起作用的。请上传实例说明

 回到顶部