Foxtable(狐表)用户栏目专家坐堂 → 求功能实现,主窗口中当前控件不包含表控件的时候


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

主题:求功能实现,主窗口中当前控件不包含表控件的时候

帅哥哟,离线,有人找我吗?
lovemaders
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:723 积分:5058 威望:0 精华:0 注册:2014/12/30 16:52:00
求功能实现,主窗口中当前控件不包含表控件的时候  发帖心情 Post By:2016/4/8 8:15:00 [显示全部帖子]



 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:关于测试.foxdb

[此贴子已经被作者于2016/4/8 11:42:55编辑过]

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


加好友 发短信
等级:三尾狐 帖子:723 积分:5058 威望:0 精华:0 注册:2014/12/30 16:52:00
  发帖心情 Post By:2016/4/8 8:19:00 [显示全部帖子]

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

如图,最底下那个提示是要实现的功能,代码在项目的systemidle里面,要求是,因为这是表里的主窗口所以底下提示默认的是当前表,我想实现是,比如主界面这个窗口里面没有表,下面的那个就提示当前窗口没有表,部门因为点开之后就有个窗口表在里面,所以就直接提示是哪个表,麻烦的是公司,因为里面有个页面合集控件,默认打开第一页,第一页里面没有表,用代码切换到第二页的时候,表在第二页上,当打开默认第一页的时候因为没有表也是提示当前窗口没有表,点开第二页的时候提示是哪个表。不知道我说的明不明白具体看下项目,谢谢啦。

[此贴子已经被作者于2016/4/8 8:22:59编辑过]

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


加好友 发短信
等级:三尾狐 帖子:723 积分:5058 威望:0 精华:0 注册:2014/12/30 16:52:00
这样的话  发帖心情 Post By:2016/4/8 8:53:00 [显示全部帖子]

主界面和那个部门是打开就有和打开就没有可以判断,但是公司那个里面有个页面合集,是有表控件的,但是默认第一样是没有表控件的,这个怎么弄,而且我这个代码是写在systemidle事件中的不能用e.form,难道将代码写在每个窗口的afterload事件中去?
[此贴子已经被作者于2016/4/8 9:12:46编辑过]

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


加好友 发短信
等级:三尾狐 帖子:723 积分:5058 威望:0 精华:0 注册:2014/12/30 16:52:00
那样的话相当麻烦了  发帖心情 Post By:2016/4/8 9:52:00 [显示全部帖子]

那样的话相当麻烦了,每个窗口都要写代码判断啊?或者到了页面合集的时候每个页面切换都要判断啊?如果这样的话那项目命令里面的systemidle就不用写代码了,没有用systemidle代码替代每个窗口都判断的方法吗?
[此贴子已经被作者于2016/4/8 9:54:13编辑过]

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


加好友 发短信
等级:三尾狐 帖子:723 积分:5058 威望:0 精华:0 注册:2014/12/30 16:52:00
那样的意思也是有几个窗口就要在systemidle里面全部都列进去吗?  发帖心情 Post By:2016/4/8 10:21:00 [显示全部帖子]

那样的意思也是有几个窗口就要在systemidle里面全部都列进去吗?没有其他方法吗

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


加好友 发短信
等级:三尾狐 帖子:723 积分:5058 威望:0 精华:0 注册:2014/12/30 16:52:00
这个代码就不对,第一个IF没执行,这是窗口afterload  发帖心情 Post By:2016/4/8 10:54:00 [显示全部帖子]

If Forms("底部共有").Opened Then
Dim lb2 As WinForm.Label = Forms("底部共有").Controls("label2")
  For  Each c  As WinForm.Control  In Forms("部门").Controls
    If Typeof c Is winform.Table Then
         Dim tw  As WinForm.Table = Forms("部门").Controls("table1")  'c '使用特定类型的变量引用控件      
         Dim Str2 As String = "正操作表名为:" & "【" & tw.Name & "】" & "  总行数:"
         '''Str2 = Str2 & t.Rows.Count & "  当前行:" & (t.Position + 1)
    End If
    '''If Typeof c Is WinForm.Table = False  Then  '判断控件是否是文本框
            '''lb2.text = "当前窗口没有表"          
    '''End  If
  Next
End If
[此贴子已经被作者于2016/4/8 11:00:11编辑过]

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


加好友 发短信
等级:三尾狐 帖子:723 积分:5058 威望:0 精华:0 注册:2014/12/30 16:52:00
??为什么还要先获取页面合集,?页面合集和里面的table不都是窗口中的控件吗??  发帖心情 Post By:2016/4/8 11:12:00 [显示全部帖子]

??为什么还要先获取页面合集,?页面合集和里面的table不都是窗口中的控件吗??难道窗口中的控件还分了级次?而且我这个示例项目里面没有页面合集。。。。。

 


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

 

 

 


If Forms("底部共有").Opened Then
Dim lb2 As WinForm.Label = Forms("底部共有").Controls("label2")
  For  Each c  As WinForm.Control  In Forms("部门").Controls
    If Typeof c Is winform.Table Then
         Dim tw  As WinForm.Table = Forms("部门").Controls("table1")  'c '使用特定类型的变量引用控件      
         Dim Str2 As String = "正操作表名为:" & "【" & tw.Name & "】" & "  总行数:"
         lb2.text = str2
    End If
  Next
End If
这样写都不执行
 
 
 
好像可以执行了,就是systemidle那个代码怎么写通用的不会写,这样在每个窗口的afterload里面写太麻烦了。帮忙写一下吧。

 

而且奇怪的是

 

 

代码加上else之后

 

 

If Forms("底部共有").Opened Then
Dim lb2 As WinForm.Label = Forms("底部共有").Controls("label2")
  For  Each c  As WinForm.Control  In Forms("部门").Controls
    If Typeof c Is winform.Table Then
         Dim tw  As WinForm.Table = Forms("部门").Controls("部门")  'c '使用特定类型的变量引用控件
         Dim Str2 As String = "正操作表名为:" & "【" & tw.Name & "】" & "  总行数:"
         '''Str2 = Str2 & t.Rows.Count & "  当前行:" & (t.Position + 1)
         lb2.text = str2
    Else
       If Typeof c Is WinForm.Table = False  Then  '判断控件是否是文本框
            lb2.text = "当前窗口没有表"

       end if
    End  If
  Next
End If

 

 

确执行else,不执行前面的if了,不加else是对的,加了else反而执行else了。真是奇怪了,没有else的时候执行的对,有了else竟然执行else后面的代码了,if不是有限执行前半段代码吗

 

 

我重新上传了例子,

[此贴子已经被作者于2016/4/8 11:44:01编辑过]

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


加好友 发短信
等级:三尾狐 帖子:723 积分:5058 威望:0 精华:0 注册:2014/12/30 16:52:00
怎么加上这句  发帖心情 Post By:2016/4/8 12:06:00 [显示全部帖子]


            Dim tw  As WinForm.Table = c
            str2 = "正操作表名为:" & "【" & tw.Name & "】" & "  总行数:"
            'Str2 = Str2 & tw.Rows.Count & "  当前行:" & (tw.Position + 1)

 

 

你上面写代码中,怎么把'Str2 = Str2 & tw.Rows.Count & "  当前行:" & (tw.Position + 1)这句加上,因为tw.rows.count出错,说是窗口表没这个属性


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


加好友 发短信
等级:三尾狐 帖子:723 积分:5058 威望:0 精华:0 注册:2014/12/30 16:52:00
OK这个搞定了,就剩下最后一种有页面合集的情况了  发帖心情 Post By:2016/4/8 12:18:00 [显示全部帖子]

如图,怎么在代码上改,现在的代码是

 

If Forms("底部共有").Opened Then
    ''''''With  CurrentTable
    Dim lb2 As WinForm.Label = Forms("底部共有").Controls("Label2")
    Dim Str2 As String = ""
    For  Each c  As WinForm.Control  In Forms(MainTable.name).Controls
        If Typeof c Is winform.Table Then
            Dim tw  As WinForm.Table = c
            str2 = "正操作表名为:" & "【" & tw.Name & "】" & "  总行数:"
            Str2 = Str2 & tw.Table.Rows.Count & "  当前行:" & (tw.Table.Position + 1)            
        End If
    Next
    If str2 = "" Then
        str2 = "当前窗口没有表"
    End If
    lb2.text = Str2
End If


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

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


加好友 发短信
等级:三尾狐 帖子:723 积分:5058 威望:0 精华:0 注册:2014/12/30 16:52:00
这句能改吗  发帖心情 Post By:2016/4/8 18:14:00 [显示全部帖子]

For  Each c  As WinForm.Control  In Forms(MainTable.name).Controls

 

这句代码能改吗,这样写的话,窗口名字必须与表名一样才行,要不然就报错,但是实际上,这个窗口名字未必与表名一样,但是,这个窗口确是主窗口,主窗口只能有一个,根据这个怎么改这句代码呢,改成窗口的名字是打开的表的主窗口的名字而不一定是跟表名一样?


 回到顶部
总数 11 1 2 下一页