以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]如何进行多列引用相同的跨表内容  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=115415)

--  作者:hrw68529
--  发布时间:2018/3/7 6:49:00
--  [求助]如何进行多列引用相同的跨表内容
描述:1、《平时考核》表需引用《平时考核奖金标准》表中的数据;

2、如果在 《平时考核》表中的“月份_1”中如果填写“好”,则在《平时考核》表中的“月考核奖金_1”中自动引用《平时考核奖金标准》表中对应的“金额”;如果在 《平时考核》表中的“月份_1”中如果填写“良好”,则在《平时考核》表中的“月考核奖金_1”中自动引用《平时考核奖金标准》表中对应的“金额”,“月份_2”…………,以此类推,如何写代码,请指导。谢谢

附系统:

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:信阳市人社局工资管理系统_201803070646.zip


--  作者:有点甜
--  发布时间:2018/3/7 9:45:00
--  

DataColChanged事件

 

If e.DataCol.name.StartsWith("月份_") Then
    Dim i As String = e.DataCol.name.Replace("月份_", "")
    Dim fdr As DataRow = DataTables("平时考核奖金标准").find("等次 = \'" & e.DataRow(e.DataCol.name) & "\'")
    If fdr Is Nothing Then
        e.DataRow("月考核奖金_" & i) = Nothing
    Else
        e.DataRow("月考核奖金_" & i) = fdr("金额")
    End If
End If


--  作者:hrw68529
--  发布时间:2018/3/7 10:09:00
--  
谢谢,还可以这样写,真棒,谢谢
--  作者:hrw68529
--  发布时间:2018/3/7 10:41:00
--  
有点甜,下述代码怎么不执行,设计目的:当选择现任职务后,如果“单位性质”为“机关”或“参公”,就跨表引入数据,如果“单位性质”为“事业单位”就不引入数据,改了半天,不执行,代码哪儿写错了,请指导,谢谢。

Select Case e.DataCol.Name
    Case "现任职务","单位性质"
        If e.DataCol.Name = "现任职务" Then 
        If  e.DataRow.IsNull("现任职务") And e.DataRow.IsNull("单位性质")  Then
             e.DataRow("补贴_通信补贴") = Nothing 
        ElseIf  e.DataRow("现任职务") <> Nothing And  e.DataRow("单位性质") = “事业单位”  Then
            e.DataRow("补贴_通信补贴") = Nothing 
 Else
        Dim dr As DataRow
       
        dr = DataTables("通信费").Find("[现任职务] = \'" & e.NewValue & "\'")
        If dr IsNot Nothing Then 
            e.DataRow("补贴_通信补贴") = dr("金额") 
        End If
    End If
End If
End Select

--  作者:有点甜
--  发布时间:2018/3/7 11:22:00
--  
Select Case e.DataCol.Name
    Case "现任职务","单位性质"
        If  e.DataRow.IsNull("现任职务") OrElse e.DataRow.IsNull("单位性质")  Then
            e.DataRow("补贴_通信补贴") = Nothing
        Else
            If e.DataRow("单位性质") = "事业单位"  Then
                e.DataRow("补贴_通信补贴") = Nothing
            ElseIf e.DataRow("单位性质")="机关" OrElse e.DataRow("单位性质") = "参公" Then
                Dim dr As DataRow
                dr = DataTables("通信费").Find("[现任职务] = \'" & e.NewValue & "\'")
                If dr IsNot Nothing Then
                    e.DataRow("补贴_通信补贴") = dr("金额")
                End If
            End If
        End If
End Select

--  作者:hrw68529
--  发布时间:2018/3/7 11:40:00
--  
有点甜,上述代码不运行,谢谢
--  作者:有点甜
--  发布时间:2018/3/7 11:55:00
--  

Select Case e.DataCol.Name
    Case "现任职务","单位性质"
        If  e.DataRow.IsNull("现任职务") OrElse e.DataRow.IsNull("单位性质")  Then
            e.DataRow("补贴_通信补贴") = Nothing
        Else
            If e.DataRow("单位性质") = "事业单位"  Then
                e.DataRow("补贴_通信补贴") = Nothing
            ElseIf e.DataRow("单位性质")="机关" OrElse e.DataRow("单位性质") = "参公" Then
                Dim dr As DataRow
                dr = DataTables("通信费").Find("[现任职务] = \'" & e.datarow("现任职务") & "\'")
                If dr IsNot Nothing Then
                    e.DataRow("补贴_通信补贴") = dr("金额")
                End If
            End If
        End If
End Select

 

如果还不行,实例发上来。


--  作者:hrw68529
--  发布时间:2018/3/7 11:59:00
--  
谢谢,可以了,真的非常感谢。