Foxtable(狐表)用户栏目专家坐堂 → [求助]更新了7.22的版本后,代码执行出现了问题


  共有2133人关注过本帖树形打印复制链接

主题:[求助]更新了7.22的版本后,代码执行出现了问题

美女呀,离线,留言给我吧!
rophy0952
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:581 积分:4989 威望:0 精华:0 注册:2014/6/12 14:55:00
[求助]更新了7.22的版本后,代码执行出现了问题  发帖心情 Post By:2016/10/24 9:07:00 [只看该作者]

窗口文本的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

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110544 积分:562604 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:581 积分:4989 威望:0 精华:0 注册:2014/6/12 14:55:00
  发帖心情 Post By:2016/10/24 10:01:00 [只看该作者]

因为在enter 和leave 等事件无法执行这个代码,所以没有办法只能用dataformat这个事件,按照您建议的代码录入以后,还是没有新增及赋值。我现在的版本是最新的版本了,没有让我更新的提示

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110544 积分:562604 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/24 10:14:00 [只看该作者]

改到valuechanged事件

 回到顶部
美女呀,离线,留言给我吧!
rophy0952
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:581 积分:4989 威望:0 精华:0 注册:2014/6/12 14:55:00
  发帖心情 Post By:2016/10/24 11:57:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110544 积分:562604 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/24 12:07:00 [只看该作者]


 回到顶部
美女呀,离线,留言给我吧!
rophy0952
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:581 积分:4989 威望:0 精华:0 注册:2014/6/12 14:55:00
  发帖心情 Post By:2016/10/24 12:37:00 [只看该作者]

第一行件数为空的时候,打开窗口后临时表“生产打印表”无法新增行,而我设定的是当“件数”的值小于或空白时,“生产打印表”新增一行。第二行件数有数值的时候,打开窗口后临时表“生产打印表”就可以新增相应的行数(符合设定的要求)。现已将“件数”改成文本框,代码放在了valuechanged事件内了。之前旧版本一直是可以的,就是在更新了版本后现出的这个问题。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.foxdb

[此贴子已经被作者于2016/10/24 13:01:07编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110544 积分:562604 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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

 回到顶部