以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  生成报表问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=128591)

--  作者:aza520
--  发布时间:2018/12/11 12:43: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 & "\')"
DataTables("中间计量表").LoadTop = ""
DataTables("中间计量表").LoadPage = 0
DataTables("中间计量表").Load

Dim Book As New XLS.Book(ProjectPath & "Attachments\\分项工程中期计量支付表.xlsx")
Dim fl As String = ProjectPath & "Reports\\分项工程中期计量支付表.xlsx"
Book.Build() \'生成细节区
Book.Save(fl) \'保存工作簿
Dim Proc As New Process \'打开工作簿
Proc.File = fl
Proc.Start()

报表:

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


--  作者:有点甜
--  发布时间:2018/12/11 15:01:00
--  
Dim str = DataTables("计量汇总").SQLGetComboListString("计量期次", DataTables("计量汇总").LoadFilter)

 

改成

 

Dim str = DataTables("计量汇总").GetComboListString("计量期次")

--  作者:aza520
--  发布时间:2018/12/11 16:52:00
--  
老师,改了之后还是会生成所有后台数据
--  作者:有点甜
--  发布时间:2018/12/11 17:01:00
--  

看不懂你表达的意思。上传具体实例测试。说明执行什么,应该得到什么数据。


--  作者:aza520
--  发布时间:2018/12/11 17:20:00
--  
比如现我全部数据有5行(图一),通过加载树选择加载时,选择加载了1行数据(如图二),这时我想生成的报表就是当前加载的这1行数据,而不是所有的5行数据都生成。

图一:

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

图二:

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



--  作者:有点甜
--  发布时间:2018/12/11 17:36:00
--  

1、你table的表格是哪个表?

 

2、你生成的时候不需要这段代码啊

 

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

 

3、具体实例发上来测试。


--  作者:aza520
--  发布时间:2018/12/11 18:00:00
--  
老师,上传了实例,请老师打开计量统计窗口,我是通过选定该窗口中子表的行来加载”中间计量表“的数据,然后想通过点击”分项工程中期计量支付表“按钮,生成报表,该报表的数据是此时”中间计量表“已加载的数据。

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



--  作者:有点甜
--  发布时间:2018/12/11 18:05:00
--  

直接保留这段代码就可以了啊

 

Dim Book As New XLS.Book(ProjectPath & "Attachments\\分项工程中期计量支付表.xlsx")
Dim fl As String = ProjectPath & "Reports\\分项工程中期计量支付表.xlsx"
Book.Build() \'生成细节区
Book.Save(fl) \'保存工作簿
Dim Proc As New Process \'打开工作簿
Proc.File = fl
Proc.Start()


--  作者:aza520
--  发布时间:2018/12/11 19:06:00
--  
我测试过这段代码,如果是分页加载的,比如有两页,则只会生成当前加载页,其它页的数据就不会生成
--  作者:有点蓝
--  发布时间:2018/12/11 20:01:00
--  
DataTables("中间计量表").loadTop = nothing
DataTables("中间计量表").load

im Book As New XLS.Book(ProjectPath & "Attachments\\分项工程中期计量支付表.xlsx")
Dim fl As String = ProjectPath & "Reports\\分项工程中期计量支付表.xlsx"
Book.Build() \'生成细节区
Book.Save(fl) \'保存工作簿
Dim Proc As New Process \'打开工作簿
Proc.File = fl
Proc.Start()