以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何实现针对不同的客户显示上次售价? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=71774) |
-- 作者:minxizai -- 发布时间:2015/7/17 18:28:00 -- 如何实现针对不同的客户显示上次售价? 想实现的功能:在订单界面输入客户和产品后,价格列自动填入该客户上次订单的售价 Dim dr As DataRow Dim pm As String = Tables("订单明细").Current.DataRow("品名") Dim kh As String = Tables("订单明细").Current.DataRow("客户名称") dr = DataTables("订单明细").Find(".品名 = pm & .客户名称 = kh ","日期 Desc") If dr IsNot Nothing Then Tables("订单明细").Current.DataRow("价格") = dr("价格") End If 另一种也是不行: If e.DataCol.Name = "客户名称" Or e.DataCol.Name = "品名" Then Dim dr As DataRow Dim Filter As String Filter = "[客户名称] = \'" & e.DataRow("客户名称") & "\' And [品名] = \'" & e.DataRow("品名") & "\'" dr = DataTables("订单明细").Find(Filter ,"日期 Desc") If dr IsNot Nothing Then e.DataRow("价格") = dr("价格") End If End If 还有个疑问:当代码查找到需要的行时,current是当前需要输入的行,还是查找到的行?
[此贴子已经被作者于2015/7/17 20:37:25编辑过]
|
-- 作者:狐狸爸爸 -- 发布时间:2015/7/18 10:27:00 -- 第二种方法应该可以,不过应该稍微改一下,排除掉本行: If e.DataCol.Name = "客户名称" Or e.DataCol.Name = "品名" Then Dim dr As DataRow Dim Filter As String Filter = "[客户名称] = \'" & e.DataRow("客户名称") & "\' And [品名] = \'" & e.DataRow("品名") & "\' And [_Identify] <> " & e.DataRow("_Identify") dr = DataTables("订单明细").Find(Filter ,"日期 Desc") If dr IsNot Nothing Then e.DataRow("价格") = dr("价格") End If End If 如果还不行,做个例子发上来。
|