Foxtable(狐表)用户栏目专家坐堂 → [求助]请大神帮忙看下


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

主题:[求助]请大神帮忙看下

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


加好友 发短信
等级:幼狐 帖子:117 积分:940 威望:0 精华:0 注册:2017/1/12 16:26:00
[求助]请大神帮忙看下  发帖心情 Post By:2019/1/23 16:42:00 [只看该作者]

请大神帮忙看下
“零星维修表”表格中有成本总金额,表达式为
isnull([成本_人工],0)*230+isnull([成本_住宿],0)+isnull([成本_路工],0)*230+isnull([成本_车船],0)+isnull([成本_材料],0)+isnull([成本_其他],0)
其中230为人工单价
现在由于人工单价每个人不一样,我新建了一个“人工单价表”,将每个人的单价输在里面,能不能将表达式修改为根据维修表里结算抬头的人名不同,自动调用人工单价表里对应人名的人工单价?

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


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

方法一:设置关联,父表->工人单价,子表->维修表,然后直接引用父表数据

 

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

 

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

 

方法二:写代码,直接跨表引用

 

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

 

 


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


加好友 发短信
等级:幼狐 帖子:117 积分:940 威望:0 精华:0 注册:2017/1/12 16:26:00
  发帖心情 Post By:2019/1/24 8:48:00 [只看该作者]

If e.DataCol.Name = "结算抬头" Then '如果内容发生变动的是品名列
    If e.NewValue Is Nothing Then '如果新值是空白,也就是品名列的内容为空
        e.
DataRow("人工单价") = Nothing '那么清空此行单价列的内容
    
Else
        Dim
 dr As DataRow
        dr = 
DataTables("人工单价表").Find("[人工单价] = '" & e.NewValue & "'")
        If
 dr IsNot Nothing Then '如果找到了同名的产品行,也就是dr不是Nothing
            e.
DataRow("人工单价") = dr("人工单价"
        End
 If
    End
 If
End
 If
版主,还要再请教下。由于人工单价每年都会有变化,现在想在人工单价表里将每年的人工单价分别列出,如“人工单价_2018”“人工单价_2019”,然后根据“零星维修表”中编号(格式为“LX201801-001)中的年份,在“人工单价”列自动获取对应年份的单价,请问代码应该怎么写?请版主帮忙图片点击可在新窗口打开查看

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


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


If e.DataCol.Name = "结算抬头" Then '如果内容发生变动的是品名列
    If e.NewValue Is Nothing Then '如果新值是空白,也就是品名列的内容为空
        e.DataRow("人工单价") = Nothing '那么清空此行单价列的内容
    Else
        Dim dr As DataRow
        dr = DataTables("人工单价表").Find("[姓名] = '" & e.DataRow("结算抬头") & "'")
        If dr IsNot Nothing Then '如果找到了同名的产品行,也就是dr不是Nothing
            For Each dc As DataCol In DataTables("人工单价表").DataCols
                If dc.name.StartsWith("人工单价_") Then
                    Dim y = dc.name.Split("_")(1)
                    If e.DataRow("编号").contains(y) Then
                        e.DataRow("人工单价") = dr(dc.name)
                    End If
                End If
            Next
        End If
    end if
End If

 

[此贴子已经被作者于2019/1/24 9:15:00编辑过]

 回到顶部