VD30论坛(五) VD30自动编号

VD_publisher 2004-12-01 12:35:19
VD30论坛(五) VD30自动编号
============================================================================
在Ineternet使用系统, 除了让系统有实时的便利性之外, 就是可以让系统能集中管理,
因此, 在系统分散的情况下, 必须顾及编号的一致性与原则性, 因此, 这种系统必须
要能支持弹性的自动编号功能, 来满足系统上的要求.

VD30中, 我们提供了两个自动编号的组件, 一个是A/P Server端的AUTONUM组件, 另一
个则是用来编明细档(第二三阶)序号的AUTOSEQ组件, 分述如下:

AUTONUM组件规格
------------------------------------
用途: 使用于A/P Server端, 用在UpdateComp新增数据前来自动编出单据号码号时使用.
组件属性:
AutoNoID(识别代号): 自动编号的识别码, 每个自动编号的原则都须给一个唯一的编号,
如果没有特殊的情况, 可以用所要写入的Table Name作为本识别码.
UpdateComp(更新组件): 所要编号的 UpdateComp组件.
TargetColumn(编号字段): 所要编号之UpdateComp的字段名称, 完成编号后将存回本指定
字段上. 本字段仅支持字符串型态.
FixedExp(前置码): 为自动编号之前置码, 本前引码一般用来编出有规则性的前置码, 如
以年月或日期做为前置码, 或以某字段如客户厂商产品类别等做为分类的序号等, 没有
前置码则代表纯粹只编出连续序号的号码.
NumDig(编号位数): 指要编出号码的位数, 如3代表要编出001至999的号码, 自动编号的
字段总长度为FxiedExp的长度加上本NumDig的位数.
StartValue(起始号码):指每次编出第一号的起始号码, 预设为1.
Step(每次递增): 指每次编号要加上多少号, 预设大都是1, 如为2, 则可编出 1,3,5,7┅
等号码.
OverFlow(溢位处理): True/Fase, True代表允许溢位时将第一码改以'A'~'Z'编号, 再以
'a'~'z'编号之, 如果为Fase则代表不允许溢位, 溢位时将出现error讯息.

本组件会固定使用到一个sysautonum的系统Table, 其结构为:
AutoId(VarChar20)
Fixed(VarChar20)
CurrNum(Num10)

所有的AUTONUM组件都会以这个Table的内容依据来编号. 为了让两个以上的User同时编号
不会重复, 我们使用了最精密的方式控制Sysautonum这个数据表的内容, 也就是每次取出
CurrNum值后去Update新的CurrNum值有加上Where CurrNum=取出三考值, 来证明这段其间
没有人去更新到CurrNum的值, 来保证不会重复使用.
...全文
116 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
VD_publisher 2004-12-01
  • 打赏
  • 举报
回复
AUTOSEQ规格
----------------------------------------------
这个组件一般使用在MASTER/DETAIL中第二阶/第三阶的自动序号功能, 专门给CDS来编
出Client端序号的功能, 属性如下:
DataSet(数据表): 要自动序号的数据表.
FieldName(字段名称): 要自动序号的字段名称
NumDig(编号位数): 序号的位数.
StartValue(起始号码): 序号的起始号码. 预设为1.
Step(每次递增): 每次累加序号值.
ReNumber(每次重编): 只在Master存盘时, 是否要对DETAIL每次重新编号, True可以让号码
可以连续(因为有删掉数据后会产生空号), False则不会重编. 注意, 如果此Detail在往后
有与别的DETAIL用此序号来关连时, 则不能设为True,因为True会让序号重编, 造成后面的
系的关连的错乱.
MasterDataSet(主文件数据表): 因为AutoSEQ大都用在第二阶/第三阶, 所以必须设定其Master
的DataSet, 好让Master存盘前能通知Detail重新编号.

自动编号在企业的应用中是必要的, 规划上虽不难, 如果用程序的方式来撰写, 也必须花费
不少时间, VD3使用了组件的方式来控制这些商用软件的规格都是基于15年对企业环境与开
发工具的了解, 并利用了80/20法则, 将80%工作以组件的设定方式完成, 剩下的20%细腻工作
才需要以撰写程序的方式来完成, 这样就可以将软件的开发变得更有生产力, 品质能更有稳
定(因为少了人为的撰写), 维护更加容易.

2,209

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 其他数据库
社区管理员
  • 其他数据库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧