以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=49894)

--  作者:tina2012
--  发布时间:2014/4/25 14:43:00
--  问题

PrepareEdit事件:

 

If e.Row.IsNull("完成") = True Then       \'锁定"完成"列为空的行
     \'e.Cancel = True
   Tables("Sales_Order_List").Current.locked = True
End If

 

但是新增订单时,不能编辑了。去掉这段代码,新增订单就可以,点击“客户Id”,可以选择客户。但是加上这一段,新增订单后,不能操作。这是什么原因呢??请帮忙。


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

图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2014-4-25 14:43:59编辑过]

--  作者:tina2012
--  发布时间:2014/4/25 14:45:00
--  
新增订单时,“完成”列非空,有值为“未完成”
--  作者:Bin
--  发布时间:2014/4/25 14:54:00
--  
上个例子看看,如果有值,不应该会运行锁定代码的哦.

试试

If e.Row.IsNull("完成") = True Then       \'锁定"完成"列为空的行
     \'e.Cancel = True
   Tables("Sales_Order_List").Current.locked = True
ELSE
   Tables("Sales_Order_List").Current.locked = False
End If

--  作者:tina2012
--  发布时间:2014/4/25 15:03:00
--  

新增订单 按钮代码:

 

Tables("Sales_Order_List").AddNew           \'增加订单时

Tables("Sales_Order_List").Current("DeliveryDate") = Date.today
Tables("Sales_Order_List").Current("SubmitDate")= Date.today
Tables("Sales_Order_List").Current("发货") = "未发货"                  \'新增订单时,将"发货"列标记为未发货
Tables("Sales_Order_List").Current("完成") = "未完成"                  \'新增订单时,将"完成"列标记为未完成,"完成"列需要销售人员确认

 

是不是此时,"未完成"还没有填入“完成”列???


--  作者:Bin
--  发布时间:2014/4/25 15:11:00
--  
PrepareEdit 是进入编辑才触发的.  你还是上个例子看看吧
--  作者:tina2012
--  发布时间:2014/4/25 16:11:00
--  

不好意思,是连在公司服务器上的,不能上传例子,请帮忙看一下,这样也不行,是不是有触发先后的问题。

 

If e.Row.IsNull("完成") = True And e.Row("SubmitDate") < Date.Today Then       \'锁定"完成"列为空的列,也就是之前的订单;同时锁定订单已完成的列
    \'e.Cancel = True
    Tables("Sales_Order_List").Current.locked = True
End If

 

我切换菜单,再回到此界面时,就不会锁定了,可以正常输入了。。。。。这是不是一个问题???


--  作者:Bin
--  发布时间:2014/4/25 16:12:00
--  
让你上个例子,并不是让你把项目发出来.  所以连哪里并不影响你上例子, 做个内容数据源的例子发上来即可.  
--  作者:有点甜
--  发布时间:2014/4/25 16:20:00
--  

 回复楼主,你改成3楼这样还有问题?

 

If e.Row.IsNull("完成") = True Then       \'锁定"完成"列为空的行
     \'e.Cancel = True
   e.Row.locked = True
ELSE
   e.Row.locked = False
End If

--  作者:tina2012
--  发布时间:2014/4/25 16:33:00
--  

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

 

例子已上传,


--  作者:Bin
--  发布时间:2014/4/25 16:40:00
--  
最简单的办法.在增加行后面添加解锁代码

Tables("Sales_Order_List").AddNew           \'增加订单时

Tables("Sales_Order_List").Current("日期")= Date.today
Tables("Sales_Order_List").Current("完成") = "未完成"      
Tables("Sales_Order_List").Current.Locked=False