以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 想根据d5的不重复值,来查询对应的d7和d8的值 然后生成d5 对应的值 在d7 最早的时间和最晚的时间段内 d8的总值 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=170306) |
||||
-- 作者:cnsjroom -- 发布时间:2021/7/21 11:23:00 -- 想根据d5的不重复值,来查询对应的d7和d8的值 然后生成d5 对应的值 在d7 最早的时间和最晚的时间段内 d8的总值 想根据d5的不重复值,来查询对应的d7和d8的值 然后生成d5 对应的值 在d7 最早的时间和最晚的时间段内 d8的总值 麻烦老师帮忙看看 ![]() ![]()
代码如下: 【1、能够实现根据d5的值生成对应的文件和对应记录个数的excel文件,但是里面的内容是一样,麻烦老师帮忙看看怎么解决。】 【2、麻烦老师帮忙看看怎样才能根据上述模板文件,直接生成一个所有的数据表,格式如图2。】 \'\'\' Dim abc As String Dim fl As String Dim Products As List(Of String) Products = DataTables("数据表").SQLGetValues("d5","","d5") For Each Product As String In Products \'output.show(Product) Dim Products1 As List(Of String()) Products1 = DataTables("数据表").SQLGetValues("d7|d8","d5=\'" & Product & "\'","d7") For Each Product1 As String() In Products1 If Product.Contains("/") Then output.show(Product) abc = Product.Replace("/","-") output.show(abc) Dim Book As New XLS.Book(ProjectPath & "Attachments\\物业费模板.xls") Dim Sheet As XLS.Sheet = Book.Sheets(0) Sheet(2,9).Value = "<d5 = \'" & Product & "\'>" \'写入打印条件 Sheet(2,8).Value = Product1(1) fl = ProjectPath & "Reports\\" & abc & "【" & Product1(0) & "欠款" & Product1(1) & "元】.xls" Book.Build() Book.Save(fl) Else output.show(Product) Dim Book As New XLS.Book(ProjectPath & "Attachments\\物业费模板.xls") Dim Sheet As XLS.Sheet = Book.Sheets(0) Sheet(2,9).Value = "<d5 = \'" & Product & "\'>" \'写入打印条件 Sheet(2,8).Value = Product1(1) fl = ProjectPath & "Reports\\" & Product & "【" & Product1(0) & "欠款" & Product1(1) & "元】.xls" Book.Build() Book.Save(fl) End If Next Next [此贴子已经被作者于2021/7/21 11:34:15编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2021/7/21 11:32:00 -- 是一个d5的数据就生成一个报表文件?还是所有数据都放到一个报表里? |
||||
-- 作者:cnsjroom -- 发布时间:2021/7/21 11:38:00 -- 回复:(有点蓝)是一个d5的数据就生成一个报表文件?... 是一个d5的数据就生成一个报表文件? 当前是一个d5生成多个d5的报表文件?因为d5有多少行记录 就生成了多少个报表文件?
[此贴子已经被作者于2021/7/21 11:42:09编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2021/7/21 11:50:00 -- Dim abc As String Dim fl As String Dim Products As List(Of String) Products = DataTables("数据表").SQLGetValues("d5","","d5") Dim Products1 As List(Of String) For Each Product As String In Products Products1 = DataTables("数据表").SQLGetValues("d7","d5=\'" & Product & "\'","d7") Dim s1 As String = Products1(0) If Products1.Count > 1 Then s1 = s1 & "-" & Products1(Products1.Count - 1) End If Dim sum As Double = DataTables("数据表").SQLCompute("sum(d8)","d5=\'" & Product & "\'") Dim Book As New XLS.Book(ProjectPath & "Attachments\\物业费模板.xls") Dim Sheet As XLS.Sheet = Book.Sheets(0) Sheet(2,9).Value = "<d5 = \'" & Product & "\'>" \'写入打印条件 fl = ProjectPath & "Reports\\" & abc & "【" & s1 & "欠款" & sum & "元】.xls" Book.Build() Book.Save(fl) Next |
||||
-- 作者:cnsjroom -- 发布时间:2021/7/21 12:32:00 -- 回复:(有点蓝)Dim abc As StringDim fl As StringD... 老师 根据你的指导 我扩展了一下:
想在这个模板中实现类似效果 当前代码如下:根据d5不同值的统计总数,来定义增加2+i单元格的值,结果永远只有最后一行数据,麻烦老师帮忙看看 谢谢! Dim abc As String Dim fl As String Dim f2 As String Dim i As Integer Dim Products As List(Of String) Products = DataTables("数据表").SQLGetValues("d5","","d5") If Products.Count > 1 Then For i = 0 To Products.Count - 1 Dim Products1 As List(Of String) For Each Product As String In Products Products1 = DataTables("数据表").SQLGetValues("d7","d5=\'" & Product & "\'","d7") Dim s1 As String = Products1(0) If Products1.Count > 1 Then s1 = s1 & "至" & Products1(Products1.Count - 1) End If Dim sum As Double = DataTables("数据表").SQLCompute("sum(d8)","d5=\'" & Product & "\'") Dim Book As New XLS.Book(ProjectPath & "Attachments\\物业费模板.xls") Dim Sheet As XLS.Sheet = Book.Sheets(0) Sheet(2,9).Value = "<d5 = \'" & Product & "\'>" \'写入打印条件 If Product.Contains("/") Then output.show(Product) abc = Product.Replace("/","-") fl = ProjectPath & "Reports\\" & abc & "【" & s1 & "欠款" & sum & "元】.xls" Else fl = ProjectPath & "Reports\\" & Product & "【" & s1 & "欠款" & sum & "元】.xls" End If Book.Build() Book.Save(fl) Dim Book1 As New XLS.Book(ProjectPath & "Attachments\\物业费汇总模板.xls") Dim Sheet1 As XLS.Sheet = Book1.Sheets(0) Sheet1(2+i,2).Value=Product Sheet1(2+i,3).Value=s1 Sheet1(2+i,4).Value=sum f2=ProjectPath & "Reports\\物业费汇总.xls" Book1.Build() Book1.Save(f2) Next Next End If 代码二:【实现的效果也是只有最后一行数据 麻烦老师指导下 谢谢!】 Dim i As Integer Dim Products As List(Of String) Products = DataTables("数据表").SQLGetValues("d5","","d5") If Products.Count > 1 Then For i = 0 To Products1.Count - 1 Dim sum As Double = DataTables("数据表").SQLCompute("sum(d8)","d5=\'" & Products(i) & "\'") Dim Products1 As List(Of String) Products1 = DataTables("数据表").SQLGetValues("d7","d5=\'" & Products(i)& "\'","d7") Dim s1 As String = Products1(0) If Products1.Count > 1 Then s1 = s1 & "至" & Products1(Products1.Count - 1) End If Dim Book1 As New XLS.Book(ProjectPath & "Attachments\\物业费汇总模板.xls") Dim f1 As String =ProjectPath & "Reports\\物业费汇总.xls" output.show(i) output.show(s1) output.show(Products(i)) output.show(sum) Dim Sheet1 As XLS.Sheet = Book1.Sheets(0) Sheet1(2,2).Value=Products(i) Sheet1(2,3).Value=s1 Sheet1(2,4).Value=sum Book1.Build() Book1.Save(f1) Next End If [此贴子已经被作者于2021/7/21 13:41:34编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2021/7/21 13:38:00 -- 使用统计功能生成下面这种统计表格,直接根据这个表格输出报表即可 ![]() |
||||
-- 作者:cnsjroom -- 发布时间:2021/7/21 13:44:00 -- 回复:(有点蓝)使用统计功能生成下面这种统计表格,... 有没有办法不先生成统计表 按照代码进行操作呢 Dim i As Integer Dim Products As List(Of String) Products = DataTables("数据表").SQLGetValues("d5","","d5") If Products.Count > 1 Then For i = 0 To Products1.Count - 1 Dim sum As Double = DataTables("数据表").SQLCompute("sum(d8)","d5=\'" & Products(i) & "\'") Dim Products1 As List(Of String) Products1 = DataTables("数据表").SQLGetValues("d7","d5=\'" & Products(i)& "\'","d7") Dim s1 As String = Products1(0) If Products1.Count > 1 Then s1 = s1 & "至" & Products1(Products1.Count - 1) End If Dim Book1 As New XLS.Book(ProjectPath & "Attachments\\物业费汇总模板.xls") Dim f1 As String =ProjectPath & "Reports\\物业费汇总.xls" output.show(i) output.show(s1) output.show(Products(i)) output.show(sum) Dim Sheet1 As XLS.Sheet = Book1.Sheets(0) Sheet1(2,2).Value=Products(i) Sheet1(2,3).Value=s1 Sheet1(2,4).Value=sum Book1.Build() Book1.Save(f1) Next End If |
||||
-- 作者:有点蓝 -- 发布时间:2021/7/21 13:54:00 -- 那就不要使用模板了,直接往execl文件按顺序填充数据。类似:http://www.foxtable.com/webhelp/topics/1148.htm |
||||
-- 作者:cnsjroom -- 发布时间:2021/7/21 15:57:00 -- 回复:(有点蓝)那就不要使用模板了,直接往execl文件... 老师 在你指导下 我将代码弄成了如下: 麻烦老师看看有没有简化的可能!谢谢! Dim i As Integer Dim tb As Table = Tables("汇总表") tb.DataTable.DeleteFor("") Dim Products As List(Of String) Products = DataTables("数据表").SQLGetValues("d5","","d5") If Products.Count > 1 Then For i = 0 To Products.Count - 1 Dim sum As Double = DataTables("数据表").SQLCompute("sum(d8)","d5=\'" & Products(i) & "\'") Dim Products1 As List(Of String) Products1 = DataTables("数据表").SQLGetValues("d7","d5=\'" & Products(i)& "\'","d7") Dim s1 As String = Products1(0) If Products1.Count > 1 Then s1 = s1 & "至" & Products1(Products1.Count - 1) End If tb.AddNew tb.Current("资源代码")=Products(i) tb.Current("时段")=s1 tb.Current("金额")=sum Next End If With Tables("汇总表") .Select(0,0, .Rows.Count - 1, .Cols.Count - 1) End With Dim Book1 As New XLS.Book(ProjectPath & "Attachments\\物业费汇总模板.xls") Dim f1 As String =ProjectPath & "Reports\\物业费汇总.xls" Dim Sheet As XLS.Sheet = Book1.Sheets(0) Book1.Build() Book1.Save(f1) 另外:模板中的汇总金额 不能正常显示 老师有没有办法呢?
[此贴子已经被作者于2021/7/21 15:57:10编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2021/7/21 16:02:00 -- 参考总计的用法:http://www.foxtable.com/webhelp/topics/1412.htm |