Foxtable(狐表)用户栏目专家坐堂 → 这段通用代码有什么问题


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

主题:这段通用代码有什么问题

帅哥哟,离线,有人找我吗?
狐狸爸爸
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/12/2 10:08:00 [只看该作者]

即使存在,会显示一个“存在”,同时会显示很多个“不存在”。

你想一下,如果10个Table,有一个名称相符的,那么肯定还有9个名称不相符的,所以会显示1个“存在”,9个“不存在”。

如果名称全部不相符,就会显示10个“不存在”。

 


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57590 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/12/2 10:13:00 [只看该作者]

For Each t1 As Table In Tables

            If t1.Name = e.form.Name & "_Table1" Then
Messagebox.Show("存在")
Else
Messagebox.Show("不存在")

  

 

老大,这个是遍历表以后,然后判断  表名=本窗口表名 的时候判断存在,否则不存在,判断对的呀.前提是这样判断的呀.


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57590 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/12/2 10:15:00 [只看该作者]

即使存在,会显示一个“存在”,同时会显示很多个“不存在”。

你想一下,如果10个Table,有一个名称相符的,那么肯定还有9个名称不相符的,所以会显示1个“存在”,9个“不存在”。

如果名称全部不相符,就会显示10个“不存在”。

 

 

 而且每一个表名肯定是不一样的,如果是窗口虽说是"Table1"有很多,但是前提也是  e.form.Name & "-Table1",这样一来,表名不可能相同的呀.


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/12/2 10:17:00 [只看该作者]

你有10个Table的话,上面的遍历代码就会执行10次,最多显示一次“存在”,至少显示9次不存在。

 

你要判断某个Table是否存在,很简单:

 

If Tables.Contains("名称") Then
End If

 


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57590 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/12/2 10:33:00 [只看该作者]

If e.Sender.Text = "保存单据" Then
    If Tables(e.form.Name).Rows.Count>0 Then
        Tables(e.form.Name).Current("修改人") = _UserName
        Tables(e.form.Name).Current("修改时间") = Date.Now()
        Tables(e.form.Name).DataTable.Save()
        For Each t1 As Table In Tables
            If t1.Name.Contains(e.form.Name & "_Table1")=True Then
            ElseIf DataTables(e.form.Name & "_Table1").DataRows.Count>0 Then
                DataTables(e.form.Name & "_Table1").Save
                Dim t As Table = Tables(e.form.Name & "_Table1")
                With Tables(e.form.Name)
                    If .Current Is Nothing Then
                        t.Filter = "False"
                    Else
                        t.Filter = "系统单号 = '" & .Current("系统单号") & "'"
                    End If
                End With
            End If
        Next
    End If
End If

 

老大,我改成这样还是提示不存在窗口表,你帮我改一下,我怎么想也不明白,按钮对的,主表肯定保存了,就是提示不存在窗口表.


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/12/2 10:39:00 [只看该作者]

逻辑是这样: 

 

If e.Sender.Text = "保存单据" Then
    If Tables(e.form.Name).Rows.Count>0 Then
        Tables(e.form.Name).Current("修改人") = _UserName
        Tables(e.form.Name).Current("修改时间") = Date.Now()
        Tables(e.form.Name).DataTable.Save()
        Dim nm As String = e.form.Name & "_Table1"
        For Each t1 As Table In Tables
            If t1.Name.Contains(nm)= False  Then
                messagebox.show("不存在名为""" & nm & """的表")
            ElseIf DataTables(nm).DataRows.Count>0 Then
                DataTables(nm).Save
                Dim t As Table = Tables(nm)
                With Tables(e.form.Name)
                    If .Current Is Nothing Then
                        t.Filter = "False"
                    Else
                        t.Filter = "系统单号 = '" & .Current("系统单号") & "'"
                    End If
                End With
            Else
                messagebox.show("表""" & nm & """的行数等于0")
            End If
        Next
    End If
End If

[此贴子已经被作者于2011-12-2 10:40:10编辑过]

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57590 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/12/2 10:44:00 [只看该作者]

我试试

 


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57590 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/12/2 10:52:00 [只看该作者]

     我昏过去了.还是一样.

     现在表单有副本表的,直接保存没有问题,但是表单退出的事件里我有这个代码Ddatatable(e.form.name).Save(),按保存,也会提示没有窗口表.

 

   表单没有窗口表的,按保存直接提示找不到这个窗口表.

 

 

   我晕死了.

 

 


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57590 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/12/2 10:55:00 [只看该作者]

老大我想既然用了e事件,应该不要去遍历了吧,只要判断这个窗口有无这个表控件就行了吧.

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57590 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/12/2 10:57:00 [只看该作者]

有没有办法判断  Tables(e.form.Name & "_Table1")  存在的代码?

 回到顶部
总数 32 上一页 1 2 3 4 下一页