Foxtable(狐表)用户栏目专家坐堂 → 生成报表代码错误


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

主题:生成报表代码错误

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


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
生成报表代码错误  发帖心情 Post By:2018/12/13 11:31:00 [只看该作者]

老师,我以下生成报表的代码显示有错误,请问怎么修改?

DataTables("中间计量表").loadTop = Nothing
DataTables("中间计量表").load

Dim Book As New XLS.Book(ProjectPath & "Attachments\分项工程中期计量支付表.xlsx")
Dim fl As String = ProjectPath & "Reports\分项工程中期计量支付表.xlsx"
book.AddDataTable("分项工程中期计量支付表","xlgl","Selec t *, (selec t 变更后数量 * 单价 as 变更后金额, 申报数量 * 单价 as 申报金额, 累计申报数量 * 单价 as 累计申报金额 fro m {中间计量表})")
Book.Build() '生成细节区
Book.Save(fl) '保存工作簿
Dim Proc As New Process '打开工作簿
Proc.File = fl
Proc.Start()

显示错误:
当没有用 EXISTS 引入子查询时,在选择列表中只能指定一个表达式。
必须指定要从中选择的表。

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


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

 

book.AddDataTable("分项工程中期计量支付表","xlgl","selec t 变更后数量 * 单价 as 变更后金额, 申报数量 * 单价 as 申报金额, 累计申报数量 * 单价 as 累计申报金

额 fro m {中间计量表}")

 


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


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

老师,我以下的代码生成的报表是把”中间计量表“的所有数据生成,而我”中间计量表“的数据是选择性加载的,我只想生成当前加载的数据(包括分页加载的数据),条件是:”项目名称、施工合同段、计量期次“三列一样,选择性加载也是按这三列一样进行加载,以下代码如何加这个条件

DataTables("中间计量表").loadTop = Nothing
DataTables("中间计量表").load

Dim Book As New XLS.Book(ProjectPath & "Attachments\分项工程中期计量支付表.xlsx")
Dim fl As String = ProjectPath & "Reports\分项工程中期计量支付表.xlsx"
book.AddDataTable("分项工程中期计量支付表","xlgl","selec t 章节 as 章节, 支付编号 as 支付编号, 细目名称 as 细目名称, 计量编号 as 计量编号, 桩号 as 桩号, 单位 as 单位, 单价 as 单价, 变更后数量 as 变更后数量, 申报数量 as 申报数量, 累计申报数量 as 累计申报数量,   变更后数量 * 单价 as 变更后金额, 申报数量 * 单价 as 申报金额, 累计申报数量 * 单价 as 累计申报金额 fro m {中间计量表}")
Book.Build() '生成细节区
Book.Save(fl) '保存工作簿
Dim Proc As New Process '打开工作簿
Proc.File = fl
Proc.Start()

生成的报表:

图片点击可在新窗口打开查看此主题相关图片如下:1111.png
图片点击可在新窗口打开查看


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


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


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


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

老师,还是没搞懂怎么合成。图一中的下面”计量汇总“表与”中间计量表“通过”项目名称“、”施工合同段“、”计量期次“三列关联,”计量汇总“表是父表,而且已通过代码设置在图一中的”计量汇总“表选定不同的行时,”中间计量表“会加载三个关列列一致的数据行(如图一选定最后一行,图二加载相应行数据),此时生成报表时,怎么才能只生成当前”中间计量表“加载的数据,而不是将所有的后台数据都生成。3楼的代码还请老师指点一下。

图一:

图片点击可在新窗口打开查看此主题相关图片如下:555.png
图片点击可在新窗口打开查看

图二:

图片点击可在新窗口打开查看此主题相关图片如下:666.png
图片点击可在新窗口打开查看






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


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

就是只生成下图中黄色这行数据

图片点击可在新窗口打开查看此主题相关图片如下:7777.png
图片点击可在新窗口打开查看


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


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

循环你表格的每一行,取出主键列的值_Identify啊。最后合成的条件,是_Identify的值即可啊。

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


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

老师,改成以下代码,还是会加载所有数据。

Dim ids As String
For Each dr As DataRow In DataTables("计量汇总").DataRows
    ids = ids & "," & dr("计量期次")
Next
ids= ids.Trim(",")
DataTables("中间计量表").LoadFilter = "计量期次 In (" & ids & ")"
DataTables("中间计量表").Load()

Dim Book As New XLS.Book(ProjectPath & "Attachments\分项工程中期计量支付表.xlsx")
Dim fl As String = ProjectPath & "Reports\分项工程中期计量支付表.xlsx"
book.AddDataTable("分项工程中期计量支付表","xlgl","selec t 章节 as 章节, 支付编号 as 支付编号, 细目名称 as 细目名称, 计量编号 as 计量编号, 桩号 as 桩号, 单位 as 单位, 单价 as 单价, 变更后数量 as 变更后数量, 申报数量 as 申报数量, 累计申报数量 as 累计申报数量,   变更后数量 * 单价 as 变更后金额, 申报数量 * 单价 as 申报金额, 累计申报数量 * 单价 as 累计申报金额 fro m {中间计量表}")
Book.Build() '生成细节区
Book.Save(fl) '保存工作簿
Dim Proc As New Process '打开工作簿
Proc.File = fl
Proc.Start()

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


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

Dim ids As String
For Each dr As DataRow In DataTables("中间计量表").DataRows
    ids = ids & "," & dr("_Identify")
Next
ids= ids.Trim(",")

Dim Book As New XLS.Book(ProjectPath & "Attachments\分项工程中期计量支付表.xlsx")
Dim fl As String = ProjectPath & "Reports\分项工程中期计量支付表.xlsx"
book.AddDataTable("分项工程中期计量支付表","xlgl","selec t 章节 as 章节, 支付编号 as 支付编号, 细目名称 as 细目名称, 计量编号 as 计量编号, 桩号 as 桩号, 单位 as 单位, 单价 as 单价, 变更后数量 as 变更后数量, 申报数量 as 申报数量, 累计申报数量 as 累计申报数量,   变更后数量 * 单价 as 变更后金额, 申报数量 * 单价 as 申报金额, 累计申报数量 * 单价 as 累计申报金额 fro m {中间计量表} where _Identify in (" & ids & ")")
Book.Build() '生成细节区
Book.Save(fl) '保存工作簿
Dim Proc As New Process '打开工作簿
Proc.File = fl
Proc.Start()

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


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

或者


Dim Book As New XLS.Book(ProjectPath & "Attachments\分项工程中期计量支付表.xlsx")
Dim fl As String = ProjectPath & "Reports\分项工程中期计量支付表.xlsx"
book.AddDataTable("分项工程中期计量支付表","xlgl","selec t 章节 as 章节, 支付编号 as 支付编号, 细目名称 as 细目名称, 计量编号 as 计量编号, 桩号 as 桩号, 单位 as 单位, 单价 as 单价, 变更后数量 as 变更后数量, 申报数量 as 申报数量, 累计申报数量 as 累计申报数量,   变更后数量 * 单价 as 变更后金额, 申报数量 * 单价 as 申报金额, 累计申报数量 * 单价 as 累计申报金额 fro m {中间计量表} where ” & DataTables("中间计量表").LoadFilter)
Book.Build() '生成细节区
Book.Save(fl) '保存工作簿
Dim Proc As New Process '打开工作簿
Proc.File = fl
Proc.Start()

 回到顶部
总数 29 1 2 3 下一页