以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  库存计算问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=27519)

--  作者:慧明和谐
--  发布时间:2013/1/3 16:15:00
--  库存计算问题
大虾们!小弟新手,请问 在“出库表”里面输入数字,怎么在“库存表”里面减掉,SQL语句怎么写...
--  作者:e-png
--  发布时间:2013/1/3 17:24:00
--  

发个例子吧。

 


--  作者:慧明和谐
--  发布时间:2013/1/4 10:03:00
--  

 

 产品名称    产品数量  
   苹果    5
   梨子    6
   菠萝    6
   香蕉

   12

          库存表

 

  产品名称    出库数量 
       
       
       
       

          出库表

想在出库表里面输入出库数量  入库表里面的数量就相应减少  代码该怎么写


--  作者:lin_hailun
--  发布时间:2013/1/4 10:11:00
--  
 你确定你要的是SQL语句么?你做个你的例子,发上来吧,不知道你具体的需求。
[此贴子已经被作者于2013-1-4 10:11:07编辑过]

--  作者:jann
--  发布时间: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-->