Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共3 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:老师,手工统计没数据怎么回事呢?

1楼
cd_tdh 发表于:2024/4/30 17:01:00
Dim txt As String = e.Sender.Value
If txt = "" Then
    e.Form.Controls("Panel2").Visible = True
Else
    e.Form.StopRedraw()
    e.Form.Controls("Panel2").Visible = False
    Dim dtb As New DataTableBuilder("统计")
    dtb.AddDef("供货方名称", GetType(String), 100)
    dtb.AddDef("采购合同金额", GetType(Double))
    dtb.AddDef("已支付金额", GetType(Double))
    dtb.AddDef("未支付金额", GetType(Double))
    dtb.AddDef("已开piao金额", GetType(Double))
    dtb.AddDef("未开piao金额", GetType(Double))
    dtb.AddDef("是否异常", GetType(Boolean))
    dtb.AddDef("异常原因", GetType(String), 50)
    dtb.Build()
    Dim dt1 As DataTable = DataTables("采购合同管理")
    Dim dt2 As DataTable = DataTables("委托支付管理")
    Dim dt3 As DataTable = DataTables("进项piao录入")
    For Each nm As String In dt1.SQLGetValues("供货方名称", "[项目名称] = '" & txt & "'")
        Dim dr As DataRow = DataTables("统计").AddNew()
        dr("供货方名称") = nm
        dr("采购合同金额") = dt1.sqlCompute("Sum(采购合同金额)", "[供货方名称] = '" & dr("供货方名称") & "'")
        dr("已支付金额") = dt2.sqlCompute("Sum(付款金额)", "[供货方名称] = '" & dr("供货方名称") & "'")
        dr("未支付金额") = dr("采购合同金额") - dr("已支付金额")
        dr("已开piao金额") = dt3.sqlCompute("Sum(税价合计金额)", "[供货方名称] = '" & dr("供货方名称") & "'")
        dr("未开piao金额") = dr("已支付金额") - dr("已开piao金额")
        If dr("未开piao金额") < 0 Then
            dr("是否异常") = True
            dr("异常原因") = "开piao金额大余委托支付金额"
        ElseIf dr("未开piao金额") > 0 Then
            dr("是否异常") = True
            dr("异常原因") = "付款后未收到足额的进项piao"
        End If
    Next
    '    MainTable = Tables("统计")
    With Tables("采购合同数据分析_Table1")
        .DataSource = dtb.BuildDataSource()
        .DataTable.DataCols.Add("序号", GetType(Integer)) '新增序号列
        .DataTable.DataCols.Add("备注", GetType(String)) '新增序号列
        .Cols("序号").Move(0)
        For Each r As Row In Tables("采购合同数据分析_Table1").Rows
            r("序号") = r.index + 1
        Next
        .DefaultRowHeight = 25 '所有行高
        .Cols("序号").TextAlign = TextAlignEnum.Center '居中
        .Cols("序号").Width = 60
        .Cols("供货方名称").Width = 300
        .Cols("采购合同金额").Width = 120
        .Cols("已支付金额").Width = 120
        .Cols("未支付金额").Width = 120
        .Cols("已开piao金额").Width = 120
        .Cols("未开piao金额").Width = 120
        .Cols("是否异常").Width = 70
        .Cols("异常原因").Width = 300
        .ExtendLastCol = True '自动列宽
    End With
    e.Form.ResumeRedraw()
End If
2楼
有点蓝 发表于:2024/4/30 17:10:00
1、Build()和BuildDataSource只能使用其中一个
2、必须在添加数据前调用Build()或者BuildDataSource

……
    dtb.AddDef("异常原因", GetType(String), 50)
      With Tables("采购合同数据分析_Table1")
        .DataSource = dtb.BuildDataSource()
    Dim dt1 As DataTable = DataTables("采购合同管理")
    Dim dt2 As DataTable = DataTables("委托支付管理")
    Dim dt3 As DataTable = DataTables("进项piao录入")
    For Each nm As String In dt1.SQLGetValues("供货方名称", "[项目名称] = '" & txt & "'")
        Dim dr As DataRow = DataTables("采购合同数据分析_Table1").AddNew()
        dr("供货方名称") = nm
        dr("采购合同金额") = dt1.sqlCompute("Sum(采购合同金额)", "[供货方名称] = '" & dr("供货方名称") & "'")
        dr("已支付金额") = dt2.sqlCompute("Sum(付款金额)", "[供货方名称] = '" & dr("供货方名称") & "'")
        dr("未支付金额") = dr("采购合同金额") - dr("已支付金额")
        dr("已开piao金额") = dt3.sqlCompute("Sum(税价合计金额)", "[供货方名称] = '" & dr("供货方名称") & "'")
        dr("未开piao金额") = dr("已支付金额") - dr("已开piao金额")
        If dr("未开piao金额") < 0 Then
            dr("是否异常") = True
            dr("异常原因") = "开piao金额大余委托支付金额"
        ElseIf dr("未开piao金额") > 0 Then
            dr("是否异常") = True
            dr("异常原因") = "付款后未收到足额的进项piao"
        End If
    Next
    '    MainTable = Tables("统计")

        .DataTable.DataCols.Add("序号", GetType(Integer)) '新增序号列
        .DataTable.DataCols.Add("备注", GetType(String)) '新增序号列
……
3楼
cd_tdh 发表于:2024/4/30 17:17:00
谢谢
[此贴子已经被作者于2024/4/30 17:20:52编辑过]
共3 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03125 s, 2 queries.