Foxtable(狐表)用户栏目专家坐堂 → 打印报表代码问题


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

主题:打印报表代码问题

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


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
打印报表代码问题  发帖心情 Post By:2018/5/15 16:33:00 [只看该作者]

如下代码,“变更申请表”(父表)通过“项目名称”、“变更编号”列与“申请费用表”关联,想实现打印报表时生成的数据条件是满足“项目名称”、“变更编号”、"业主审批"三列数据一致,其中"业主审批"是逻辑列。以下代码能这样写吗?请老师指导

Systemready = False
DataTables("申请费用表").loadTop = ""
DataTables("申请费用表").loadpage = 0
DataTables("申请费用表").load
Systemready = True

Dim str = DataTables("变更申请单").SQLGetComboListString("项目名称","变更编号","业主审批", DataTables("变更申请单").LoadFilter)
str = str.replace("|", "','")
DataTables("申请费用表").LoadFilter = "项目名称 in ('" & str & "')" And "变更编号 in ('" & str & "')" And "业主审批 in ('" & str & "')" 
DataTables("申请费用表").LoadTop = ""
DataTables("申请费用表").LoadPage = 0
DataTables("申请费用表").Load

Dim Book As New XLS.Book(ProjectPath & "Attachments\变更台账2.xlsx")
Dim fl As String = ProjectPath & "Reports\变更台账2.xlsx"
Book.Build() '生成细节区
Book.Save(fl) '保存工作簿
Dim Proc As New Process '打开工作簿
Proc.File = fl
Proc.Start()

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/15 16:56:00 [只看该作者]

这个意思?

 

Dim str = DataTables("变更申请单").SQLGetComboListString("项目名称+变更编号", DataTables("变更申请单").LoadFilter)
str = str.replace("|", "','")
DataTables("申请费用表").LoadFilter = "项目名称+变更编号 in ('" & str & "')"
msgbox(DataTables("申请费用表").LoadFilter)
DataTables("申请费用表").LoadTop = ""
DataTables("申请费用表").LoadPage = 0
DataTables("申请费用表").Load

Dim Book As New XLS.Book(ProjectPath & "Attachments\变更台账2.xlsx")
Dim fl As String = ProjectPath & "Reports\变更台账2.xlsx"
Book.Build() '生成细节区
Book.Save(fl) '保存工作簿
Dim Proc As New Process '打开工作簿
Proc.File = fl
Proc.Start()


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


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
  发帖心情 Post By:2018/5/15 17:27:00 [只看该作者]

按老师的代码修改,只能生成当前页数据,其它加载页生成不了。想生成的数据同时满足,两个表三列一样的条件

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/15 17:37:00 [只看该作者]

改成,如果还有问题,具体事例发上来测试。

 

Dim str = DataTables("变更申请单").SQLGetComboListString("项目名称+变更编号")
str = str.replace("|", "','")
DataTables("申请费用表").LoadFilter = "项目名称+变更编号 in ('" & str & "')"
msgbox(DataTables("申请费用表").LoadFilter)
DataTables("申请费用表").LoadTop = ""
DataTables("申请费用表").LoadPage = 0
DataTables("申请费用表").Load

Dim Book As New XLS.Book(ProjectPath & "Attachments\变更台账2.xlsx")
Dim fl As String = ProjectPath & "Reports\变更台账2.xlsx"
Book.Build() '生成细节区
Book.Save(fl) '保存工作簿
Dim Proc As New Process '打开工作簿
Proc.File = fl
Proc.Start()


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


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
  发帖心情 Post By:2018/5/15 17:52:00 [只看该作者]

现在把所有的后台数据都生成了。我只想根据当前加载树加载的数据进行生成



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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/15 19:01:00 [只看该作者]

回复5楼,2楼的代码绝对没问题,请做个实例发上来测试。

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


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
  发帖心情 Post By:2018/5/18 18:56:00 [只看该作者]


弄了很久解决不了,现上传实例,请老师帮诊断。

想解决两个问题:

1、变更统计表1:想生成也仅生成当前加载的所有加载页的数据。

2、变更统计表2:想生成也仅生成当前加载的所有加载页中"业主审批“为TRUE的数据。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:xlgl.zip

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/5/18 20:44:00 [只看该作者]

1、变更统计表1:

Dim Book As New XLS.Book(ProjectPath & "Attachments\变更统计表1.xlsx")
Dim fl As String = ProjectPath & "Reports\变更统计表1.xlsx"
book.AddDataTable("变更统计表1","xlgl","Select *, (select sum(Round(Case When 变更后数量 Is null Then 0 Else 变更后数量 End * Case When 单价 Is null Then 0 Else 单价 End,0) - Round(Case When 变更前数量 Is null Then 0 Else 变更前数量 End * Case When 单价 Is null Then 0 Else 单价 End,0))  from {申请费用表} b where a.项目名称=b.项目名称 and a.变更编号=b. 变更编号) As [估计变更金额] from {变更申请单} a " & IIF(vars("变更信息表filter") > ""," where " & vars("变更信息表filter"),""))
Book.Build()
Book.Save(fl)
Dim Proc As New Process
Proc.File = fl
Proc.Start()

2、

Dim str = DataTables("变更申请单").SQLGetComboListString("项目名称+变更编号", DataTables("变更申请单").LoadFilter & “ and 业主审批=1”)

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


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
  发帖心情 Post By:2018/5/18 21:58:00 [只看该作者]

老师,统计表1已经可以了,但是统计表2改成下面代码,仍然只能生成当前页的数据

Dim str = DataTables("变更申请单").SQLGetComboListString("项目名称+变更编号", DataTables("变更申请单").LoadFilter & " And 业主审批=1")
str = str.replace("|", "','")
DataTables("申请费用表").LoadFilter = "项目名称+变更编号 in ('" & str & "')"
DataTables("申请费用表").LoadTop = ""
DataTables("申请费用表").LoadPage = 0
DataTables("申请费用表").Load
Dim Book As New XLS.Book(ProjectPath & "Attachments\变更统计表2.xlsx")
Dim fl As String = ProjectPath & "Reports\变更统计表2.xlsx"
Book.Build() '生成细节区
Book.Save(fl) '保存工作簿
Dim Proc As New Process '打开工作簿
Proc.File = fl
Proc.Start()

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/5/18 22:07:00 [只看该作者]

Dim str = DataTables("变更申请单").SQLGetComboListString("项目名称+变更编号", DataTables("变更信息表").LoadFilter & " And 业主审批=1")

 回到顶部
总数 19 1 2 下一页