Rss & SiteMap

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

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

标题:在订单表头上面统计整月订单的收款状态

1楼
ganlan 发表于:2024/11/30 12:28:00
请教一下想在订单表头上面统计该客户的整月账单订单的收款状态,用了下面的代码,重置列的时候,需要的时间要好几分钟,帮忙看一下代码能不能改良一下,谢谢
说明:订单表中字段有:订单号,账单收款状态,订单金额,订单已收款,客户名,账单月份
         收款表中字段有:订单号,订单金额,订单已收款,客户名,账单月份

Select Case e.DataCol.name
    Case "订单号"
        If e.DataRow.IsNull("订单号") Then
            e.DataRow("账单收款状态") = Nothing
        Else
            Dim filter As String 
            filter = "[客户名] = '" & e.DataRow("客户名") & "' and  账单月份 = '" & e.DataRow("账单月份") & "'"
            Dim ddje As Integer = DataTables("收款表").Compute("sum(订单金额)", filter)
            Dim ddys As Integer = DataTables("收款表").Compute("sum(订单已收款)", filter)
            If ddje = ddys Then
                e.DataTable.replacefor("账单收款状态", "收完", filter)
            Else
                e.DataTable.replacefor("账单收款状态", "未收完", filter)
            End If 
        End If
End Select
[此贴子已经被作者于2024/11/30 12:30:09编辑过]
2楼
有点蓝 发表于:2024/11/30 12:51:00
考虑实时更新,比如:http://www.foxtable.com/webhelp/topics/1472.htm

而不是动不动就重置列。一般是更改代码后重置一下旧数据。如果说数据比较多,慢是正常的,这种没有什么可优化的了
3楼
ganlan 发表于:2024/11/30 13:28:00
因为我是辅助SQL数据库的,所以做不到实时更新呀。几千条数据,要差不多十分钟,这个和其他的求和速度差太多了,其他的几乎马上就好了
[此贴子已经被作者于2024/11/30 13:29:04编辑过]
4楼
有点蓝 发表于:2024/11/30 13:49:00
意思是"收款表"是其它程序往数据库里写的,不是自己的程序录入的?

使用的是Compute,那么数据应该已经加载了,几千条数据也不应该要十分钟这么久,估计是"账单收款状态"更新后又触发了其它事件代码。方便做个例子发上来看看
5楼
ganlan 发表于:2024/11/30 14:18:00
不是,我两个表都是引用外部数据源的数据,然后通过重置列后再填入外部数据源的,收款表其实也是销售订单表,只不过我引用了两次同一个外部数据源的同一个表,起了不一的名字而已,估计这样而是等同一个表吧。之前试过,如果是同一个表内的数据参与重置,就会特别慢,如果是引用不同表的就很快,我以为添加同一个表进来,可以相当于不同表了,看看还是不行。
共5 条记录, 每页显示 10 条, 页签: [1]

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

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