以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助] 再问 网络环境下的编号问题。。。  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=11988)

--  作者:leibnitz
--  发布时间:2011/8/18 17:23:00
--  [求助] 再问 网络环境下的编号问题。。。

狐狸爸爸在帮助中详尽的给出了如何网络环境中,多用户模式下,生成自动编号。

在那里,一般来说,需要指定某个时间字段用以生成自动编号(可以是任何与记录相关的时间,但不一定是系统时间,即:不会自动填写完成),因此,若该字段为空,则不能据之生成编号;

 

如果:

用户在表(TABLE)增加一条记录R1,其中缺失了(生成编号所必须的)时间字段。
然后在表(TABLE)中增加了记录R2,填写完成了必须的时间字段;
   如果用户点按 保存按钮 则执行:
Ctype(ApplicationMenu.LeftItems("Save"), RibbonMenu.Button).PerformClick()

   最终实际上是执行:
Syscmd.Project.Save()

 

可是,这时候会尝试保存第一条记录R1, 而在表的 BeforeSaveDataRow 事件中代码中,我们会要求必须填写R1的时间字段;因此,整个保存,要么全通过,要么就都不通过。

 

 

请问,在上述情况下,是否可以编码实现:

让用户可以选择“已经填写好时间字段的”记录,保存这些记录,并自动获得正确的编码?

 

以下是我的笨拙的尝试:(不成功)

\'With CurrentTable
 \'   Select Case  .Name
  \'      Case "订单管理"
   \'         Tables("订单管理").Current.DataRow.DataTable.Save

    \'         ...
     \'  End Select
\' End With

[此贴子已经被作者于2011-8-18 17:44:12编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/8/18 17:46:00
--  

这个目前没有办法,下次更新告诉你办法。


--  作者:leibnitz
--  发布时间:2011/8/18 22:35:00
--  谢谢狐狸爸爸~ 虽然暂时没有好方案

谢谢狐狸爸爸~ 虽然暂时没有好方案,但是回复得很快,态度很诚恳~

 

赞一个! 呵呵

 

刚才有个家伙胡言乱语,狐狸爸爸也不生气,真真好修养啊!图片点击可在新窗口打开查看

[此贴子已经被作者于2011-8-18 22:36:06编辑过]

--  作者:小狐
--  发布时间:2011/8/19 11:06:00
--  

我感觉使用临时编号,保存之后,又生成一个存储编号,不是很合理,用户会晕,而且在记录用户的操作记录上会很麻烦。

临时编号生成就保存,借此生成固定编号。每编辑一条明细就要保存两次。整个用户群的使用、录入速度又会受影响


--  作者:leibnitz
--  发布时间:2011/8/25 15:35:00
--  您说的是

您说的是,不过,在狐爸给出方案中,那编号是 主键,不可以暂缺的...

 

有一个方法,就是:用 _Identify 做隐藏的, 真正的主键,如此,新增时, 那个要生成的编号可以不做任何处理...这样就不混乱了.. ^_^