以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 打印报表代码问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=118989) |
||||
-- 作者:aza520 -- 发布时间: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()
|
||||
-- 作者:有点甜 -- 发布时间:2018/5/15 16:56:00 -- 这个意思?
Dim str = DataTables("变更申请单").SQLGetComboListString("项目名称+变更编号", DataTables("变更申请单").LoadFilter) Dim Book As New XLS.Book(ProjectPath & "Attachments\\变更台账2.xlsx") |
||||
-- 作者:aza520 -- 发布时间:2018/5/15 17:27:00 -- 按老师的代码修改,只能生成当前页数据,其它加载页生成不了。想生成的数据同时满足,两个表三列一样的条件 |
||||
-- 作者:有点甜 -- 发布时间:2018/5/15 17:37:00 -- 改成,如果还有问题,具体事例发上来测试。
Dim str = DataTables("变更申请单").SQLGetComboListString("项目名称+变更编号") Dim Book As New XLS.Book(ProjectPath & "Attachments\\变更台账2.xlsx") |
||||
-- 作者:aza520 -- 发布时间:2018/5/15 17:52:00 -- 现在把所有的后台数据都生成了。我只想根据当前加载树加载的数据进行生成 |
||||
-- 作者:有点甜 -- 发布时间:2018/5/15 19:01:00 -- 回复5楼,2楼的代码绝对没问题,请做个实例发上来测试。 |
||||
-- 作者:aza520 -- 发布时间:2018/5/18 18:56:00 -- 弄了很久解决不了,现上传实例,请老师帮诊断。 想解决两个问题: 1、变更统计表1:想生成也仅生成当前加载的所有加载页的数据。 2、变更统计表2:想生成也仅生成当前加载的所有加载页中"业主审批“为TRUE的数据。
|
||||
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间: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()
|
||||
-- 作者:有点蓝 -- 发布时间:2018/5/18 22:07:00 -- Dim str = DataTables("变更申请单").SQLGetComboListString("项目名称+变更编号", DataTables("变更信息表").LoadFilter & " And 业主审批=1") |