以文本方式查看主题 - 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 -- 数据填充器 出现异常
开发者 密码: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 --
|
||||
-- 作者:zhangning -- 发布时间:2016/11/30 11:27:00 -- 感谢老师,解决了 |
||||
-- 作者:zhangning -- 发布时间:2016/11/30 11:32:00 --
开发者 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 --
开发者 qdkf
建立了对账窗口,新人不会写代码,能否麻烦老师帮写写,谢谢老师,麻烦了 |
||||
-- 作者:有点蓝 -- 发布时间:2016/11/30 14:25:00 -- 什么地方有问题? |