Foxtable(狐表)用户栏目专家坐堂 → 想根据d5的不重复值,来查询对应的d7和d8的值 然后生成d5 对应的值 在d7 最早的时间和最晚的时间段内 d8的总值


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

主题:想根据d5的不重复值,来查询对应的d7和d8的值 然后生成d5 对应的值 在d7 最早的时间和最晚的时间段内 d8的总值

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
想根据d5的不重复值,来查询对应的d7和d8的值 然后生成d5 对应的值 在d7 最早的时间和最晚的时间段内 d8的总值  发帖心情 Post By:2021/7/21 11:23:00 [只看该作者]

想根据d5的不重复值,来查询对应的d7和d8的值  然后生成d5 对应的值    在d7   最早的时间和最晚的时间段内    d8的总值
麻烦老师帮忙看看

图片点击可在新窗口打开查看此主题相关图片如下:11.png
图片点击可在新窗口打开查看
想实现效果如下:

图片点击可在新窗口打开查看此主题相关图片如下:12.png
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:物业费模板.xls


代码如下:
【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编辑过]

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


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/7/21 11:32:00 [只看该作者]

是一个d5的数据就生成一个报表文件?还是所有数据都放到一个报表里?

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)是一个d5的数据就生成一个报表文件?...  发帖心情 Post By:2021/7/21 11:38:00 [只看该作者]

是一个d5的数据就生成一个报表文件?

当前是一个d5生成多个d5的报表文件?因为d5有多少行记录 就生成了多少个报表文件?

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

且指定了d7为排序字段,且字段值为字符  结果还没有排序成功  麻烦老师帮忙看看

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


[此贴子已经被作者于2021/7/21 11:42:09编辑过]

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


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)Dim abc As StringDim fl As StringD...  发帖心情 Post By:2021/7/21 12:32:00 [只看该作者]

老师  根据你的指导  我扩展了一下:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:物业费汇总模板.xls

想在这个模板中实现
类似效果

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



当前代码如下:根据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编辑过]

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


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/7/21 13:38:00 [只看该作者]

使用统计功能生成下面这种统计表格,直接根据这个表格输出报表即可

图片点击可在新窗口打开查看

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)使用统计功能生成下面这种统计表格,...  发帖心情 Post By: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

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


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/7/21 13:54:00 [只看该作者]

那就不要使用模板了,直接往execl文件按顺序填充数据。类似:http://www.foxtable.com/webhelp/topics/1148.htm

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)那就不要使用模板了,直接往execl文件...  发帖心情 Post By:2021/7/21 15:57:00 [只看该作者]

老师  在你指导下  我将代码弄成了如下:  麻烦老师看看有没有简化的可能!谢谢!

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)

另外:模板中的汇总金额  不能正常显示  老师有没有办法呢?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:物业费汇总模板.xls

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


[此贴子已经被作者于2021/7/21 15:57:10编辑过]

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


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/7/21 16:02:00 [只看该作者]


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