以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 自动填写 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=113458) |
-- 作者:雅痞123456 -- 发布时间:2018/1/16 13:42:00 -- 自动填写 此主题相关图片如下:1.png 此主题相关图片如下:2.png 我想实现这个功能 要参考那部分帮助呢 |
-- 作者:有点甜 -- 发布时间:2018/1/16 14:43:00 -- 参考
http://www.foxtable.com/webhelp/scr/1453.htm
|
-- 作者:雅痞123456 -- 发布时间:2018/1/17 10:54:00 -- 这个跨表引用 不是相同列数进行引用吗? 如果一列要从多列进行引用怎么办呢?像列子那样月工时表中的工种只有一列,但他要从员工名单表中的多列中筛选出其中的列 又如何实现呢 |
-- 作者:有点甜 -- 发布时间:2018/1/17 11:20:00 -- 这样写查询代码
Dim fdr As DataRow = DataTables("员工名单").find("姓名 = \'" & e.datarow("员工姓名") & "\'") msgbox(fdr("工种_车工")) msgbox(fdr("工时定额")) If fdr IsNot Nothing AndAlso DataTables("员工名单").DataCols.Contains("工种_" & e.datarow("工种")) Then msgbox(fdr("工种_" & e.datarow("工种"))) End If |
-- 作者:雅痞123456 -- 发布时间:2018/1/17 13:17:00 -- 我是想输入员工姓名和工种后自动引用并填写上员工名单中的 工时和级别 并不是去查询啊 是我理解的有问题吗
|
-- 作者:有点蓝 -- 发布时间:2018/1/17 14:18:00 -- 要先查询,才能获取需要引用的那一行数据,然后通过列名取得这行对应的级别 |
-- 作者:有点甜 -- 发布时间:2018/1/17 15:05:00 -- 以下是引用雅痞123456在2018/1/17 13:17:00的发言:
我是想输入员工姓名和工种后自动引用并填写上员工名单中的 工时和级别 并不是去查询啊 是我理解的有问题吗
看懂4楼代码,查找数据,然后复制即可。 |
-- 作者:雅痞123456 -- 发布时间:2018/1/17 16:11:00 -- 此主题相关图片如下:2.png Select Case e.DataCol.Name Case "员工姓名","工种","级别" ,"工时" Dim dr As DataRow = e.DataRow Dim pr As DataRow If dr.IsNull("员工姓名") OrElse dr.IsNull("工种") Then dr("级别") = Nothing dr("工时") = Nothing Else Dim fdr As DataRow = DataTables("员工名单").find("姓名 = \'" & e.DataRow("员工姓名") & "\'") If fdr IsNot Nothing AndAlso DataTables("员工名单").DataCols.Contains("工种_" & e.DataRow("工种")) Then dr("级别") = fdr("工种_" & e.DataRow("工种")) dr("工时") = fdr("工时定额") End If End If End Select
|
-- 作者:有点甜 -- 发布时间:2018/1/17 16:19:00 -- 代码没问题,看弹出什么。
Select Case e.DataCol.Name
Case "员工姓名","工种","级别" ,"工时"
Dim dr As DataRow = e.DataRow
Dim pr As DataRow
If dr.IsNull("员工姓名") OrElse dr.IsNull("工种") Then
dr("级别") = Nothing
dr("工时") = Nothing
Else
msgbox(1)
Dim fdr As DataRow = DataTables("员工名单").find("姓名 = \'" & e.DataRow("员工姓名") & "\'")
msgbox("工种_" & e.DataRow("工种"))
msgbox(DataTables("员工名单").DataCols.Contains("工种_" & e.DataRow("工种")))
If fdr IsNot Nothing AndAlso DataTables("员工名单").DataCols.Contains("工种_" & e.DataRow("工种")) Then
msgbox(2)
dr("级别") = fdr("工种_" & e.DataRow("工种"))
dr("工时") = fdr("工时定额")
End If
End If
End Select
|
-- 作者:雅痞123456 -- 发布时间:2018/1/17 16:53:00 -- Select Case e.DataCol.Name Case "员工姓名","工种","级别" ,"工时" Dim dr As DataRow = e.DataRow Dim pr As DataRow If dr.IsNull("员工姓名") OrElse dr.IsNull("工种") Then dr("级别") = Nothing dr("工时") = Nothing Else msgbox(1)能够运行 Dim fdr As DataRow = DataTables("员工名单").find("姓名 = \'" & e.DataRow("员工姓名") & "\'") msgbox("工种_" & e.DataRow("工种"))这个不太清楚 msgbox(DataTables("员工名单").DataCols.Contains("工种_" & e.DataRow("工种")))这个不太清楚 If fdr IsNot Nothing AndAlso DataTables("员工名单").DataCols.Contains("工种_" & e.DataRow("工种")) Then msgbox(2)能够运行 dr("级别") = fdr("工种_" & e.DataRow("工种")) dr("工时") = fdr("工时定额") End If End If End Select 我把1和2删除了 再试着运行提示两个true 测试后还是工种是车床正常使用其他的不好使呢
|