以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 将截断字符串或二进制数据 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=119763) |
-- 作者:huhu -- 发布时间:2018/5/31 15:07:00 -- 将截断字符串或二进制数据 .NET Framework 版本:2.0.50727.7905 Foxtable 版本:2018.3.9.1 错误所在事件: 详细错误信息: 语句已终止。 将截断字符串或二进制数据。 这是怎么回事?是超出列长度了吗?-----应该不是。
|
-- 作者:有点甜 -- 发布时间:2018/5/31 15:15:00 -- 输入的字符超出列长度,就会报这个错误。
贴出你写的代码。 |
-- 作者:huhu -- 发布时间:2018/5/31 15:20:00 -- Dim yphsl As WinForm.Button = e.Form.Controls("Button5") Dim bfhfh As WinForm.Button = e.Form.Controls("Button6") Dim tg As WinForm.RadioButton = Forms("配货整理").Controls("通过") Dim wg As WinForm.RadioButton = Forms("配货整理").Controls("未过") Dim dr As Row = Tables("销售出库单列表").current Dim str As String = dr("发货要求") Dim filter,filter1 As String filter1 = "物料编码 = \'" & dr("存货编码") & "\' and 发货单号 = \'" & dr("发货单号") & "\' and 出库单号 = \'" & dr("出库单号") & "\'" If str.contains("_") = False Then Select Case e.DataCol.name Case "SN" If Not e.DataRow.IsNull("SN") Then Dim drr As DataRow = DataTables("库存明细表").SQLFind("SN = \'" & e.DataRow("SN") & "\'") If drr IsNot Nothing Then If drr("状态") = "配货完成" Then e.DataRow("状态") = "配货重复扫描" e.DataRow("物料编码") = dr("存货编码") e.DataRow("发货单号") = dr("发货单号") e.DataRow("出库单号") = dr("出库单号") e.DataRow("货运单号") = dr("货运单号") e.DataRow("id") = dr("_identify") e.DataRow("数量") = 0 e.DataRow.save Else Dim nms() As String = {"生产订单号码","工单行号","类别说明","产品批次","订单号","订单行号","客户","备注","软件版本","MAC","HW","入库单号","库位类别","库位编码","入库完成时间","入库方式","在库生命周期"} For Each nm As String In nms e.DataRow(nm) = drr(nm) Next e.DataRow("物料编码") = dr("存货编码") e.DataRow("物料名称") = dr("存货名称") e.DataRow("状态") = "配货完成" e.DataRow("发货单号") = dr("发货单号") e.DataRow("出库单号") = dr("出库单号") e.DataRow("货运单号") = dr("货运单号") e.DataRow("id") = dr("_identify") e.DataRow("数量") = 1 e.DataRow("配货完成时间") = Date.now e.DataRow.save drr("物料编码") = dr("存货编码") drr("物料名称") = dr("存货名称") drr("状态") = "配货完成" drr("配货完成时间") = Date.now drr("订单号") = dr("销售订单号") drr("U8发货单号") = dr("发货单号") drr("U8出库单号") = dr("出库单号") drr("客户") = dr("客户名称") drr("业务员") = dr("业务员") drr("货运单号") = dr("货运单号") drr("发货地址") = dr("发货地址") drr("id") = dr("_identify") drr.Save If drr.IsNull("id_flag") = False Then Dim drrms As List(of DataRow) = DataTables("库存明细表").SQLSelect("id_flag = \'" & drr("id_flag") & "\'") For Each drrm As DataRow In drrms drrm("id") = dr("_identify") drrm.save Next End If Dim sum2 As Integer sum2 = Forms("配货整理").Controls("Table2").Table.Compute("Sum(数量)","状态 = \'配货完成\' and SN is not null") yphsl.text = "发货单号:" & dr("发货单号") & "已完成配货数量" & "=" & sum2 If dr("挪货数量") = sum2 Then dr("配货状态") = True dr("配货完成时间") = Date.now dr.save tg.Enabled = True wg.Enabled = True Else tg.Enabled = False wg.Enabled = False End If Dim mr As DataRow = DataTables("库位数量统计").SQLFind("生产订单号码 = \'" & drr("生产订单号码") & "\' and 工单行号 = \'" & drr("工单行号") & "\' and 物料编码 = \'" & drr("物料编码") & "\' and 库位编码 = \'" & drr("库位编码") & "\' and 库位类别 = \'" & drr("库位类别") & "\'") If mr IsNot Nothing Then Dim cmd1 As new SQLCommand cmd1.C cmd1.CommandText = "Exec kwsltjdec \'" & mr("生产订单号码") & "\',\'" & mr("工单行号") & "\',\'" & mr("物料编码") & "\',\'" & mr("库位编码") & "\',\'" & mr("库位类别") & "\'" Dim t As DataTable = cmd1.ExecuteReader mr.save End If If dr("U8发货") = True Then Dim tr As String = "物料编码 = \'" & e.DataRow("物料编码") & "\' and 库位类别 = \'" & e.DataRow("库位类别") & "\' and 生产订单号码 = \'" & e.DataRow("生产订单号码") & "\' and 工单行号 = \'" & e.DataRow("工单行号") & "\'" Dim mrr As DataRow = DataTables("可用数量表").SQLFind(tr) If mrr IsNot Nothing Then Dim cmd1 As new SQLCommand cmd1.C cmd1.CommandText = "Exec kyslbdec \'" & mrr("物料编码") & "\',\'" & mrr("库位类别") & "\',\'" & mrr("生产订单号码") & "\',\'" & mrr("工单行号") & "\'" Dim t As DataTable = cmd1.ExecuteReader mrr.save End If Else Dim tr As String = "物料编码 = \'" & e.DataRow("物料编码") & "\' and 库位类别 = \'" & e.DataRow("库位类别") & "\' and 生产订单号码 = \'" & e.DataRow("生产订单号码") & "\' and 工单行号 = \'" & e.DataRow("工单行号") & "\'" Dim mrr As DataRow = DataTables("可用数量表").SQLFind(tr) If mrr IsNot Nothing Then Dim cmd1 As new SQLCommand cmd1.C cmd1.CommandText = "Exec kyslbzkdec \'" & mrr("物料编码") & "\',\'" & mrr("库位类别") & "\',\'" & mrr("生产订单号码") & "\',\'" & mrr("工单行号") & "\'" Dim t As DataTable = cmd1.ExecuteReader mrr.save If mrr.IsNull("id_flag") = False And mrr("在库数量") <> 0 Then Dim yrr As DataRow = DataTables("可用数量表").SQLFind("id_flag = \'" & mrr("id_flag") & "\' and 插卡 = 1") If yrr IsNot Nothing Then Dim mrrs As List(of DataRow) = DataTables("可用数量表").SQLSelect("id_flag = \'" & mrr("id_flag") & "\'") For Each mrrm As DataRow In mrrs If yrr("数量") = 0 Then mrrm("在库数量") = 0 mrrm.save Else mrrm("在库数量") = mrrm("在库数量") - mrrm("在库数量") * 1/yrr("数量") mrrm.save End If Next End If End If End If End If End If End If Dim crr As DataRow = DataTables("库存明细表").SQLFind("SN = \'" & e.DataRow("SN") & "\'") If crr Is Nothing Then e.DataRow("状态") = "配货完成" e.DataRow("物料编码") = dr("存货编码") e.DataRow("发货单号") = dr("发货单号") e.DataRow("出库单号") = dr("出库单号") e.DataRow("货运单号") = dr("货运单号") e.DataRow("id") = dr("_identify") e.DataRow("数量") = 1 e.DataRow("配货完成时间") = Date.now e.DataRow.save Dim rr As DataRow = DataTables("库存明细表").AddNew rr("SN") = e.DataRow("SN") rr("物料编码") = e.DataRow("物料编码") rr("库位类别") = dr("仓库编码") rr("库位编码") = "KW999999" rr("订单号") = dr("销售订单号") rr("U8发货单号") = dr("发货单号") rr("U8出库单号") = dr("出库单号") rr("货运单号") = dr("货运单号") rr("客户") = dr("客户名称") rr("业务员") = dr("业务员") rr("发货地址") = dr("发货地址") rr("状态") = "配货完成" rr("配货完成时间") = Date.now rr("出库方式") = "type5" rr("数量") = 1 rr("id") = dr("_identify") rr.save Dim sum2 As Integer sum2 = Forms("配货整理").Controls("Table2").Table.Compute("Sum(数量)","状态 = \'配货完成\' and SN is not null") yphsl.text = "发货单号:" & dr("发货单号") & "已完成配货数量" & "=" & sum2 If dr("挪货数量") = sum2 Then dr("配货状态") = True dr("配货完成时间") = Date.now dr.save \'DataTables("销售出库单列表").SQLReplaceFor("配货状态",1,"groupId = \'" & dr("groupId") & "\'") \'DataTables("销售出库单列表").SQLReplaceFor("配货完成时间",Date.now,"groupId = \'" & dr("groupId") & "\'") tg.Enabled = True wg.Enabled = True Else tg.Enabled = False wg.Enabled = False End If End If End If End Select ElseIf str.Contains("_") = True And str.Contains("|") = False Then Dim gdh,gdhh As String Dim gds() As String = str.Split("_") gdh = gds(0) gdhh = gds(1) Select Case e.DataCol.name Case "SN" If Not e.DataRow.IsNull("SN") Then Dim drr As DataRow = DataTables("库存明细表").SQLFind("SN = \'" & e.DataRow("SN") & "\'") If drr IsNot Nothing Then If drr("状态") = "配货完成" Then e.DataRow("状态") = "配货重复扫描" e.DataRow("物料编码") = dr("存货编码") e.DataRow("发货单号") = dr("发货单号") e.DataRow("出库单号") = dr("出库单号") e.DataRow("货运单号") = dr("货运单号") e.DataRow("id") = dr("_identify") e.DataRow("数量") = 0 e.DataRow.save Else Dim nms() As String = {"生产订单号码","工单行号","类别说明","产品批次","订单号","订单行号","客户","备注","软件版本","MAC","HW","入库单号","库位类别","库位编码","入库完成时间","入库方式","在库生命周期"} For Each nm As String In nms e.DataRow(nm) = drr(nm) Next e.DataRow("物料编码") = dr("存货编码") e.DataRow("物料名称") = dr("存货名称") e.DataRow("状态") = "配货完成" e.DataRow("发货单号") = dr("发货单号") e.DataRow("出库单号") = dr("出库单号") e.DataRow("货运单号") = dr("货运单号") e.DataRow("id") = dr("_identify") e.DataRow("数量") = 1 e.DataRow("配货完成时间") = Date.now e.DataRow.save drr("物料编码") = dr("存货编码") drr("物料名称") = dr("存货名称") drr("状态") = "配货完成" drr("订单号") = dr("销售订单号") drr("配货完成时间") = Date.now drr("U8发货单号") = dr("发货单号") drr("U8出库单号") = dr("出库单号") drr("客户") = dr("客户名称") drr("业务员") = dr("业务员") drr("货运单号") = dr("货运单号") drr("发货地址") = dr("发货地址") drr("id") = dr("_identify") drr.Save If drr.IsNull("id_flag") = False Then Dim drrms As List(of DataRow) = DataTables("库存明细表").SQLSelect("id_flag = \'" & drr("id_flag") & "\'") For Each drrm As DataRow In drrms drrm("id") = dr("_identify") drrm.save Next End If Dim sum2 As Integer sum2 = Forms("配货整理").Controls("Table2").Table.Compute("Sum(数量)","状态 = \'配货完成\' and SN is not null") yphsl.text = "发货单号:" & dr("发货单号") & "已完成配货数量" & "=" & sum2 If dr("挪货数量") = sum2 Then dr("配货状态") = True dr("配货完成时间") = Date.now dr.save tg.Enabled = True wg.Enabled = True Else tg.Enabled = False wg.Enabled = False End If Dim mr As DataRow = DataTables("库位数量统计").SQLFind("生产订单号码 = \'" & drr("生产订单号码") & "\' and 工单行号 = \'" & drr("工单行号") & "\' and 物料编码 = \'" & drr("物料编码") & "\' and 库位编码 = \'" & drr("库位编码") & "\' and 库位类别 = \'" & drr("库位类别") & "\'") If mr IsNot Nothing Then Dim cmd1 As new SQLCommand cmd1.C cmd1.CommandText = "Exec kwsltjdec \'" & mr("生产订单号码") & "\',\'" & mr("工单行号") & "\',\'" & mr("物料编码") & "\',\'" & mr("库位编码") & "\',\'" & mr("库位类别") & "\'" Dim t As DataTable = cmd1.ExecuteReader mr.save End If Dim tr As String = "物料编码 = \'" & e.DataRow("物料编码") & "\' and 库位类别 = \'" & e.DataRow("库位类别") & "\' and 生产订单号码 = \'" & e.DataRow("生产订单号码") & "\' and 工单行号 = \'" & e.DataRow("工单行号") & "\'" Dim mrr As DataRow = DataTables("可用数量表").SQLFind(tr) If mrr IsNot Nothing Then If mrr("生产订单号码") <> gdh Or (mrr("生产订单号码") = gdh And mrr("工单行号") <> gdhh) Then Dim cmd1 As new SQLCommand cmd1.C cmd1.CommandText = "Exec kyslbdec \'" & mrr("物料编码") & "\',\'" & mrr("库位类别") & "\',\'" & mrr("生产订单号码") & "\',\'" & mrr("工单行号") & "\'" Dim t As DataTable = cmd1.ExecuteReader mrr.save Dim wr As DataRow = DataTables("可用数量表").SQLFind("生产订单号码 = \'" & gdh & "\' and 工单行号 = \'" & gdhh & "\'") If wr IsNot Nothing Then wr("数量") = wr("数量") + 1 wr.save End If ElseIf mrr("生产订单号码") = gdh And mrr("工单行号") = gdhh Then Dim cmd1 As new SQLCommand cmd1.C cmd1.CommandText = "Exec kyslbzkdec \'" & mrr("物料编码") & "\',\'" & mrr("库位类别") & "\',\'" & mrr("生产订单号码") & "\',\'" & mrr("工单行号") & "\'" Dim t As DataTable = cmd1.ExecuteReader mrr.save End If If mrr.IsNull("id_flag") = False And mrr("在库数量") <> 0 Then Dim yrr As DataRow = DataTables("可用数量表").SQLFind("id_flag = \'" & mrr("id_flag") & "\' and 插卡 = 1") If yrr IsNot Nothing Then Dim mrrs As List(of DataRow) = DataTables("可用数量表").SQLSelect("id_flag = \'" & mrr("id_flag") & "\'") For Each mrrm As DataRow In mrrs If yrr("数量") = 0 Then mrrm("在库数量") = 0 mrrm.save Else mrrm("在库数量") = mrrm("在库数量") - mrrm("在库数量") * 1/yrr("数量") mrrm.save End If Next End If End If End If End If End If Dim crr As DataRow = DataTables("库存明细表").SQLFind("SN = \'" & e.DataRow("SN") & "\'") If crr Is Nothing Then Dim dr11 As DataRow = DataTables("assemblyProduct").SQLFind("deviceCode = \'" & e.DataRow("SN") & "\' or productno = \'" & e.DataRow("SN") & "\'") If dr11 IsNot Nothing Then Dim dr22 As DataRow = DataTables("assemblySubWorkOrder").SQLFind("SID = \'" & dr11("subWorkOrder") & "\'") If dr22 IsNot Nothing Then e.DataRow("工单行号") = dr22("LineFlag") Dim dr33 As DataRow = DataTables("assemblyWorkOrder").SQLFind("Id = \'" & dr22("workOrder") & "\'") If dr33 IsNot Nothing Then e.DataRow("生产订单号码") = dr33("WorkOrderNo") Dim dr44 As DataRow = DataTables("计划表").SQLFind("生产订单号码 = \'" & e.DataRow("生产订单号码") & "\' and 工单行号 = \'" & e.DataRow("工单行号") & "\'") If dr44 IsNot Nothing Then e.DataRow("物料编码") = dr44("客户物料编码") e.DataRow("状态") = "配货完成" e.DataRow("物料编码") = dr("存货编码") e.DataRow("发货单号") = dr("发货单号") e.DataRow("出库单号") = dr("出库单号") e.DataRow("货运单号") = dr("货运单号") e.DataRow("id") = dr("_identify") e.DataRow("数量") = 1 e.DataRow("配货完成时间") = Date.now e.DataRow.save Dim rr As DataRow = DataTables("库存明细表").AddNew rr("SN") = e.DataRow("SN") rr("库位类别") = dr("仓库编码") rr("库位编码") = "KW999999" rr("物料编码") = e.DataRow("物料编码") rr("订单号") = dr("销售订单号") rr("U8发货单号") = dr("发货单号") rr("U8出库单号") = dr("出库单号") rr("货运单号") = dr("货运单号") rr("客户") = dr("客户名称") rr("业务员") = dr("业务员") rr("发货地址") = dr("发货地址") rr("状态") = "配货完成" rr("配货完成时间") = Date.now rr("出库方式") = "type5" rr("数量") = 1 rr("id") = dr("_identify") rr.save End If End If End If End If Dim sum2 As Integer sum2 = Forms("配货整理").Controls("Table2").Table.Compute("Sum(数量)","状态 = \'配货完成\' and SN is not null") \' yphsl.text = "发货单号:" & dr("发货单号") & "已完成配货数量" & "=" & sum2 If dr("挪货数量") = sum2 Then dr("配货状态") = True dr("配货完成时间") = Date.now dr.save tg.Enabled = True wg.Enabled = True Else tg.Enabled = False wg.Enabled = False End If End If End If End Select End If
|
-- 作者:有点甜 -- 发布时间:2018/5/31 15:45:00 -- 加入msgbox定位出错位置。
基本上,是因为你 CommandText 设置的sql语句导致的问题,弹出合成的sql语句是否正确,能否正常执行。 |