以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 编号问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=135593) |
-- 作者:蓝蚂蚁 -- 发布时间:2019/5/29 20:08:00 -- 编号问题 表A结构及数据如下: 单号 公司名称 公司代号 2019-001 上海**公司 QT 2019-002 上海**公司 QT 2019-001 深圳**公司 PI 2019-002 深圳**公司 PI 说明:一、单号可以重复,相同公司,其单号顺序增加。 二、如:首次录入“上海**公司” 单号就生成:2019-001【生成的规律为:今年中,首次录入一个公司则单号为:2019-001,即录入的年份加上“-000”,,同年第二次录入则为:2019-002;如果明年(2020)第一次录入则为:2020-001,以此类推】; DataColChanged: If e.DataCol.Name = "公司名称" Then Dim bh As String = Format(Date.Today(), "yyyy") Dim max As String Dim idx As Integer max =e.DataTable.Compute("Max(单号)","公司名称 = #" & e.DataRow("公司名称") & "#") \'取得该天的最大编号 If max > "" Then \'如果存在最大编号 idx = CInt(max.Substring(5,3)) + 1 \'获得最大编号的后三位顺序号,并加1 Else idx = 1 \'否则顺序号等于1 End If e.DataRow("单号") = bh & "-" & Format(idx,"000") End If 这个代码提示错误,不知道正确代码如何写?
|
-- 作者:有点甜 -- 发布时间:2019/5/29 21:04:00 -- max =e.DataTable.Compute("Max(单号)","公司名称 = #" & e.DataRow("公司名称") & "#") \'取得该天的最大编号
改成
max =e.DataTable.Compute("Max(单号)","公司名称 = \'" & e.DataRow("公司名称") & "\'") \'取得该天的最大编号 |
-- 作者:蓝蚂蚁 -- 发布时间:2019/5/30 7:41:00 -- 有点甜老师 按照你的提示 修改之后 达不到我的要求 体现为:某公司在今年(2019)最后一张单号为:2019-556,明年(2020)的第一张(同一个公司)会变成2020-557,我的思路是,明年该公司的第一张单号为:2020-001, [此贴子已经被作者于2019/5/30 7:45:38编辑过]
|
-- 作者:有点甜 -- 发布时间:2019/5/30 9:34:00 --
max =e.DataTable.Compute("Max(单号)","公司名称 = \'" & e.DataRow("公司名称") & "\' and 单号 like \'" & bh & "%\'") \'取得该天的最大编号
|