以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 序列号不自新增 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=135845) |
-- 作者:有点甜 -- 发布时间:2019/6/4 16:02:00 -- 试试
If e.DataCol.Name = "下达日期" Then msgbox(max) |
-- 作者:有点甜 -- 发布时间:2019/6/5 20:16:00 --
msgbox(max) 弹出什么?
|
-- 作者:有点甜 -- 发布时间:2019/6/5 20:35:00 -- max = e.DataTable.SQLCompute("Max(材料编码)","下达日期 = \'" & e.DataRow("下达日期") & "\' and len(材料编码) = 9") \'取得该天的最大编号 msgbox(max) |
-- 作者:有点甜 -- 发布时间:2019/6/6 9:20:00 -- 贴出你新增行的代码。
在代码里面加入msgbox,看是否执行到。
要确保你写的表名是正确的,要确保你表格里面没有筛选数据。
|
-- 作者:有点甜 -- 发布时间:2019/6/6 10:28:00 -- Case "增加行" Dim t As Table = Tables("销售辅料下达_采购申请明细") Dim cs() As String = {"申请日期","申请人", "备注", "采购申请号","申请类型","需审核人","销售订单号","订单状态","线别"} Dim r As Row = t.current msgbox(123) If r Is Nothing Then Dim nr As Row = t.addnew Tables("销售辅料下达_采购申请明细").DataTable.DataCols("申请日期").SetDateTimeFormat(DateTimeFormatEnum.Date) nr("申请日期") = Date.Today nr("下达日期") = Date.Today nr("制单人") = _UserName Else Dim nr As Row = t.addnew Tables("销售辅料下达_采购申请明细").DataTable.DataCols("申请日期").SetDateTimeFormat(DateTimeFormatEnum.Date) nr("申请日期") = Date.Today nr("下达日期") = Date.Today nr("制单人") = _UserName For Each c As String In cs nr(c) = r(c) Next End If |
-- 作者:有点甜 -- 发布时间:2019/6/6 11:48:00 --
Case "增加行" msgbox(currentTable.name) msgbox(currentTable.filter) msgbox(Tables("销售辅料下达_采购申请明细").filter) msgbox(456) |
-- 作者:有点色 -- 发布时间:2019/6/6 15:12:00 --
那代码不可能有问题。上传具体实例测试。
|
-- 作者:有点甜 -- 发布时间:2019/6/6 18:27:00 -- 1、新增行代码没问题啊。
2、截图说明报什么错。哪里不正确。 |
-- 作者:有点甜 -- 发布时间:2019/6/6 18:28:00 -- 如果是datacolchanged事件的问题,参考
If e.DataCol.Name = "下达日期" Then |
-- 作者:有点蓝 -- 发布时间:2019/7/4 8:59:00 -- If Tables("采购申请明细_采购申请明细").current.IsNull("下达日期") Then Tables("采购申请明细_采购申请明细").current("材料编码") = Nothing Else Tables("采购申请明细_采购申请明细").current.save Dim bg As String = "fl" & Format(Tables("采购申请明细_采购申请明细").current("下达日期"),"yyMM") \' 取得编号的8位前缀 If Tables("采购申请明细_采购申请明细").current("材料编码").StartsWith(bg) = False \'如果编号的前8位不符 Dim dt2 As DataTable = DataTables("采购申请明细") Dim max As String Dim idx As Integer max = Tables("采购申请明细").DataTable.SQLCompute("Max(材料编码)","下达日期 = \'" & Tables("采购申请明细_采购申请明细").current("下达日期") & "\' and 材料编码 like \'" & bg & "%\'") \'取得该天的最大编号 If max > "" Then \'如果存在最大编号 idx = CInt(max.Substring(bg.Length - 3,3)) + 1 \'获得最大编号的后三位顺序号,并加1 Else idx = 1 \'否则顺序号等于1 End If Tables("采购申请明细_采购申请明细").current("材料编码") = bg & Format(idx,"000") Tables("采购申请明细_采购申请明细").current.save End If End If
|