以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]自动编号  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=139333)

--  作者:huangjiacai
--  发布时间:2019/8/11 17:19:00
--  [求助]自动编号
如图,我想在“一级科目”是“人工成本”的时候“一级科目编号”是“001”,“一级科目”是“行政管理费用”的时候“一级科目编号”是“002”,“一级科目”是“收费业务费用”的时候“一级科目编号”是“003”,以此类推,如何通过代码自动实现呢,求助大神。
图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2019/8/11 20:49:00
--  
datacolchanged事件

if e.datacol.name = "一级科目" then
    select case e.datarow("一级科目")
      case "人工成本"
        e.datarow("一级科目编号") = "001"
      case "行政管理费用"
        e.datarow("一级科目编号") = "002"
 end select
end if

--  作者:huangjiacai
--  发布时间:2019/8/12 0:48:00
--  

老师,这种代码在每次新增了新的不同的科目的时候都要更新代码,有没有不用经常更新代码的办法呢,这种代码实际应用的时候可行性应该通不过,求教。

--  作者:有点蓝
--  发布时间:2019/8/12 8:27:00
--  
新建一个表专门存储科目和编码的对应。通过查表获取编码
--  作者:huangjiacai
--  发布时间:2019/8/12 8:39:00
--  
这样的话,我里面有三级科目,就得建3个表,每个表单独对应一二三级科目的编码,然后直接以行号作为编码,是这样理解么?
--  作者:有点蓝
--  发布时间:2019/8/12 8:42:00
--  
可以使用一个表,用一个级别列区分不同的科目类型即可
--  作者:huangjiacai
--  发布时间:2019/8/13 8:09:00
--  
如果我没理解错的话应该是这样的吧,具体代码要如何实现呢,求助。
图片点击可在新窗口打开查看此主题相关图片如下:3.jpg
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2019/8/13 9:00:00
--  
例如

datacolchanged事件

if e.datacol.name = "一级科目" then
dim dr as datarow = datatables("字典表").find("类别=‘一级科目’ and 名称 =\'" &  e.datarow("一级科目") & "\'")
if dr isnot nothing then
e.datarow("一级科目编号") = dr("编码")
end if
end if

--  作者:huangjiacai
--  发布时间:2019/8/13 10:01:00
--  
谢谢老师,不过我问的是“编码”列的“001”,“002”,“SF”等要如何自动生成
--  作者:有点蓝
--  发布时间:2019/8/13 10:06:00
--  
这种字典类的数据一般没多少,手工录入就行了。何况这个编码有规律吗?