以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]代码问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=17606) |
||||
-- 作者:tamama52 -- 发布时间:2012/3/18 11:44:00 -- [求助]代码问题
我在大板入库表的datacolchanged里写了一段 If e.DataCol.name="片数" 希望当表达式片数即库存片数为0时,自动把编号的状态改为[结] 可是貌似无法实现,请大侠帮我看看,项目已上传 |
||||
-- 作者:czy -- 发布时间:2012/3/18 11:53:00 -- 直接下面这样好了
片数是表达式列,不能做为变动列来判断的 |
||||
-- 作者:tamama52 -- 发布时间:2012/3/18 12:00:00 -- 原来如此,谢谢 |
||||
-- 作者:tamama52 -- 发布时间:2012/3/19 17:01:00 -- 这个还是写在datacolchanged里么?我发现貌似还是不会变动,要通过重置列才会变动 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2012/3/19 17:10:00 -- 你不如将状态这一列改为表达式列,表达式为:
iif(片数 = 0, \'节\', Null) |
||||
-- 作者:tamama52 -- 发布时间:2012/3/20 9:14:00 -- 额,狐爸,如果还是要用代码的话,这段代码应该写到哪里呢? |
||||
-- 作者:狐狸爸爸 -- 发布时间:2012/3/20 9:25:00 -- 还是DataColChanged事件,但是表达式列不会触发DataColChange事件,解决方法参考: http://www.foxtable.com/help/topics/2381.htm
|
||||
-- 作者:tamama52 -- 发布时间:2012/3/20 9:54:00 -- 额,我是入库片数-出库片数(关联出库表后合计)=库存片数(表达式) 然后希望自动根据库存片数调整入库状态
看了看帮助,发现我影响库存片数的列也是表达式,那这种情况该怎么办呢 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2012/3/20 10:08:00 -- 继续向上追寻,找出源头。
如果D有C决定,C由B决定,B有A决定,C和B是表达式,那么D的计算代码应该这样写:
Select Case e.DataCol.Name Case “A” 计算D的代码 End Select |
||||
-- 作者:tamama52 -- 发布时间:2012/3/20 10:28:00 -- 额,狐爸,可有个问题,B不由A决定 是这样的,我们这部分的产品主要是跟着编号走,同编号下可能有多次出库,所以我是这样做的 A(入库表中编号的入库片数)-B(关联出库表,同编号的出库片数的合计)=C(表达式算出库存片数) 然后当C库存片数<A入库片数时,D状态=售,C库存片数=0时,D状态=结 A其实是固定值,不会变更,那如何决定D的状态呢 |