Foxtable(狐表)用户栏目专家坐堂 → 提示索引和长度错误提示


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

主题:提示索引和长度错误提示

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


加好友 发短信
等级:五尾狐 帖子:1033 积分:7258 威望:0 精华:0 注册:2008/9/1 22:34:00
提示索引和长度错误提示  发帖心情 Post By:2013/1/25 15:54:00 [只看该作者]


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

DataColChanged代码如下,原本是没这个提示的,今天增加了红色部份的代码后提示了,不知道是什么原因引起的.

 

 

Select e.DataCol.Name
    Case "sheet_no"
        If e.DataRow.IsNull("sheet_no") Then
            e.DataRow("sheet_lot") = Nothing
        Else
            Dim lb As String = e.DataRow("sheet_no")
            If e.DataRow("sheet_lot").StartsWith(lb) = False '如果单据编号前缀不符
                Dim max As String
                Dim idx As Integer
                max = e.DataTable.Compute("Max(sheet_lot)","sheet_no = '" & lb & "'") '取得该类别的最大编号
                If max > "" Then '如果存在最大编号
                    Dim n As Integer
                    n =max.IndexOf("_")
                    If n <>-1 Then
                        idx = CInt(max.Substring(n+1,3)) + 1 '获得最大编号的后三位顺序号,并加1
                    End If
                Else
                    idx = 1 '否则顺序号等于1
                End If
                e.DataRow("sheet_lot") = lb & "_" & Format(idx,"000")
            End If
        End If
    Case "part_no"
        Dim cmd As New SQLCommand
        Dim cmd1 As new SQLCommand
        Dim dt As DataTable
        Dim dt1 As DataTable
        cmd.C
        cmd.CommandText = "SELECT part_no,wf_cp_gz,wf_cp_ggrem,cu_part_no,wf_bz_fs,wf_edino,cu_part_no,wf_jsbkd,wf_bomkd,wf_scbkd,sheet_sta From {obas_part_spec} where [part_no] = '" & e.DataRow("part_no") &"'"
        cmd1.C
        cmd1.CommandText = "SELECT part_no,sal_unit_no From {obas_part1} where part_no = '" & e.DataRow("part_no") &"'"
        dt = cmd.ExecuteReader()
        dt1 = cmd1.ExecuteReader()
        Dim dr As DataRow
        dr = dt.Find("part_no = '" & e.DataRow("part_no") & "'")
        If dr IsNot Nothing '如果找到, 则设置各列内容
            e.DataRow("国家")= dr("wf_cp_gz")
            e.DataRow("客户编码")= dr("cu_part_no")
            e.DataRow("rem")= dr("wf_cp_ggrem") & "/ 电脑纹No." & dr("wf_edino") & "/ ABUS NO." & dr("cu_part_no")
            e.DataRow("define1")= dr("wf_bz_fs")
            e.DataRow("wf_jsbkd")= dr("wf_jsbkd")
            e.DataRow("wf_bomkd")= dr("wf_bomkd")
            e.DataRow("wf_scbkd")= dr("wf_scbkd")
            e.DataRow("wf_guigesheet_sta")= dr("sheet_sta")


        Else
            e.DataRow("国家")= Nothing
            e.DataRow("客户编码")= Nothing
            e.DataRow("wf_jsbkd")= Nothing
            e.DataRow("wf_bomkd")= Nothing
            e.DataRow("wf_scbkd")= Nothing
            e.DataRow("wf_guigesheet_sta")= Nothing
        End If
       
        Dim dr1 As DataRow =dt1.DataRows(0)
        e.DataRow("sal_unit")= dr1("sal_unit_no")
        Dim dr2 As DataRow=DataTables("料品资料查询表").Find("part_no = '" & e.DataRow("part_no") & "'")
        If dr2 IsNot Nothing Then
           Return
        Else
            Dim s As String =e.DataRow("part_no")
           If s ="1" Then
                Return
            Else
                'Dim Filter As String = "[part_no] = '" & s & "'"
                DataTables("料品资料查询表").Load()
                End If
        End If
End Select


 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/1/25 16:02:00 [只看该作者]

 这句代码错了。看看你对应的数据msgbox(max)看看

idx = CInt(max.Substring(n+1,3)) + 1 '获得最大编号的后三位顺序号,并加1

 回到顶部