以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 关于自动编号的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=106973) |
||||
-- 作者:侯爱华 -- 发布时间:2017/9/19 12:03:00 -- 关于自动编号的问题 \'需求说明: \'给在客户交易表(YW_XSYW_KHJY)中对客户交易编号字段:KHJY_CODE字段自动进行编号,编号形式类似:JY2016-000001234 \'编号方法是:JY+项目编号(LXTZ_CODE)中的年份(e.DataROW("LXTZ_CODE").SubString(5,4)),加上-号,加上9位定长顺序号,000000001 If e.DataRow.IsBull("KHJY_NAME") OrElse e.DataRow.IsNull("LXTZ_CODE") Then e.DataRow("KHJY_CODE") = Nothing Else Dim lb As String = "JY" Dim max As String Dim idx As Integer Dim year As String = e.DataRow("LXTZ_CODE").SubString(4,4) lb = lb & year & "-" max = e.DataTable.Computer("Max(KHJY_CODE)",lb And [_Identify] <> &e.DatatRow("_Identify")) \'取得该年编号的最大值 If max > "" Then \'如果有最大编号 idx = CInt(max.SubString(7,9) + 1 Else idx = 1 End If e.DataRow("KHJY_CODE") = lb & Format(idx,"000000000") End If |
||||
-- 作者:有点甜 -- 发布时间:2017/9/19 12:07:00 -- 参考
http://www.foxtable.com/webhelp/scr/2403.htm
如果还有问题,尽量做个例子发上来测试。 |
||||
-- 作者:xh2207 -- 发布时间:2017/9/19 12:10:00 -- 参考下
流水号,以DH-年统计单据 |
||||
-- 作者:侯爱华 -- 发布时间:2017/9/19 12:12:00 -- 删掉了这个图片 [此贴子已经被作者于2017/9/19 12:38:56编辑过]
|
||||
-- 作者:侯爱华 -- 发布时间:2017/9/19 12:37:00 -- 这是上传的附件,请查收 这是做测试的例子
|
||||
-- 作者:有点甜 -- 发布时间:2017/9/19 12:52:00 --
|
||||
-- 作者:侯爱华 -- 发布时间:2017/9/19 13:01:00 -- 请教版主,为什么要在外面加上 Select case语句呢?这么做的用处是什么呢? |
||||
-- 作者:有点甜 -- 发布时间:2017/9/19 13:03:00 -- 以下是引用侯爱华在2017/9/19 13:01:00的发言:
请教版主,为什么要在外面加上 Select case语句呢?这么做的用处是什么呢?
判断列名,修改其他列,就不会触发代码
http://www.foxtable.com/webhelp/scr/1522.htm
|
||||
-- 作者:侯爱华 -- 发布时间:2017/9/19 13:19:00 -- 学习了。那请教一下,对于跨表引用也要先判断字段吗? |
||||
-- 作者:侯爱华 -- 发布时间:2017/9/19 13:21:00 -- \'根据客户简称KHTZ_NAME,自动填写客户编码KHTZ_CODE,客户IDYW_KHYY_KHTZ_ID,和客户全称KHTZ_KHQZ If e.DataCol.Name = "KHTZ_NAME" Then Dim nms() As String = {"KHTZ_CODE","YW_KHYY_KHTZ_ID","KHTZ_KHQC"} If e.NewValue Is Nothing Then For Each nm As String In nms e.DataRow(nm) = Nothing Next Else Dim dr As DataRow dr = DataTables("YW_KHYY_KHTZ").Find("[KHTZ_NAME] = \'" & e.NewValue & "\'") If dr IsNot Nothing For Each nm As String In nms e.DataRow(nm) = dr(nm) Next End If End If End If 比如这样的语句,也是加上select case语句好吗?
|