以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]出库明细表报错  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=99054)

--  作者:苏州老街
--  发布时间:2017/4/11 22:15:00
--  [求助]出库明细表报错
老师,出库明细表报错

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:eventcode.rar


图片点击可在新窗口打开查看此主题相关图片如下:图像 2.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2017/4/11 22:25:00
--  
提示没有“出库单编号明细”这个列,自己使用Messagebox定位是那一句代码有问题
--  作者:苏州老街
--  发布时间:2017/4/11 23:09:00
--  
老师,我把下面代码屏蔽后就不报错了。



\'Select Case e.DataCol.Name
   \' Case "出库单编号"
       \' If e.DataRow.IsNull("出库单编号") Then
          \'  e.DataRow("出库单编号明细") = Nothing
       \' Else
          \'  Dim bh As  String = e.DataRow("出库单编号")
          \'  Dim max  As  String
          \'  Dim idx  As  Integer
          \'  max = e.DataTable.Compute("Max(出库单编号明细)","出库单编号 = \'" & bh  & "\' And [_Identify] <> " & e.DataRow("_Identify")) \'取得该类别的最大入库单编号
          \'  If max > ""  Then  \'如果存在最大入库单编号
              \'  Dim l As Integer = bh.Length
             \'   idx = CInt(max.Substring(l,3)) + 1  \'获得最大入库单编号的后两位顺序号,并加1
          \'  Else
               \' idx = 1  \'否则顺序号等于1
            \'End  If
            \'e.DataRow("出库单编号明细") = bh & Format(idx,"000")
            
       \' End If
    \'Case "入库批次号"
      \'  Dim dr = DataTables("入库明细").Find("入库单编号明细 = \'" & e.DataRow("入库批次号") & "\'")
       \' If dr IsNot Nothing
           \' e.DataRow("入库价") = dr("入库_单价")
       \' End If
\'End Select


--  作者:有点蓝
--  发布时间:2017/4/11 23:19:00
--  
要么当前表没有这个列,要么入库明细没有这个列。用Messagebox定位到具体哪一行代码的问题
--  作者:苏州老街
--  发布时间:2017/4/12 11:27:00
--  

老师,找不出原因。


图片点击可在新窗口打开查看此主题相关图片如下:图像 2.png
图片点击可在新窗口打开查看

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:新建文件夹.rar


--  作者:有点色
--  发布时间:2017/4/12 11:37:00
--  

这段代码,没有对应的列,自然会报错。


If e.DataCol.Name = "已开票" AndAlso e.DataRow.IsNull("出库单编号明细") = False Then
    Dim dr As DataRow = DataTables("已开发票").Find("出库单编号明细 = \'" & e.DataRow("出库单编号明细") & "\'")
    If e.DataRow(e.DataCol) = True Then
        If dr Is Nothing Then
            dr = DataTables("已开发票").AddNew
            For Each dc As DataCol In DataTables("出库明细").DataCols
                If DataTables("已开发票").DataCols.Contains(dc.Name) Then
                    dr(dc.Name) = e.DataRow(dc.Name)
                End If
            Next
        End If
    Else
        If dr IsNot Nothing Then
            dr.Delete
        End If
    End If
End If


--  作者:苏州老街
--  发布时间:2017/4/12 12:16:00
--  
谢谢老师,修改了。