Foxtable(狐表)用户栏目专家坐堂 → 库存计算问题


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

主题:库存计算问题

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


加好友 发短信
等级:幼狐 帖子:66 积分:926 威望:0 精华:0 注册:2012/2/22 22:13:00
  发帖心情 Post By:2013/3/13 0:08:00 [显示全部帖子]

给你一段我的程序,看看有没有用.我的库存量,直接在供应入库表中,库存量是表达式列,,由入库量-出库量得来.出库量是由供应出库表中的库数量汇总而来.汇总的具体代码是红色部分,这样就自动了

供应出库_DataColChanged

Select e.DataCol.Name

            

    Case "出库数量"        '验证库中是否有货,并指出数量

        

        CurrentTable.Current.Save() '先让变更的数据进入数据库,以保证汇总全部数据

        Dim cmd As New SQLCommand '从后台查询并返回同一入库单号的数据,以备汇总

        Dim rkdt As DataTable

        cmd.ConnectionName = "hsknbgl"

        cmd.CommandText = "Select * From {供应出库} Where [入库单号] = " & e.DataRow("入库单号")

        rkdt = cmd.ExecuteReader

        

        If e.DataRow.Isnull("入库单号") Then

            e.DataRow("出库数量") = Nothing

        Else

            '如果出库成功,则汇总出库总数,并填到入库表的对应记录的出库量列中.

            Dim ddr As DataRow

            ddr = DataTables("供应入库").Find("入库单号 = '" & e.DataRow("入库单号") & "'")

            

            If ddr Is Nothing Then '查看 供应入库 中要写入的那一行是否已经加载

                MessageBox.Show("请给'供应入库'多加载点数据,直到在'供应入库中'能找到入库单号为" & e.DataRow("入库单号") & "的这一条记录")

            Else

                ddr("出库数量")=CDbl(rkdt.Compute("Sum(出库数量)", "入库单号 = '"  &  e.DataRow("入库单号") & "'")) '将同一入库单号的出库量汇总值写入供应入库中

            End If

            If ddr("剩余数量") < 0  Then '若出库数量多于单的剩余量,将出库数量清零

                messagebox.show("此条入库单上数量不够!只有" & ddr("剩余数量")+e.DataRow("出库数量") & "请减小出库量" )

                e.DataRow("出库数量") = 0

            End If

        End If

        

End Select

<!--EndFragment-->

 回到顶部