以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]错误代码  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=52227)

--  作者:风声
--  发布时间:2014/6/11 15:15:00
--  [求助]错误代码

图片点击可在新窗口打开查看此主题相关图片如下:错误代码.png
图片点击可在新窗口打开查看老师我在设置编号保存时出现的。

--  作者:有点甜
--  发布时间:2014/6/11 15:17:00
--  

 Select Case e.DataCol.Name

     Case "入库单编号"

 

 End Select


--  作者:风声
--  发布时间:2014/6/11 15:36:00
--  
 

Select Case e.DataCol.Name

     Case "入库单编号"

 

 End Select

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

            e.DataRow("入库单编号明细") = Nothing

        Else

            Dim bh As  String = e.DataRow("入库单编号")

            If e.DataRow("入库单编号明细").StartsWith(bh) = False  \'如果入库单编号明细前缀不符

                Dim max  As  String

                Dim idx  As  Integer

                Dim count As Integer = e.DataTable.Compute("Count(_Identify)","入库单编号 = \'" & bh  & "\' And [_Identify] <> " & e.DataRow("_Identify"))

                If count > 0 Then

                   

                    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

            End  If

        End If


图片点击可在新窗口打开查看此主题相关图片如下:编号明细.png
图片点击可在新窗口打开查看

入库单编号明细列的第一行没有自动添加编号


--  作者:有点甜
--  发布时间:2014/6/11 15:59:00
--  
 你必须删除重新输入入库单号,才会编号的。
--  作者:风声
--  发布时间:2014/6/11 16:28:00
--  

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

l老师,不行阿。


--  作者:有点甜
--  发布时间:2014/6/11 16:41:00
--  

 可以啊,如果要方便,就重置列:选中入库单编号,重置

 

 http://www.foxtable.com/help/topics/1469.htm

 


--  作者:逛逛
--  发布时间:2014/6/11 17:11:00
--  
以下是引用风声在2014-6-11 15:36:00的发言:
 

Select Case e.DataCol.Name

     Case "入库单编号"

 

 End Select

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

            e.DataRow("入库单编号明细") = Nothing

        Else

            Dim bh As  String = e.DataRow("入库单编号")

            If e.DataRow("入库单编号明细").StartsWith(bh) = False  \'如果入库单编号明细前缀不符

                Dim max  As  String

                Dim idx  As  Integer

                Dim count As Integer = e.DataTable.Compute("Count(_Identify)","入库单编号 = \'" & bh  & "\' And [_Identify] <> " & e.DataRow("_Identify"))

                If count > 0 Then

                   

                    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

            End  If

        End If


图片点击可在新窗口打开查看此主题相关图片如下:编号明细.png
图片点击可在新窗口打开查看

入库单编号明细列的第一行没有自动添加编号

兄弟,你的Select Case 的语句有点奇怪,早早的End 了,是否应该放到下面来。


--  作者:风声
--  发布时间:2014/6/11 18:21:00
--  
老师帮我改一下吧,谢谢了。
--  作者:有点甜
--  发布时间:2014/6/11 19:03:00
--  

 看6楼,然后改成这样

 

Select Case e.DataCol.Name
   
    Case "入库单编号"
       
        If e.DataRow.IsNull("入库单编号") Then
           
            e.DataRow("入库单编号明细") = Nothing
           
        Else
           
            Dim bh As  String = e.DataRow("入库单编号")
           
            If e.DataRow("入库单编号明细").StartsWith(bh) = False  \'如果入库单编号明细前缀不符
               
                Dim max  As  String
               
                Dim idx  As  Integer
               
                Dim count As Integer = e.DataTable.Compute("Count(_Identify)","入库单编号 = \'" & bh  & "\' And [_Identify] <> " & e.DataRow("_Identify"))
               
                If count > 0 Then
                   
                   
                   
                    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
               
            End  If
           
        End If
       
End Select


--  作者:风声
--  发布时间:2014/6/11 19:37:00
--  
图片点击可在新窗口打开查看还是这个问题