Foxtable(狐表)用户栏目专家坐堂 → 数据引用或窗体引用其他表数据的问题


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

主题:数据引用或窗体引用其他表数据的问题

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


加好友 发短信
等级:婴狐 帖子:19 积分:300 威望:0 精华:0 注册:2017/8/25 2:44:00
数据引用或窗体引用其他表数据的问题  发帖心情 Post By:2017/12/4 10:04:00 [只看该作者]

问题如下,求教求教!!!!

1、 凭证表(序时账簿,包含各凭证分录数据)、明细账或余额表(查询生成)
2、凭证表序时账簿datatables有N多页,序时账簿tables每页只设成40行;在"明细账查询"是 希望点击 凭证号时 弹出《凭证窗口》,加载对应凭证数据内容
3、问题:当 “所选某凭证号” 的分录数据,只有序时账簿tables(当前页)显示时,凭证分录数据 加载正常,否则弹出的凭证窗口  不显示分录数据
4、一直疑惑:以上数据引用弹出,提取 “数据源表”的问题是定位的问题吗,是否每次 引用“其他表数据”,需要将“其他表数据”进行筛选(即loadfilter)???

加载(双击)的代码如下:
If e.Col.Name = "凭证号" And e.Row.IsNull("凭证号") = False Then
    
    Dim tabname As String = CurrentTable.Name
    Dim dr As Row = Tables(tabname).Current
    Dim drr As DataRow = DataTables("序时账簿01").sqlFind("凭证编号= '" & dr("凭证号") & "'")
    If drr IsNot Nothing Then
        Forms("凭证").Opento("序时账簿01")
    
        Dim fbl As WinForm.Table = Forms("凭证").Controls("Table1")
        Dim tbl As Table = fbl.Table
        
        tbl.DataSource = DataTables("序时账簿01")
        tbl.SetColVisibleWidth("摘要|100|对方单位|120|项目名称|120|科目一级|80|科目明细|100|借方|90|贷方|90")
        tbl.Cols("科目明细").DropForm = "凭证科目选择"
        
        tbl.Filter = "凭证编号 = '" & dr("凭证号") & "'"
        
        Dim Drx As Double
        Dim Crx As Double
        
        drx = tbl.DataTable.SQLCompute("Sum(借方)","凭证编号='" & dr("凭证号") & "'")
        crx = tbl.DataTable.SQLCompute("Sum(贷方)","凭证编号='" & dr("凭证号") & "'")
        
        Dim LaDr As WinForm.Label = Forms("凭证").Controls("labJF")
        Dim LaCr As WinForm.Label = Forms("凭证").Controls("labDF")
        Dim Ddx As WinForm.Label = Forms("凭证").Controls("labDX")
        
        ladr.Text = format(drx,"C")
        lacr.Text = format(crx,"C")
        ddx.Text  = "人民币: " & cumoney(drx)
          
        Dim bm As WinForm.Label = Forms("凭证").Controls("labbm")
        Dim rq As WinForm.Label = Forms("凭证").Controls("labrq")
        Dim vo As WinForm.Label = Forms("凭证").Controls("labvo")
        Dim zd As WinForm.Label = Forms("凭证").Controls("labzd")
        Dim sh As WinForm.Label = Forms("凭证").Controls("labsh")
        Dim Butnadd As WinForm.Button = Forms("凭证").Controls("Butnadd1")   
        butnadd.Visible = False
        
        bm.Text = drr("部门单位")
        rq.Text = format(drr("日期"),"yyyy年MM月dd日")
        vo.Text = drr("凭证编号")


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/12/4 10:11:00 [只看该作者]

加入你只加载40行数据,你filter只能查找那40行的数据。

 

如果,你需要把所有数据显示出来,你要设置 LoadFilter 、LoadTop 、LoadPape 等的。

 

http://www.foxtable.com/webhelp/scr/1928.htm

 


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


加好友 发短信
等级:婴狐 帖子:19 积分:300 威望:0 精华:0 注册:2017/8/25 2:44:00
  发帖心情 Post By:2017/12/4 12:25:00 [只看该作者]

版主意思是,我得先将 “指定的凭证号” 从 数据源(序时账簿表)中筛选(loadfilter)出来吗??
在  tbl.Filter = "凭证编号 = '" & dr("凭证号") & "'"      
之前,
添加  DataTables("序时账簿01").loadfilter = "凭证编号 = '" & dr("凭证号") & "'"    

即   筛选加载到   tables("序时账簿01"),才行吗???

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/12/4 12:32:00 [只看该作者]

这样写

 

DataTables("序时账簿01").loadtop = ""

DataTables("序时账簿01").loadPage = 0

DataTables("序时账簿01").loadfilter = "凭证编号 = '" & dr("凭证号") & "'"

DataTables("序时账簿01").load

 


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


加好友 发短信
等级:婴狐 帖子:19 积分:300 威望:0 精华:0 注册:2017/8/25 2:44:00
  发帖心情 Post By:2017/12/4 12:57:00 [只看该作者]

哦,多谢版主。多谢!!!

此问题困扰好几天, 是不是,

本表(某行或若干行记录数据)在其他 场合(其他表,其他窗口)被引用或调用,是否 都得先对本表执行datatables加载(loadfilter)  动作(如你上述代码)  如此本表的tables才会有指定数据可被 引用调用?

如此是吗??

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


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

要先搞清楚Table.Filter和DataTable.LoadFilter的区分,前者是筛选用,后者是加载用

Table.Filter只能对已经加载的数据进行筛选

如果数据没有加载,是无法筛选的

 回到顶部