Foxtable(狐表)用户栏目专家坐堂 → 版主,您好,请教函数,谢谢!


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

主题:版主,您好,请教函数,谢谢!

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


加好友 发短信
等级:童狐 帖子:241 积分:2124 威望:0 精华:0 注册:2012/9/23 10:42:00
版主,您好,请教函数,谢谢!  发帖心情 Post By:2023/11/14 12:32:00 [只看该作者]

版主,您好!
目的:选取《衰减器和滤波器订单明细表》后粘贴原始订单信息,《小客户衰减器数据上传表》实现“客户物料编号”、”物料“等信息自动输入。需要对《衰减器和滤波器订单明细表》中“客户物料编号”列做判断,“客户物料编号”列有信息则按照情况二程序实施,否则按照情况一实施。需要版主指导将情况一盒情况二合并成一个函数。谢谢!
情况一:选取《小客户衰减器数据上传表》先判断“客户物料编号”是否是空值,如果是的话,“客户物料编号”值就等于“物料”值,《小客户衰减器数据上传表》表事件(DataColChanged)程序如下:
程序一:
If e.DataCol.Name = "采购订单凭证一行项目" Then
    Dim nms() As String = {"客户采购订单编号", "生产批次", "凭证日期", "物料", "销售订单", "行项目1"}
    If e.NewValue Is Nothing Then
        For Each nm As String In nms
            e.DataRow(nm) = Nothing
        Next
    Else
        Dim dr As DataRow
        dr = DataTables("衰减器和滤波器订单明细表").Find("[采购订单凭证一行项目] = '" & e.NewValue & "'")
        If dr IsNot Nothing Then
            For Each nm As String In nms
                e.DataRow(nm) = dr(nm)
            Next
        End If
    End If
End If
程序二:
If e.DataCol.Name = "物料" Then
    If e.DataRow.IsNull("物料") Then
        e.DataRow("客户物料编号") = Nothing
    Else
        e.DataRow("客户物料编号") = e.DataRow("物料")
    End If
End If

情况二:选取《小客户衰减器数据上传表》先判断“客户物料编号”是否是空值,如果不是的话,“客户物料编号”值取《衰减器和滤波器订单明细表》表中“客户物料编号”的值,《小客户衰减器数据上传表》表事件(DataColChanged)程序如下:
程序一:
If e.DataCol.Name = "采购订单凭证一行项目" Then
    Dim nms() As String = {"客户物料编号","客户采购订单编号", "生产批次", "凭证日期", "物料", "销售订单", "行项目1"}
    If e.NewValue Is Nothing Then
        For Each nm As String In nms
            e.DataRow(nm) = Nothing
        Next
    Else
        Dim dr As DataRow
        dr = DataTables("衰减器和滤波器订单明细表").Find("[采购订单凭证一行项目] = '" & e.NewValue & "'")
        If dr IsNot Nothing Then
            For Each nm As String In nms
                e.DataRow(nm) = dr(nm)
            Next
        End If
    End If
End If


《衰减器和滤波器订单明细表》信息如下:
图片点击可在新窗口打开查看

《小客户衰减器数据上传表》信息如下:
图片点击可在新窗口打开查看

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110581 积分:562801 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/11/14 13:40:00 [只看该作者]

If e.DataCol.Name = "采购订单凭证一行项目" Then
    Dim nms() As String = {"客户采购订单编号", "生产批次", "凭证日期", "物料", "销售订单", "行项目1"}
    If e.NewValue Is Nothing Then
        For Each nm As String In nms
            e.DataRow(nm) = Nothing
        Next
    Else
        Dim dr As DataRow
        dr = DataTables("衰减器和滤波器订单明细表").Find("[采购订单凭证一行项目] = '" & e.NewValue & "'")
        If dr IsNot Nothing Then
            For Each nm As String In nms
                e.DataRow(nm) = dr(nm)
            Next
if dr.isnull("客户物料编号")=false then
e.DataRow("客户物料编号") = dr("客户物料编号")
end if
        End If
    End If
End If

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


加好友 发短信
等级:童狐 帖子:241 积分:2124 威望:0 精华:0 注册:2012/9/23 10:42:00
  发帖心情 Post By:2023/11/14 14:32:00 [只看该作者]

版主,刚才试了程序运行结果不对。
版主,您好!
目的:选取《衰减器和滤波器订单明细表》粘贴原始订单信息(《衰减器和滤波器订单明细表》表“客户物料编号”列有数据就参照情况二流程计算,如果《衰减器和滤波器订单明细表》表“客户物料编号”列无数据参照情况一流程计算,再选择《小客户衰减器数据上传表》实现“客户物料编号”、”物料“等信息自动输入。需要对《衰减器和滤波器订单明细表》中“客户物料编号”列做判断,需要版主指导将情况一和情况二合并成一个函数。谢谢!
情况一:选取《小客户衰减器数据上传表》先判断“客户物料编号”是否是空值,如果是的话,“客户物料编号”值就等于“物料”值,《小客户衰减器数据上传表》表事件(DataColChanged)程序如下:
程序一:
If e.DataCol.Name = "采购订单凭证一行项目" Then
    Dim nms() As String = {"客户采购订单编号", "生产批次", "凭证日期", "物料", "销售订单", "行项目1"}
    If e.NewValue Is Nothing Then
        For Each nm As String In nms
            e.DataRow(nm) = Nothing
        Next
    Else
        Dim dr As DataRow
        dr = DataTables("衰减器和滤波器订单明细表").Find("[采购订单凭证一行项目] = '" & e.NewValue & "'")
        If dr IsNot Nothing Then
            For Each nm As String In nms
                e.DataRow(nm) = dr(nm)
            Next
        End If
    End If
End If
程序二:
If e.DataCol.Name = "物料" Then
    If e.DataRow.IsNull("物料") Then
        e.DataRow("客户物料编号") = Nothing
    Else
        e.DataRow("客户物料编号") = e.DataRow("物料")
    End If
End If

情况二:选取《小客户衰减器数据上传表》先判断“客户物料编号”是否是空值,如果不是的话,“客户物料编号”值取《衰减器和滤波器订单明细表》表中“客户物料编号”的值,《小客户衰减器数据上传表》表事件(DataColChanged)程序如下:
程序一:
If e.DataCol.Name = "采购订单凭证一行项目" Then
    Dim nms() As String = {"客户物料编号","客户采购订单编号", "生产批次", "凭证日期", "物料", "销售订单", "行项目1"}
    If e.NewValue Is Nothing Then
        For Each nm As String In nms
            e.DataRow(nm) = Nothing
        Next
    Else
        Dim dr As DataRow
        dr = DataTables("衰减器和滤波器订单明细表").Find("[采购订单凭证一行项目] = '" & e.NewValue & "'")
        If dr IsNot Nothing Then
            For Each nm As String In nms
                e.DataRow(nm) = dr(nm)
            Next
        End If
    End If
End If

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110581 积分:562801 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/11/14 14:41:00 [只看该作者]

什么地方测试不对?

另外在【《衰减器和滤波器订单明细表》粘贴原始订单信息】后更新到其它表,那就应该在【《衰减器和滤波器订单明细表》】表事件写代码呀

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


加好友 发短信
等级:童狐 帖子:241 积分:2124 威望:0 精华:0 注册:2012/9/23 10:42:00
  发帖心情 Post By:2023/11/15 13:31:00 [只看该作者]


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

图片点击可在新窗口打开查看此主题相关图片如下:图片二.png
图片点击可在新窗口打开查看
版主,您好,我是把《衰减器和滤波器订单明细表》和《小客户衰减器数据上传表》案例发到网站上,我操作步骤讲解:1、从共享文件中将订单信息复制后粘贴到《衰减器和滤波器订单明细表》,订单信息如下:4100239250-10这个订单“物料”列30078075、“客户物料编号”列内容为空。我选取《小客户衰减器数据上传表》表,在“采购订单凭证一行项目”列中输入4100239250-10内容后,


《小客户衰减器数据上传表》表“物料”列和“客户物料编号”列自动录入30078075信息。
4100239250-10 列名称”客户物料编号“(标题:客户物料号ITEM):30078075,列名称”物料“(标题:SAP物料号)30078075



情况二:订单4100239252-10和4100240511-40这两个订单"物料“和”客户物料编号“列信息齐全,
我选取《小客户衰减器数据上传表》表,在“采购订单凭证一行项目”列中输入4100239252-10和4100240511-40内容后,
《小客户衰减器数据上传表》表“物料”列和“客户物料编号”列自动录入
4100239252-10 列名称”客户物料编号“(标题:客户物料号ITEM):45030025,列名称”物料“(标题:SAP物料号)1032000026
4100240511-40列名称”客户物料编号“(标题:客户物料号ITEM):45030024,列名称”物料“(标题:SAP物料号)1032000051
正确数据填写显示图片如下,现在是我将程序拷贝至《小客户衰减器数据上传表》的表事件的DATACOLchanged栏,无法实现下面的目的。


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


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


加好友 发短信
等级:童狐 帖子:241 积分:2124 威望:0 精华:0 注册:2012/9/23 10:42:00
  发帖心情 Post By:2023/11/15 13:32:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:衰减器和滤波器订单明细表.xls

表格附上,版主。谢谢
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:小客户衰减器数据上传表.xls


 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110581 积分:562801 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/11/15 13:39:00 [只看该作者]

请上传实例测试

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


加好友 发短信
等级:童狐 帖子:241 积分:2124 威望:0 精华:0 注册:2012/9/23 10:42:00
  发帖心情 Post By:2023/11/15 14:25:00 [只看该作者]

版主,您好!请查收,谢谢!

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


加好友 发短信
等级:童狐 帖子:241 积分:2124 威望:0 精华:0 注册:2012/9/23 10:42:00
  发帖心情 Post By:2023/11/15 14:37:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:衰减器和滤波器订单管理系统20231031.rar


 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110581 积分:562801 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/11/15 14:40:00 [只看该作者]

没有数据库,打不开表格。请转换为内部表,或者把测试数据库发上来

 回到顶部
总数 17 1 2 下一页