以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 自动生成编号的疑问 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=68316) |
-- 作者:新航程小何 -- 发布时间:2015/5/14 17:23:00 -- 自动生成编号的疑问 各位老师,请问,我编写了如下代码,我发现以下代码自动编号时,我发现这段代码的自动编号列加顺序号的时候是判断最大值是从加载的表算起,不算没有加载的,比如,后台数据中有WLRK-201501-05,加载的表中最大是WLRK-201501-03,当我自动加行时生成的号时WLRK-201501-04,不是WLRK-201501-06 If e.DataCol.Name = "入库时间" Then If e.DataRow.IsNull("入库时间") Then e.DataRow("制单编号") = Nothing Else Dim d As Date = e.DataRow("入库时间") Dim y As Integer = d.Year Dim m As Integer = d.Month Dim Days As Integer = Date.DaysInMonth(y,m) Dim fd As Date = New Date(y,m,1) \'获得该月的第一天 Dim ld As Date = New Date(y,m,Days) \'获得该月的最后一天 Dim bh As String = Format(d,"yyyyMM") If e.DataRow("制单编号").StartsWith(bh) = False \'如果制单编号的前8位不符 Dim max As String Dim idx As Integer max = e.DataTable.Compute("Max(制单编号)","入库时间 >= \'" & fd & "\' and 入库时间 <= \' " & ld & " \' And [_Identify] <> " & e.DataRow("_Identify")) \'取得该天的最大制单编号 If max > "" Then \'如果存在最大制单编号 idx = CInt(max.Substring(12,2)) + 1 \'获得最大制单编号的后三位顺序号,并加1 Else idx = 1 \'否则顺序号等于1 End If e.DataRow("制单编号") = "WLRK-" & bh & "-" & Format(idx,"00") End If End If End If
|
-- 作者:Bin -- 发布时间:2015/5/14 17:28:00 -- Compute 改为 SQLCompute |
-- 作者:大红袍 -- 发布时间:2015/5/14 17:30:00 -- 改成sqlCompute
最后还要保存当前行 e.DataRow.Save |
-- 作者:新航程小何 -- 发布时间:2015/5/14 17:37:00 -- 上面问题解决了,可是当我点击加载全部,代码如下,结果只会显示10行,我要怎么才能显示所有行(“加载的时候只显示10行”) DataTables("物料入库记录").LoadFilter = "制单编号 > \'\'" DataTables("物料入库记录").Load
|
-- 作者:大红袍 -- 发布时间:2015/5/14 17:46:00 -- DataTables("物料入库记录").LoadTop = "100 percent"
DataTables("物料入库记录").LoadFilter = ""
DataTables("物料入库记录").Load
[此贴子已经被作者于2015/5/14 17:45:52编辑过]
|
-- 作者:大红袍 -- 发布时间:2015/5/14 17:46:00 -- http://www.foxtable.com/help/topics/1813.htm
|
-- 作者:新航程小何 -- 发布时间:2015/5/14 17:48:00 -- 不是这个意思,我是说,我在条件中限制了10行,但是,我想在后面操作的时候加载全部 |
-- 作者:大红袍 -- 发布时间:2015/5/14 17:57:00 -- 看5楼 |