以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  LSY老师,我改变了一下出货的方法,你原来的代码太复杂了,我改不来,请再帮忙!  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=45751)

--  作者:小刚
--  发布时间:2014/2/10 15:34:00
--  LSY老师,我改变了一下出货的方法,你原来的代码太复杂了,我改不来,请再帮忙!

LSY老师,跟以前的思路一样:

\'1.随便点【直接出货】表里面任意一行,在[出货数量]里面输入出货数量,那么,自动计算出[剩余未出数量],
 
    \'a.当[剩余未出数量]>0时,说明出货没完
      \'复制已出的数量数据到【财务对账】表里面,
      \'逻辑列[订单未清完]=1,锁定,

       \'并在主表里面新加一行,别的都一样,就是[剩余未出数量]那里是新的未出数量;等待下一次出货;

       \'第二次或第三次出货,没出完时,一样的重复上面的步骤,
       \'出完了话,移除该单号的.

 

     \'b.当[剩余未出数量]=0时,说明出完货了,复制新加所有数据到【财务对账】表里面,锁定移除该行;

 

     \'c.当[剩余未出数量]<0时,说明出货超量了,提示重新输入,不作下一步工作;

 

\'我在表属性 列 里面设置了复制的代码

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:出货和对账5.rar


--  作者:Bin
--  发布时间:2014/2/10 15:52:00
--  
在DataColChangIng事件
If e.DataCol.name="出货数量" Then
    If (e.DataRow("订单数量")-e.NewValue)<0 Then
           messagebox.show("出库超量")
           e.Cancel=true
    End If
End If

datacolChanged事件

If e.DataCol.name="出货数量" Then
    e.DataRow("剩余未出数量")=e.DataRow("订单数量")-e.DataRow("出货数量")
    If e.DataRow("剩余未出数量")=0 Then
           复制到 财务对账
    Else If e.DataRow("剩余未出数量")>0 Then
           赋值到财务对账
    End If
End If

复制行参考这里http://www.foxtable.com/help/topics/2292.htm
--  作者:小刚
--  发布时间:2014/2/10 18:58:00
--  
Bin老师的这个代码,不能把未出完货的订单重新复制到下一行,也没有已出的移除数据,跟我想要的效果有很多偏差。
--  作者:lsy
--  发布时间:2014/2/10 19:28:00
--  

跨表自动更新,逻辑关系非常复杂,很容易出现想不到的漏洞,我现在很少用。

一般来说,狐友就按照帮助,写的代码也不复杂,用起来好像也行,实际上不同的人,操作习惯千变万化,就把漏洞显示出来了。

不如手工更新可靠,就像你前面做的那样。


--  作者:小刚
--  发布时间:2014/2/10 19:41:00
--  

跨表的自动更新,先不搞了。不更新到财务。

就帮我把出货这个表搞定就可以了。

出货这里,跟以前一样,需要实现思路:

 

1.随便点【直接出货】表里面任意一行,在[出货数量]里面输入出货数量,那么,自动计算出[剩余未出数量]
 
2.当[剩余未出数量]>0时,说明出货没完
      逻辑列[订单未清完]=true,锁定,但是不移除。

   并在主表里面新增一行,就是[剩余未出数量]那里是新的未出数量;等待下一次出货;

   第二次或第三次出货,没出完时,一样的重复上面的步骤,
    出完了话,移除该订单号的所有记录行.

 

3.当[剩余未出数量]=0时,直接在 逻辑列[已结单]=true   移除该行

 

4.当[剩余未出数量]<0时,说明出货超量了,提示重新输入,不作下一步工作;

 

主要是新增一行、未出完货的那一步,我是怎么都不会做啊

请帮助,谢谢!


--  作者:小刚
--  发布时间:2014/2/10 19:43:00
--  

以前搞的那个,在[导入数据到出货表]的过程中,你就计算了[剩余未出数量],

后面【确认出货】,就没有再计算[剩余未出数量],所以我转不到这个里面去。


--  作者:有点甜
--  发布时间:2014/2/10 19:56:00
--  
 呃,应该是这样。

 
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:出货和对账5.zip


--  作者:小刚
--  发布时间:2014/2/10 20:31:00
--  

谢谢 有点甜 老师,我研究了一下午了,都没有搞定。谢谢你!

[此贴子已经被作者于2014-2-10 21:05:36编辑过]

--  作者:小刚
--  发布时间:2014/2/10 20:35:00
--  

上面几个小问题,调试了一下,都搞定了,再次谢谢您!

[此贴子已经被作者于2014-2-10 21:05:11编辑过]

--  作者:小刚
--  发布时间:2014/2/11 9:54:00
--  

今天测试数据,发现数据是被删除了,我要的是移除,不是删除,我把DeleteFor更换成RemoveFor了,却发现不对了:

显示所有行后,最后一次出货的数据没有了,也找不到了。

是那里不对了呢?