Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
有一列出货单,格式为“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 来自动增加编号,如何实现呢?
你上面的代码和日期有什么关系?
而且_Identify的值是保存的时候才生成,你这样的代码,如果多人同时操作,得到的编号是不对的。
其实很简单:
http://www.foxtable.com/help/topics/0107.htm
http://www.foxtable.com/help/topics/1443.htm
第一,编号列 我不想用表达式。
考虑到以后如果这个项目不用 foxtable 来运行的话。等于我的编号列就没有了。
或者 我可以用网页做一些简易的功能补充,这样的话我的数据库里面没有编号列,比较麻烦。
还有 表达式是临时计算生成的,不知道理论上会不会影响速度?
反正编号列我就是不想用表达式,感觉他不是真实存在的,不安全。
然后我也觉得 上面的代码和日期没有关系。
但是我只会用 datacolchange来触发它 产生编号。所以觉得很不理想,现在想让他 datarowadding 的时候就产生编号,
至于多人同时操作的时候编号不对,我通过代码设计,一添加新的行就产生编号,然后保存,然后才操作其他列,这样就不会编号错乱了吧?
可以实现 通过datarowadding 来自动增加编号吗?如何实现呢?
很奇怪的现象
运行界面如下
打开 销售信息---销售开单
出货单 表的代码如下:
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")
奇怪为什么会是这样?
下载信息 [文件大小: 下载次数: ] | |
![]() |