以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]请老师帮助 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=54644) |
-- 作者:爱相随 -- 发布时间:2014/8/1 10:59:00 -- [求助]请老师帮助 老师,以下代码是自动生成编号的代码,是根据登录单位+年度+月份+000三位数组成的代码,修改后不得行,提示标注红色的代码有错,请老师帮助一下,谢谢!! Select e.DataCol.Name Case "DWJM","ND","ZJY" If e.DataRow.IsNull("DWJM") OrElse e.DataRow.IsNull("ND") OrElse e.DataRow.IsNull("ZJY") Then e.DataRow("JHBH") = Nothing Else Dim bh As String = e.DataRow("DWJM") & "-" & e.DataRow("ND") & "-" & e.DataRow("ZJY") & "-" \'生成编号的前缀 If e.DataRow("JHBH").StartsWith(bh) = False \'如果单据编号前缀不符 Dim max As String Dim idx As Integer Dim flt As String flt = "DWJM = \'"& e.DataRow("DWJM") & "\'" And "ND = \'"& e.DataRow("ND") & "\'" And "ZJY = \'"& e.DataRow("ZJY") & "\'" And [_Identify] <> " & e.DataRow("_Identify") max = e.DataTable.Compute("Max(JHBH)",flt) \'取得该月的相同工程代码的最大单据编号 If max > "" Then \'如果存在最大单据编号 idx = CInt(max.Substring(12,3)) + 1 \'获得最大单据编号的后四位顺序号,并加1 Else idx = 1 \'否则顺序号等于1 End If e.DataRow("JHBH") = bh & Format(idx,"000") End If End If End Select |
-- 作者:有点甜 -- 发布时间:2014/8/1 11:01:00 -- flt = "DWJM = \'"& e.DataRow("DWJM") & "\' And ND = \'" & e.DataRow("ND") & "\' And ZJY = \'" & e.DataRow("ZJY") & "\' And [_Identify] <> " & e.DataRow("_Identify") |
-- 作者:Bin -- 发布时间:2014/8/1 11:02:00 -- flt = "DWJM = \'"& e.DataRow("DWJM") & "\' And ND = \'"& e.DataRow("ND") & "\' And ZJY = \'" & e.DataRow("ZJY") & "\' And [_Identify] <> " & e.DataRow("_Identify") |
-- 作者:爱相随 -- 发布时间:2014/8/1 11:12:00 -- 老师,在增加第二条记录时,提示以下信息,是什么意思呢??,是长度不够吗? .NET Framework 版本:2.0.50727.3053 Foxtable 版本:2014.5.12.1 错误所在事件:表,ZJJHB,DataColChanged 详细错误信息: Exception has been thrown by the target of an invocation. Index and length must refer to a location within the string. Parameter name: length [此贴子已经被作者于2014-8-1 11:12:21编辑过]
|
-- 作者:有点甜 -- 发布时间:2014/8/1 11:13:00 -- idx = CInt(max.Substring(bh.length,3)) + 1 \'获得最大单据编号的后四位顺序号,并加1 |
-- 作者:爱相随 -- 发布时间:2014/8/1 11:23:00 -- 老师,下面的代码中,我要自动获得是哪一张单号的数据填列不完整,怎么增加代码呢?? If User.IsRole("录入人") Then For Each r As Row In Tables("ZJJHB").GetCheckedRows If Tables("ZJJHB").current.IsNull("KSMC") OrElse Tables("ZJJHB").current.IsNull("SQJE") OrElse Tables("ZJJHB").current.IsNull("SBSM") Then MessageBox.Show("数据填列不完整,不允许上报,请检查!.") Else Tables("ZJJHB").Current("SBR") = User.Name Tables("ZJJHB").Current.Save() End If Next Else MessageBox.show("你非数据填报人,无上报权限!") End If
|
-- 作者:爱相随 -- 发布时间:2014/8/1 11:25:00 -- 真的很麻烦各位老师了,水平太差,但又实在想学,。。。。以我这种水平能不能做这项工作啊。。。, [此贴子已经被作者于2014-8-1 11:26:00编辑过]
|
-- 作者:有点甜 -- 发布时间:2014/8/1 11:26:00 -- If User.IsRole("录入人") Then For Each r As Row In Tables("ZJJHB").GetCheckedRows If r.IsNull("KSMC") OrElse r.IsNull("SQJE") OrElse r.IsNull("SBSM") Then MessageBox.Show(r("单号") & "数据填列不完整,不允许上报,请检查!.") Else r("SBR") = User.Name r.Save() End If Next Else MessageBox.show("你非数据填报人,无上报权限!") End If [此贴子已经被作者于2014-8-1 11:26:06编辑过]
|
-- 作者:爱相随 -- 发布时间:2014/8/1 11:40:00 -- 我要把是哪一单据号填列不完整显示出来,怎么设呢?老师提供的上面的代码显示不出单据号。 If User.IsRole("录入人") Then For Each r As Row In Tables("ZJJHB").GetCheckedRows If r.IsNull("KSMC") OrElse r.IsNull("SQJE") OrElse r.IsNull("SBSM") Then MessageBox.Show("单据号 ("JHBH") 数据填列不完整,不允许上报,请检查!.") Else r("SBR") = User.Name r.Save() End If Next Else MessageBox.show("你非数据填报人,无上报权限!") End If
|
-- 作者:有点甜 -- 发布时间:2014/8/1 11:41:00 -- MessageBox.Show("单据号 " & r("JHBH") & " 数据填列不完整,不允许上报,请检查!.") |