以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]引用  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=87456)

--  作者:江南小城
--  发布时间:2016/7/12 10:03:00
--  [求助]引用
Select Case e.DataCol.name
    Case "商品ID","商品名称","规格"
        If e.DataRow.IsNull("商品名称") = False AndAlso e.DataRow.IsNull("项目分类") = False AndAlso  e.DataRow.IsNull("规格") = False AndAlso  e.DataRow.Isnull("商品id") = False Then
            If e.DataRow("项目分类") = "原料" Then
                Dim dr As DataRow = DataTables("期初").Find("商品名称 = \'" & e.DataRow("商品名称")  & "\'")
                If dr Is Nothing Then
                    dr = DataTables("期初").AddNew
                    dr("商品名称") = e.DataRow("商品名称")
                    dr("规格") = e.DataRow("规格")
                End If
                dr("商品ID") = e.DataRow("商品ID")
               
            End If
        End If
End Select

老师好,我希望把上面的代码修改成商品名称相同规格不同的数据也引用到期初表中

--  作者:大红袍
--  发布时间:2016/7/12 10:22:00
--  
                Dim dr As DataRow = DataTables("期初").Find("商品名称 = \'" & e.DataRow("商品名称")  & "\' and 规格 = \'" & e.datarow("规格") & "\'")
--  作者:江南小城
--  发布时间:2016/7/12 13:23:00
--  
.NET Framework 版本:2.0.50727.3655
Foxtable 版本:2016.6.13.1
错误所在事件:进销存,CurrentChanged
详细错误信息:
Object reference not set to an instance of an object.

老师,通过下面代码把数据复制到进销存表,第一次打开窗口绑定的进销存表(副本)不报错第二次打开报错。
If MainTable.Name = "进销存" Then
    MainTable.StopRedraw
    MainTable.DataTable.DeleteFor("")
    For Each dr As DataRow In DataTables("入库明细").Select("入库日期 is not null")
        Dim nr As Row = MainTable.AddNew
        nr("日期") = dr("入库日期")
        nr("客户ID") = dr("客户ID")
        nr("客户名称") = dr("客户名称")
        nr("商品ID") = dr("商品ID")
        nr("商品名称") = dr("商品名称")
        nr("来源") = dr("来源")
        nr("规格") = dr("规格")
        nr("入库_数量") = dr("入库_数量")
        nr("入库_单价") = dr("入库_单价")
        nr("单位") = dr("入库_单位")
        nr("入库_金额") = dr("合计金额")
    Next
    
    For Each dr As DataRow In DataTables("出库明细").Select("出库日期 is not null")
        Dim nr As Row = MainTable.AddNew
        nr("日期") = dr("出库日期")
        nr("客户名称") = dr("客户")
        nr("客户ID") = dr("客户ID")
        nr("商品ID") = dr("商品ID")
        nr("商品名称") = dr("商品名称")
        nr("来源") = dr( "出库用途")
        nr("规格") = dr("规格")
        nr("出库_数量") = dr("出库_数量")
        nr("单位") = dr("出库_单位")
        nr("出库_单价") = dr("出库_售价")
        nr("出库_金额") = dr("出库_价税合计")
    Next
    
    For Each dr As DataRow In DataTables("库存").Select("日期 is not null")
        Dim nr As Row = MainTable.AddNew
        \'nr("客户名称") = dr("客户")
        \' nr("客户ID") = dr("客户ID")
        nr("日期") = dr("日期")
        nr("商品ID") = dr("商品ID")
        nr("商品名称") = dr("商品名称")
        nr("来源") =  dr("来源")
        nr("规格") =  dr("规格")
        nr("期初库存_数量") = dr("期初_数量")
        nr("期初库存_单价") = dr("期初_单价")
        nr("单位") = dr("期初_单位")
        nr("期初库存_金额") = dr("期初_金额")
    Next
    \' For Each dr As DataRow In DataTables("退还").Select("退还日期 is not null")
    \'  Dim nr As Row = MainTable.AddNew
    \'nr("日期") = dr("退还日期")
    \'nr("客户名称") = dr("客户名称")
    \'nr("商品ID") = dr("商品ID")
    \' nr("商品名称") = dr("商品名称")
    \' nr("来源") =  dr("来源")
    \'  nr("规格") =  dr("规格")
    \' nr("退还_数量") = dr("退还_数量")
    \'nr("退还_单价") = dr("退还_单价")
    \' nr("退还_金额") = dr("退还_金额")
    \' Next
    Tables("进销存").sort="商品ID,日期"
    MainTable.ResumeRedraw
End If

[此贴子已经被作者于2016/7/12 13:23:13编辑过]

--  作者:大红袍
--  发布时间:2016/7/12 14:43:00
--  

这段代码没问题。

 

去看你datacolchanged以及datarowdeleted事件

 

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