以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  自动带入其他表格数据  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=129892)

--  作者:xlrboy
--  发布时间:2019/1/8 11:50:00
--  自动带入其他表格数据
您好!  我在设计物业收费表格,现在有2个表,1、户主基本信息 2、收费登记表 
           表1和表2做了关联,表1是父 表2是子   在收费登记表内有列收费类型,单价;
           我需要在收费类型选择物业费就可以带出表1里面的物业费月缴额,选择能耗费就可以带出表1里面的能耗费月缴额。
           请问怎么做这个判断。谢谢!
           

--  作者:有点甜
--  发布时间:2019/1/8 12:24:00
--  

1、跨表引用,参考

 

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

 

2、加入判断收费类型的代码,如

 

If e.datarow("收费类型") = "物业费" Then

 

ElseIf e.datarow("收费类型") = "能耗费" Then

 

End If

 


--  作者:xlrboy
--  发布时间:2019/1/8 15:15:00
--  
版主您好!   
           按照帮助我编写了如下代码,填写房号后姓名和实际面积可以自动带入,但选择了收费类型单价还是没有显示,那里出问题了。

If e.DataCol.Name = "房号" Then
    If e.NewValue Is Nothing Then
        e.DataRow("姓名") = Nothing
        e.DataRow("实际面积") = Nothing
        e.DataRow("单价") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("户主信息登记表").Find("[房号] = \'" & e.NewValue & "\'")
        If dr IsNot Nothing
            e.DataRow("姓名") = dr("姓名")
            e.DataRow("实际面积") = dr("实际面积")
        ElseIf e.DataRow("收费类型") = "物业费" Then
            e.DataRow("单价") = dr("物业费月缴额")
        ElseIf e.DataRow("收费类型") = "能耗费" Then
            e.DataRow("单价") = dr("能耗费月缴额")
        End If
    End If
End If

--  作者:有点甜
--  发布时间:2019/1/8 16:04:00
--  

Select Case e.DataCol.Name
    Case "房号", "收费类型"
        If e.NewValue Is Nothing Then
            e.DataRow("姓名") = Nothing
            e.DataRow("实际面积") = Nothing
            e.DataRow("单价") = Nothing
        Else
            Dim dr As DataRow
            dr = DataTables("户主信息登记表").Find("[房号] = \'" & e.DataRow("房号") & "\'")
            If dr IsNot Nothing
                e.DataRow("姓名") = dr("姓名")
                e.DataRow("实际面积") = dr("实际面积")
            ElseIf e.DataRow("收费类型") = "物业费" Then
                e.DataRow("单价") = dr("物业费月缴额")
            ElseIf e.DataRow("收费类型") = "能耗费" Then
                e.DataRow("单价") = dr("能耗费月缴额")
            End If
        End If
End Select

--  作者:xlrboy
--  发布时间:2019/1/8 17:25:00
--  
版主您好!   按照您给的代码还是无法自动带出单价,放上项目请看看问题在那里?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:物业收费台账及明细-1.rar


--  作者:有点甜
--  发布时间:2019/1/8 17:38:00
--  
Select Case e.DataCol.Name
    Case "房号", "收费项目"
        If e.NewValue Is Nothing Then
            e.DataRow("姓名") = Nothing
            e.DataRow("实际面积") = Nothing
            e.DataRow("单价") = Nothing
        Else
            Dim dr As DataRow
            dr = DataTables("户主信息登记表").Find("[房号] = \'" & e.DataRow("房号") & "\'")
            If dr IsNot Nothing
                e.DataRow("姓名") = dr("姓名")
                e.DataRow("实际面积") = dr("实际面积")
               
                If e.DataRow("收费项目") = "物业费" Then
                    e.DataRow("单价") = dr("物业费月缴额")
                ElseIf e.DataRow("收费项目") = "能耗费" Then
                    e.DataRow("单价") = dr("能耗费月缴额")
                End If
            End If
        End If
End Select

--  作者:xlrboy
--  发布时间:2019/1/8 20:11:00
--  
版主您好!  单价已经可以自动带出,但是在数量列输入数量后提示:无法在 System.String 和 System.String 上执行“*”操作。  总价无法显示,是哪里出问题了。
--  作者:有点蓝
--  发布时间:2019/1/8 22:29:00
--  
单价、数量这些列改为数值列



--  作者:xlrboy
--  发布时间:2019/1/10 9:51:00
--  
版主您好!   我需要在月份列下面某一行输入一个简单字符,然后这个输入字符的单元格就能自动填写入这一行月缴额里的数字,如何实现或可以参考那个例子。谢谢!

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

--  作者:有点甜
--  发布时间:2019/1/10 10:07:00
--  
具体实例发上来测试。