以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  数据填充器 出现异常  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=93464)

--  作者:zhangning
--  发布时间:2016/11/29 15:33:00
--  数据填充器 出现异常
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:生产管理2016.zip

开发者   密码:qdkf
需要在“对账确认”表的“订单号”列导入 “发货单”中“订单号”内容,
参考帮助中的数据填充器写了编码,具体如下:
datacolchanged 
Dim f As New Filler
f.SourceTable = DataTables("发货单") \'指定数据来源
f.SourceCols = "订单号" \'指定数据来源列
f.DataTable = DataTables("对账确认") \'指定数据接收表
f.DataCols = "订单号" \'指定数据接收列
f.Append = True
f.Fill() \'填充数据

但是不填充,请老师帮看看,错在哪里?
谢谢!

--  作者:zhangning
--  发布时间:2016/11/29 15:37:00
--  
想让“订单数量”或“已发货总数量”为空值时,“納品済”为不选中,
同样已发货总数量"或"对账总数量"为空值时,“对账完毕”为不选中,
但是,还是选中了,是以下代码,也烦请老师帮看看错在哪里?谢谢!



If e.DataCol.Name = "订单号"  Then
    Dim Filter As String = "[订单号] = \'" & e.DataRow("订单号") & "\'"
    e.DataRow("订单数量") = DataTables("订单").Compute("Sum(订单数量)", Filter)
    e.DataRow("已发货总数量") = DataTables("发货单").Compute("Sum(发货数量)", Filter)
    e.DataRow("对账总数量") = DataTables("对账单").Compute("Sum(对账数量)", Filter)
End If
Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "订单数量","已发货总数量"
        If dr("订单数量") Is Nothing Or dr("已发货总数量") Is Nothing Then
            dr("納品済") = False
        Else
            If dr("订单数量") = dr("已发货总数量") Then
                dr("納品済") = True
            Else
                dr("納品済") = False
            End If
        End If
    Case  "已发货总数量","对账总数量"
        If dr("已发货总数量") Is Nothing Or dr("对账总数量") Is Nothing Then
            dr("对账完毕") = False
        Else
            If dr("已发货总数量") = dr("对账总数量") Then
                dr("对账完毕") = True
            Else
                dr("对账完毕") = False
            End If
        End If
End Select

--  作者:zhangning
--  发布时间:2016/11/29 15:55:00
--  
如要在“对账确认”表中插入一行,狐表就会退出


--  作者:有点色
--  发布时间:2016/11/29 17:03:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:精益制造管理系统.zip


--  作者:zhangning
--  发布时间:2016/11/30 11:27:00
--  
感谢老师,解决了
--  作者:zhangning
--  发布时间:2016/11/30 11:32:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:生产管理2017.zip
开发者   qdkf
想在“对账确认”表中根据订单号在“对账单”出现的顺序,相对应的“对账月”和“对账数量”自动放入

比如,第一次出现的,就放入第一次对账相应的列中,烦请老师帮谢谢代码,谢谢!

--  作者:有点蓝
--  发布时间:2016/11/30 11:55:00
--  
对账确认DataColChanged事件

Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case  "订单号"
        Dim Filter As String = "[订单号] = \'" & e.DataRow("订单号") & "\'"
        If e.NewValue Is Nothing Then \'如果新值是空白,也就是品名列的内容为空
            e.DataRow("产品名") = Nothing \'那么清空此行单价列的内容
            e.DataRow("订单单价") = Nothing
            e.DataRow("对账单价") = Nothing
        Else
            Dim dr2 As DataRow
            \'否则在产品表查找同名的产品行,将找到的行赋值给变量dr
            dr2 = DataTables("订单").Find(Filter)
            If dr2 IsNot Nothing Then \'如果找到了同名的产品行,也就是dr不是Nothing
                e.DataRow("产品名") = dr2("部品ID")
                e.DataRow("订单单价") = dr2("含税RMB单价")
                e.DataRow("对账单价") = dr2("含税RMB单价")
            End If
            
            Dim drs As List(Of DataRow) = DataTables("对账单").Select(Filter,"[_Identify]")
            Dim dr9 As DataRow
            If drs.Count > 0 Then
                dr9 = drs(0)
                e.DataRow("第一次对账_对账数量") = dr9("对账数量")
                e.DataRow("第一次对账_对账月") = dr9("对账月")
            End If
            If drs.Count > 1 Then
                dr9 = drs(1)
                e.DataRow("第二次对账_对账数量") = dr9("对账数量")
                e.DataRow("第二次对账_对账月") = dr9("对账月")
            End If
        End If
        
        e.DataRow("订单数量") = DataTables("订单").Compute("Sum(订单数量)", Filter)
        e.DataRow("已发货总数量") = DataTables("发货单").Compute("Sum(发货数量)", Filter)
        e.DataRow("对账总数量") = DataTables("对账单").Compute("Sum(对账数量)", Filter)
        
    Case "订单数量","已发货总数量","对账总数量"
        If dr.isnull("订单数量") Or dr.Isnull("已发货总数量") Then
            dr("納品済") = False
        Else
            If dr("订单数量") = dr("已发货总数量") Then
                dr("納品済") = True
            Else
                dr("納品済") = False
            End If
        End If
        Select Case e.DataCol.name
            Case  "已发货总数量","对账总数量"
                If dr.Isnull("已发货总数量") OrElse dr.Isnull("对账总数量") Then
                    dr("对账完毕") = False
                Else
                    If dr("已发货总数量") = dr("对账总数量") Then
                        dr("对账完毕") = True
                    Else
                        dr("对账完毕") = False
                    End If
                End If
        End Select
    Case "订单单价","对账单价"
        If dr.isnull("订单单价") Or dr.Isnull("对账单价") Then
            dr("单价一致") = False
        Else
            If dr("订单单价") = dr("对账单价") Then
                dr("单价一致") = True
            Else
                dr("单价一致") = False
            End If
        End If
        
    Case "单价一致"
        If e.DataRow("单价一致") = False Then
            e.DataRow("金额") =Nothing
        Else
            e.DataRow("金额") = e.DataRow("对账总数量") * e.DataRow("对账单价")
        End If
End Select

--  作者:zhangning
--  发布时间:2016/11/30 13:23:00
--  
太给力了,完美解决,谢谢老师
--  作者:zhangning
--  发布时间:2016/11/30 14:04:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:生产管理窗口.zip
开发者  qdkf
建立了对账窗口,新人不会写代码,能否麻烦老师帮写写,谢谢老师,麻烦了

--  作者:有点蓝
--  发布时间:2016/11/30 14:25:00
--  
什么地方有问题?