以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- datacolchanded (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=93243) |
-- 作者:lk15502 -- 发布时间:2016/11/23 16:34:00 -- datacolchanded 代码设置在发外染纱表的datacolchanged事件中,发外染纱表是发外加工表的明细表,窗口中发外加工表在上,发外染纱表在下,发外染纱表增加一行,根据发外加工表得当前行的发外编号产生一个发外明细编号,当发外染纱表新增行时其他单元格有复制的内容时会产生发外明细编号,当没有内容时,不会产生发外明细编号,请问老师什么原因?谢谢! Dim r As Row = Tables("生产计划排产_table11").Current If r IsNot Nothing AndAlso r.Isnull("发外编号") = False Then Dim lb As String = r("发外编号") & "-" If e.DataRow("发外明细编号").StartsWith(lb) = False Then \'如果单据编号前缀不符 Dim max As String Dim idx As Integer max = e.DataTable.sqlCompute("Max(发外明细编号)","发外明细编号 like \'" & r("发外编号") & "%\' And [_Identify] <> " & e.DataRow("_Identify")) \'取得该类别的最大编号 If max > "" Then \'如果存在最大编号 idx = CInt(max.Substring(lb.length,2)) + 1 \'获得最大编号的后两位顺序号,并加1 Else idx = 1 \'否则顺序号等于1 End If e.DataRow("发外明细编号") = lb & Format(idx,"00") e.DataRow.Save End If ElseIf r IsNot Nothing AndAlso r.Isnull("发外编号") = True Then msgbox("请检查发外加工单,发外编号不能空!") Return ElseIf r Is Nothing Then msgbox("发外加工单没有当前行,请检查!") Return End If 下面是发外染纱表增加按钮的代码: _userroles.Contains("生产计划") = True Then Dim r1 As Row = Tables("发外加工计划表").Current If r1 IsNot Nothing Then Dim r2 As Row = Tables("发外毛坯表").addnew Dim Cols1() As String = {"订单编号","订单客户","外加工厂商"} Dim Cols2() As String = {"订单编号","客户","外加工厂商"} For i As Integer = 0 To Cols1.Length -1 If r1.Isnull(Cols1(i)) = False Then r2(Cols2(i)) = r1(Cols1(i)) End If r2.save Next Else msgbox("没有发外单请检查!") End If Else msgbox("您没有权限增加发外明细!") Return End If |
-- 作者:lk15502 -- 发布时间:2016/11/23 16:37:00 -- 下面是发外染纱表增加按钮的代码: If _userroles.Contains("生产计划") = True Then Dim r1 As Row = Tables(e.Form.Name & "_table11").Current If r1 IsNot Nothing AndAlso r1.Isnull("发外编号") = False Then Dim r2 As Row = Tables("发外染纱表").addnew Dim Cols1() As String = {"订单编号","订单客户","外加工厂商"} Dim Cols2() As String = {"订单编号","客户","外加工厂商"} For i As Integer = 0 To Cols1.Length -1 If r1.Isnull(Cols1(i)) = False Then r2(Cols2(i)) = r1(Cols1(i)) End If r2.save Next ElseIf r1.Isnull("发外编号") = True Then msgbox("发外编号不能为空!") Return End If Else msgbox("您没有权限增加发外明细!") Return End If
|
-- 作者:有点蓝 -- 发布时间:2016/11/23 16:48:00 -- 代码看不出什么问题。上例子看看 |