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


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

主题:打印报表代码问题

帅哥哟,离线,有人找我吗?
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()

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


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

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

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


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

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



 回到顶部
帅哥哟,离线,有人找我吗?
aza520
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | 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

 回到顶部
帅哥哟,离线,有人找我吗?
aza520
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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()

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


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

谢谢老师

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


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
  发帖心情 Post By:2018/5/19 9:17:00 [显示全部帖子]

Dim Book As New XLS.Book(ProjectPath & "Attachments\变更统计表1.xlsx")
Dim fl As String = ProjectPath & "Reports\变更统计表1.xlsx"
book.AddDataTable("变更统计表1","xlgl","Selec t *, (selec t 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))  fro m {申请费用表} b where a.项目名称=b.项目名称 and a.变更编号=b. 变更编号) As [估计变更金额] fro m {变更申请单} a " & IIF(vars("变更信息表filter") > ""," where " & vars("变更信息表filter"),"") ) 
Book.Build()
Book.Save(fl)
Dim Proc As New Process
Proc.File = fl
Proc.Start()

在以下加了红色部分,想生成”承包人申报“为TRUE的报表,显示语法错误。
book.AddDataTable("变更统计表1","xlgl","Selec t *, (selec t 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))  fro m {申请费用表} b where a.项目名称=b.项目名称 and a.变更编号=b. 变更编号) As [估计变更金额] fro m {变更申请单} a " & IIF(vars("变更信息表filter") > ""," where " & vars("变更信息表filter"),"") & " And 承包人申报=1"



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


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
  发帖心情 Post By:2018/5/19 11:54:00 [显示全部帖子]

按老师的修改后

Dim Book As New XLS.Book(ProjectPath & "Attachments\变更统计表1.xlsx")
Dim fl As String = ProjectPath & "Reports\变更统计表1.xlsx"
Dim filter As String = IIF(vars("变更信息表filter") > ""," where " & vars("变更信息表filter") & " and 承包人申报=1"," where 承包人申报=1")
book.AddDataTable("变更统计表1","xlgl","Selec t *, (selec t 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))  fro m {申请费用表} b where a.项目名称=b.项目名称 and a.变更编号=b. 变更编号) As [估计变更金额] fro m {变更申请单} a " & filter)
Book.Build()
Book.Save(fl)
Dim Proc As New Process
Proc.File = fl
Proc.Start()

显示:'*' 附近有语法错误。

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


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
  发帖心情 Post By:2018/5/19 12:00:00 [显示全部帖子]

解决了,是我没注意

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


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
  发帖心情 Post By:2018/5/19 15:13:00 [显示全部帖子]

又出现了新问题,变更统计表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()

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