以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  超级郁闷的问题,能否帮我远程调试一下  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=55472)

--  作者:蓝色理想
--  发布时间:2014/8/17 18:02:00
--  超级郁闷的问题,能否帮我远程调试一下
主要是数据库是SQL server,没办法打包啊
--  作者:蓝色理想
--  发布时间:2014/8/17 18:03:00
--  
问题真心郁闷,我是有程序设计底子的,弄了一下午也没搞定
--  作者:有点甜
--  发布时间:2014/8/17 18:07:00
--  
 sqlserver需要安装才能使用的,只要你搭建了一个外网可以访问的sqlserver,项目就是不需要打包数据库的,
--  作者:蓝色理想
--  发布时间:2014/8/17 18:09:00
--  
问题描述如下:


我要实现 主表--》二级明细表——》三级明细表的联动
可用于联动的依据为四列数据   开发项目  开发产品  合同名称  乙方

1、点击主表数据行时,二级明细表 三级明细表 按照主表数据的“乙方”进行过滤并显示数据
2、点击二级明细表具体数据行时,三级明细表按照 当前选定行的 开发项目  开发产品  合同名称  乙方 进行过滤并显示数据


问题是:  点击二级明细表中某些 没有三级明细数据的行时,二级明细表的显示情况 由有数据变为 无任何数据

--  作者:蓝色理想
--  发布时间:2014/8/17 18:10:00
--  
全局事件CurrentChanged代码如下:

If e.Table.Form Is Nothing  Then  \'判断一下是不是在数据表是不是在Form中
    \'   MessageBox.Show("不在Form中")
    If Forms("乙方情况汇总表").Opened Then
        If e.Table.Current Is Nothing Or DataTables(e.Table.Name).DataCols.Contains("乙方")=False  Then
         \'  MessageBox.Show(e.Table.Name  & " noting [乙方] = \'"  & e.Table.Current("乙方") & "\'")
            Tables("乙方情况汇总表_Table1").Filter = "[乙方] = \'\'"
        Else
        \'  MessageBox.Show(e.Table.Name  & " not noting [乙方] = \'"  & e.Table.Current("乙方") & "\'")
            Tables("乙方情况汇总表_Table1").Filter = "[乙方] = \'"  & e.Table.Current("乙方") & "\'"
        End If
    End If
    
    
    If Forms("付款情况").Opened Then
        If e.Table.Current Is Nothing Or DataTables(e.Table.Name).DataCols.Contains("乙方")=False  Then
            Tables("付款情况_Table1").Filter = "[乙方] = \'\'"
            Forms("付款情况").Text= "付款情况:当前未选定有效行"
        Else
            Tables("付款情况_Table1").Filter = "[乙方] = \'"  & e.Table.Current("乙方") & "\'"  _
            & " and [付款金额] not is null and [付款金额]<> \'0\'"
            
            Tables("付款情况_Table1").Sort ="所属期间 DESC"
            Forms("付款情况").Text=  "全部合同-付款情况"
        End If
    End If
    
    If Forms("产值情况").Opened Then
        If e.Table.Current Is Nothing Or DataTables(e.Table.Name).DataCols.Contains("乙方")=False  Then
            Tables("产值情况_Table1").Filter = "[乙方] = \'\'"
            Forms("产值情况").Text=  "产值情况:当前未选定有效行"
        Else
            Tables("产值情况_Table1").Filter = "[乙方] = \'"  & e.Table.Current("乙方") & "\'"  _
            & " and ([申报产值] not is null or [本月付款比例] not Is null)  and  [是否差额调整]=false and [是否预估数]=false"
            Tables("产值情况_Table1").Sort ="所属期间 DESC"
            Forms("产值情况").Text= "全部合同-产值情况"
        End If
    End If
    
Else \'在Form中的Row发生变化
    
    
    
    If e.Table.Focused Then
        
        If e.Table.Name = "乙方情况汇总表_Table1" Then
            
            If Forms("付款情况").Opened Then
                If e.Table.Current Is Nothing Then \'如果Current为Nothing
                    Tables("付款情况_Table1").Filter = "[乙方] = \'\'"
                    Forms("付款情况").Text="付款情况"
                Else
                    Tables("付款情况_Table1").Filter = "[开发项目] = \'"  & e.Table.Current("开发项目") & "\'"  _
                    &  " and " & "[开发产品] = \'"  & e.Table.Current("开发产品") & "\'"  _
                    &  " and " & "[合同名称] = \'"  & e.Table.Current("合同名称") & "\'"  _
                    &  " and " & "[乙方] = \'"  & e.Table.Current("乙方") & "\'" _
                    & " and [付款金额] not is null and [付款金额]<> \'0\'"
                    Tables("付款情况_Table1").Sort ="所属期间 DESC"
                    Forms("付款情况").Text=  "单合同-付款情况"
                End If
            End If
            
            If Forms("产值情况").Opened Then
                If e.Table.Current Is Nothing Then \'如果Current为Nothing
                    Tables("产值情况_Table1").Filter = "[乙方] = \'\'"
                Else
                    Tables("产值情况_Table1").Filter = "[开发项目] = \'"  & e.Table.Current("开发项目") & "\'"  _
                    &  " and " & "[开发产品] = \'"  & e.Table.Current("开发产品") & "\'"  _
                    &  " and " & "[合同名称] = \'"  & e.Table.Current("合同名称") & "\'"  _
                    &  " and " & "[乙方] = \'"  & e.Table.Current("乙方") & "\'" _
                    & " and ([申报产值] not is null or [本月付款比例] not Is null)  and  [是否差额调整]=false and [是否预估数]=false"
                    Tables("产值情况_Table1").Sort ="所属期间 DESC"
                    Forms("产值情况").Text= "单合同-产值情况"
                End If
            End If
        Else \'若窗口=乙方情况汇总表时的 else
            Exit Sub
        End If \'若窗口=乙方情况汇总表时的 end if
        
        
        
        
    Else \'数据表所在窗口为focus的 else
        Exit Sub
    End If \'数据表所在窗口为focus的 end if

    
    
    
End If

--  作者:jianjingmaoyi
--  发布时间:2014/8/17 18:27:00
--  
为啥用全局事件?表是动态加载的?
--  作者:蓝色理想
--  发布时间:2014/8/17 18:28:00
--  
用最无奈的办法,自己搞定了
汗。。。。。。。。。。。。
真心呼唤老大弄一个调试器啊
在负责情况下,没调试器,跨表的事件处理
真的是一个噩梦啊