以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]更新了7.22的版本后,代码执行出现了问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=91986) |
||||
-- 作者:rophy0952 -- 发布时间:2016/10/24 9:07:00 -- [求助]更新了7.22的版本后,代码执行出现了问题 窗口文本的dataformat事件中,在更新版本前,e.value的值小于1或者为空的时候,临时表《生产打印表》新增一行,然后赋值。但在更新版本之后,e.value的值为空的时候,临时表《生产打印表》无法新增一行,也无法然后赋值。 以下内容为程序代码: 1 Dim dd As String = Forms("生产任务单").controls("生产单号").text 2 If e.value < 1 Then 3 Tables("生产任务单_生产打印表").addnew(1) 4 Dim dr As DataRow = DataTables("生产主表").SQLfind("生产单号 = \'"& dd &"\'and 作废 = 0") 5 If dr IsNot Nothing Then 6 Tables("生产任务单_生产打印表").Current("蒸镀规格") = dr("蒸镀规格") 7 End If 8 End If 9 If e.value >= 1 Then 10 Tables("生产任务单_生产打印表").addnew(e.value) 11 Tables("生产任务单_生产打印表").AllowEdit = 1 12 For Each r As Row In Tables("生产任务单_生产打印表").Rows 13 Dim dr1 As DataRow = DataTables("生产主表").SQLfind("生产单号 = \'"& dd &"\'and 作废 = 0") 14 If dr1 IsNot Nothing Then 15 r("蒸镀规格") = dr1("蒸镀规格") 16 Tables("生产任务单_生产打印表").AllowEdit = 0 17 End If 18 Next 19 End If |
||||
-- 作者:有点蓝 -- 发布时间:2016/10/24 9:23:00 -- 1、dataformat事件不是用来做这种事的,建议改到其它事件 2、 If e.value < 1 Then 改为 If e.value Is nothing orelse e.value < 1 Then 3、更新到最新7-29版本
|
||||
-- 作者:rophy0952 -- 发布时间:2016/10/24 10:01:00 -- 因为在enter 和leave 等事件无法执行这个代码,所以没有办法只能用dataformat这个事件,按照您建议的代码录入以后,还是没有新增及赋值。我现在的版本是最新的版本了,没有让我更新的提示 |
||||
-- 作者:有点蓝 -- 发布时间:2016/10/24 10:14:00 -- 改到valuechanged事件 |
||||
-- 作者:rophy0952 -- 发布时间:2016/10/24 11:57:00 -- file:///C:/Users/Administrator/Desktop/QQ截图20161024115838.jpg 没有valuechange这个事件呢!
|
||||
-- 作者:有点蓝 -- 发布时间:2016/10/24 12:07:00 -- http://www.foxtable.com/webhelp/scr/0769.htm 上例子
|
||||
-- 作者:rophy0952 -- 发布时间:2016/10/24 12:37:00 -- 第一行件数为空的时候,打开窗口后临时表“生产打印表”无法新增行,而我设定的是当“件数”的值小于或空白时,“生产打印表”新增一行。第二行件数有数值的时候,打开窗口后临时表“生产打印表”就可以新增相应的行数(符合设定的要求)。现已将“件数”改成文本框,代码放在了valuechanged事件内了。之前旧版本一直是可以的,就是在更新了版本后现出的这个问题。
[此贴子已经被作者于2016/10/24 13:01:07编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2016/10/24 14:40:00 -- 代码写到窗口afterload Dim dd As String = Forms("生产任务单").controls("生产单号").text Dim drCur As Row = Tables("生产主表").Current If drCur IsNot Nothing Then If drCur.IsNull("件数") OrElse drCur("件数") < 1 Then Dim r As Row =Tables("生产任务单_生产打印表").addnew(1) Dim dr As DataRow = DataTables("生产主表").SQLfind("生产单号 = \'"& dd &"\'and 作废 = 0") If dr IsNot Nothing Then r("蒸镀规格") = dr("蒸镀规格") End If Else Tables("生产任务单_生产打印表").addnew(drCur("件数")) Tables("生产任务单_生产打印表").AllowEdit = True Dim dr1 As DataRow = DataTables("生产主表").SQLfind("生产单号 = \'"& dd &"\'and 作废 = 0") If dr1 IsNot Nothing Then For Each r As Row In Tables("生产任务单_生产打印表").Rows r("蒸镀规格") = dr1("蒸镀规格") Next Tables("生产任务单_生产打印表").AllowEdit = False End If End If End If |