Foxtable(狐表)用户栏目专家坐堂 → 如何返回父表关联行,再执行按钮命令


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

主题:如何返回父表关联行,再执行按钮命令

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


加好友 发短信
等级:小狐 帖子:307 积分:2252 威望:0 精华:0 注册:2013/2/28 9:05:00
如何返回父表关联行,再执行按钮命令  发帖心情 Post By:2015/8/12 9:31:00 [只看该作者]

如图

父表和子表已经建立了 父表.推荐测评号=子表.推荐号  的关联,现在想实现:点击按钮“印”时,取定父表的当前关联行,再执行生成excel任务。



目前按钮“印”的代码:

'自动判断使用excel模板
If Tables("父表").Current IsNot Nothing Then
    Dim txt As String = Tables("父表").Current("类型").SubString(2)
    Dim path As String
    If txt = "会议推荐" Or txt = "二次推荐"  Then
        path = "Attachments\推荐登记表.xls"
    Else If txt = "谈话推荐"  Then
        path = "Attachments\谈话推荐登记表.xls"
    Else
        msgbox("没有相应的Excel模板!")
    End If
    If path > "" Then
        Dim Book As New XLS.Book(ProjectPath & path)
        Dim fl As String = ProjectPath & "Reports\推荐登记表.xls"
        Book.Build() '生成细节区
        Book.Save(fl) '保存工作簿
        Dim Proc As New Process '打开工作簿
        Proc.File = fl
        Proc.Start()
    End If
End If

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/12 10:10:00 [只看该作者]

控制一下筛选就行

Dim Book As New XLS.Book(ProjectPath & path)
Dim fl As String = ProjectPath & "Reports\推荐登记表.xls"
Tables("子表").Filter = "推荐号 = '" & Tables("父表").Current("推荐测评号") & "'"
Book.Build() '生成细节区
Book.Save(fl) '保存工作簿


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


加好友 发短信
等级:小狐 帖子:307 积分:2252 威望:0 精华:0 注册:2013/2/28 9:05:00
  发帖心情 Post By:2015/8/12 11:24:00 [只看该作者]

感谢,实测,最后还要取消筛选,否则后面就乱了

Tables("子表").Filter = "" 

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/12 11:36:00 [只看该作者]

 或者看一下这里

 

http://www.foxtable.com/help/topics/2626.htm

 


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


加好友 发短信
等级:小狐 帖子:307 积分:2252 威望:0 精华:0 注册:2013/2/28 9:05:00
  发帖心情 Post By:2015/8/12 11:59:00 [只看该作者]

实测,筛选方案还是不完美,没有实现到 “选定父表当前行” 的功能

再研究下
[此贴子已经被作者于2015/8/12 11:59:45编辑过]

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


加好友 发短信
等级:小狐 帖子:307 积分:2252 威望:0 精华:0 注册:2013/2/28 9:05:00
  发帖心情 Post By:2015/8/12 12:05:00 [只看该作者]

难道要用这个么?父子表实际已经有关联啦!

http://www.foxtable.com/help/index.html?n=2626.htm


假定我正在订单表操作,我们希望在订单表中选定一行时,客户表的光标能够自动定位到该客户,这样我一旦从订单表回到客户表,即可看到刚刚所选订单的客户资料。
为此我们在CurrentChanged事件中设置如下代码: 

If e.Table.Current Is Nothing Then '如果Current为Nothing
    Return '则返回
End
If

Dim
wz As Integer
Dim
dr As DataRow
dr = DataTables("客户").Find("[客户ID] = '" & e.Table.Current("客户ID") & "'")
If
dr IsNot Nothing Then
    wz = Tables("客户").FindRow(dr)
    If wz >= 0 Then
        Tables
("客户").Position = wz
    End If
End
If


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/12 12:31:00 [只看该作者]

以下是引用everybody在2015/8/12 11:59:00的发言:
实测,筛选方案还是不完美,没有实现到 “选定父表当前行” 的功能

再研究下
[此贴子已经被作者于2015/8/12 11:59:45编辑过]

 

选定父表当前行是你手动选择的啊。

 

具体什么问题,做例子上来。


 回到顶部