以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  流水账  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=130376)

--  作者:admin22327
--  发布时间:2019/1/20 15:40:00
--  流水账
采用外部数据源,数据量很大(100万条),查询某一时段流水账明细及的余额,按帮助里面了那个弄,是不是会很慢,还有其他方法吗?
--  作者:y2287958
--  发布时间:2019/1/20 17:36:00
--  
既然有现成的数据,试试就知道了,速度会受很多因素影响的
--  作者:admin22327
--  发布时间:2019/1/20 17:56:00
--  
没有现成的数据,正在设计哦
--  作者:有点甜
--  发布时间:2019/1/20 23:27:00
--  

 

用流水账设计可以。只要你查询的数据不大,就没问题。你可以在查询的时候,再重新计算流水账,如

 

http://www.foxtable.com/webhelp/scr/2926.htm

 

 


--  作者:admin22327
--  发布时间:2019/1/21 0:36:00
--  
1、参照非关联表之间的数据同步,对于相同编号的产品同步到另外一张表上的时候,出现,相同编号的产品的数量和金额只有最后一次的数据,看这段代码哪里有问题
Select Case e.DataCol.name \'同步流水账数据
    Case "货品ID"
        Dim dr As DataRow = DataTables("库存流水账").Find("货品ID = \'" & e.OldValue & "\'")
        If dr Is Nothing Then
            dr = DataTables("库存流水账").AddNew()
            dr("货品ID") = e.DataRow("货品ID")
            dr("日期") = e.DataRow("日期")
            dr("单号") = e.DataRow("单号")
            dr("名称") = e.DataRow("名称")
            dr("规格") = e.DataRow("规格")
            dr("入库数量") = e.DataRow("入库数量")
            dr("入库金额") = e.DataRow("入库金额")
        Else
            dr("货品ID") = e.DataRow("货品ID")
        End If
    Case "名称","规格","入库数量","入库金额"
        Dim dr As DataRow = DataTables("库存流水账").Find("货品ID = \'" & e.DataRow("货品ID") & "\'")
       If dr IsNot Nothing Then
           dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
       End If
End Select
2、同步的时候,出现列名称不一致,为什么数据不能同步过去呢,比如,一开始2张表的“入库数量“
图片点击可在新窗口打开查看此主题相关图片如下:111.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:222.png
图片点击可在新窗口打开查看
和”入库金额”名字不一样,同步过去就是“0”
3、同步删除的代码是否有问题
Dim ds As DataRow = DataTables("库存流水账").Find("货品ID = \'" & e.DataRow("货品ID") & "\'") \'同步删除流水账
If ds IsNot Nothing Then
    ds.Delete()
End If

[此贴子已经被作者于2019/1/21 0:41:11编辑过]

--  作者:有点甜
--  发布时间:2019/1/21 10:12:00
--  

1、请在表格那里加入一列唯一编码,必须根据唯一值处理的,不然你就用 _Identify。

 

2、具体实例发上来测试

 

3、那你就改成

 

DataTables("库存流水账").deletefor("货品ID = \'" & e.DataRow("货品ID") & "\'")


--  作者:admin22327
--  发布时间:2019/1/21 11:25:00
--  
新增一行,自动给某一列赋予一个指,怎么弄


--  作者:有点甜
--  发布时间:2019/1/21 12:02:00
--  
以下是引用admin22327在2019/1/21 11:25:00的发言:
新增一行,自动给某一列赋予一个指,怎么弄

 

DataRowAdded事件,比如

 

e.datarow("第一列") = "abc"


--  作者:admin22327
--  发布时间:2019/1/21 20:07:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:成本计算法.xls

1、软件不用数据库最大加载行数是多少?
2、从主表复制数据到关联表附表,用以下代码,如果先填写关联表明细表的数据,主表的供应商名称和库房不能同步到关联表的明细表,修改供应商和库房,也不能同步。代码如下;
If e.DataCol.Name = "单号" Then \'来自采购主表的供应商和库房
    If e.NewValue Is Nothing Then
        e.DataRow("供应商") = Nothing
        e.DataRow("库房名称") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("采购主表").Find("[单号] = \'" & e.NewValue & "\'")
        If dr IsNot Nothing
            e.DataRow("供应商") = dr("供应商")
            e.DataRow("库房名称") = dr("库房名称")
        End If
    End If
End If
3,关于库存商品金额的问题
按会计上计算库存商品的一般办法是,上一行库存金额/库存数量*本行的销售数量=计算销售成本,本行的库存商品金额=上一行的库存商品金额-本行的销售成本,完全是一个动态的过程,这个在软件里面怎么解决,用Excel的计算成本公式见上传的表格
图片点击可在新窗口打开查看此主题相关图片如下:3333.png
图片点击可在新窗口打开查看
这里关键是销售成本的计算, 
4、第一次计算库存是按商品名称计算的流水,我的商品存放在3个库房,现在要查看每个库房的流水明细,怎么弄,谢谢
[此贴子已经被作者于2019/1/21 20:26:14编辑过]

--  作者:有点蓝
--  发布时间:2019/1/21 21:15:00
--  
1、10W行应该都够呛了,总之一次性加载太多的数据是不现实的
2、"采购主表"datacolchanged事件

If e.DataCol.Name = "供应商" OrElse e.DataCol.Name = "库房名称" Then \'来自采购主表的供应商和库房
    Dim dr As DataRow
    dr = DataTables("明细表").Find("[单号] = \'" & e.DataRow("单号") & "\'")
    If dr IsNot Nothing
        dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
    End If
End If

3、采用流水账的计算方法即可,可以采用月结的方式,只查询计算本月的数据,这样就不会受数据量的影响了
4、商品名称+库房作为查询条件