Foxtable(狐表)用户栏目专家坐堂 → 关于出货单编号的问题


  共有10556人关注过本帖树形打印复制链接

主题:关于出货单编号的问题

帅哥哟,离线,有人找我吗?
yacity
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:532 积分:4020 威望:0 精华:0 注册:2011/6/18 12:41:00
关于出货单编号的问题  发帖心情 Post By:2011/12/8 11:28:00 [只看该作者]

有一列出货单,格式为“XS000188” “XS000189” 等

 

 

原来通过 datacolchange 来增加 编号。

 

Select Case e.DataCol.Name
    Case "chuhuodate"
        Dim dr As DataRow = e.DataRow
        Dim s As String = dr("_Identify")
        dr("chuhuodan") = "XS" & s.PadLeft(6,"0")
       
End Select

 

这样必须输入日期才增加编号,有点不方便。

 

我想 通过datarowadding 来自动增加编号,如何实现呢?

 

[此贴子已经被作者于2011-12-8 11:28:25编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/12/8 11:31:00 [只看该作者]

你上面的代码和日期有什么关系?

而且_Identify的值是保存的时候才生成,你这样的代码,如果多人同时操作,得到的编号是不对的。

 

其实很简单:

http://www.foxtable.com/help/topics/0107.htm

http://www.foxtable.com/help/topics/1443.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
yacity
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:532 积分:4020 威望:0 精华:0 注册:2011/6/18 12:41:00
  发帖心情 Post By:2011/12/8 16:29:00 [只看该作者]

第一,编号列 我不想用表达式。

考虑到以后如果这个项目不用 foxtable 来运行的话。等于我的编号列就没有了。

或者 我可以用网页做一些简易的功能补充,这样的话我的数据库里面没有编号列,比较麻烦。

还有 表达式是临时计算生成的,不知道理论上会不会影响速度?

 

反正编号列我就是不想用表达式,感觉他不是真实存在的,不安全。

 

然后我也觉得 上面的代码和日期没有关系。

但是我只会用 datacolchange来触发它 产生编号。所以觉得很不理想,现在想让他 datarowadding 的时候就产生编号,

至于多人同时操作的时候编号不对,我通过代码设计,一添加新的行就产生编号,然后保存,然后才操作其他列,这样就不会编号错乱了吧?

 

可以实现 通过datarowadding 来自动增加编号吗?如何实现呢?


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/12/8 16:30:00 [只看该作者]

你不用Foxtable运行,你的编号还在,因为编号在_Identify列,是实实在在存在的。

 回到顶部
帅哥哟,离线,有人找我吗?
yacity
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:532 积分:4020 威望:0 精华:0 注册:2011/6/18 12:41:00
  发帖心情 Post By:2011/12/8 17:46:00 [只看该作者]

很奇怪的现象

运行界面如下

 
图片点击可在新窗口打开查看此主题相关图片如下:210.jpg
图片点击可在新窗口打开查看

打开 销售信息---销售开单

出货单 表的代码如下:

datacolchange 代码如下

 

Select Case e.DataCol.Name
    Case "chuhuodate"
        Dim dr As DataRow = e.DataRow
        Dim s As String = dr("_Identify")
        dr("chuhuodan") = "XS" & s.PadLeft(6,"0")
       
End Select

 这样的话必须通过填写日期才可以触发datacolchange 比较不方便

 

 

 后来改成了datarowadding

 

datarowadding 代码入下

 

Dim s As String = e.DataRow("_Identify")      
e.DataRow("chuhuodan") ="XS"& s.padleft(6,"0")

 

按理来说结果应该是一样的。

 

 

可是运行起来结果不一样,

 通过datacolchange  触发的话,他总是在最后一个出货单+1 ,不论_identify 是否变化,他总是在最后一个出货单+1

通过 datarowadding  运行的话才是真实的"XS"& s.padleft(6,"0")

 

奇怪为什么会是这样?

 

 

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目12.table

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

 回到顶部