以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求助,专用价格表的设计思路?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=57520)

--  作者:pz1256
--  发布时间:2014/9/25 23:38:00
--  求助,专用价格表的设计思路?
公司的产品对大部分客户来说都是通用价格的,但有的客户采用的是专用价格,如何设计这种表格?请前辈明示!
[此贴子已经被作者于2014-9-25 23:38:53编辑过]

--  作者:mxm121
--  发布时间:2014/9/26 1:07:00
--  
手册里搜动态列表

可以根据客户名称来动态选择价格
[此贴子已经被作者于2014-9-26 1:08:34编辑过]

--  作者:程兴刚
--  发布时间:2014/9/26 1:16:00
--  

文件发上来才会有人帮您构思,否者,全是没有的话!


--  作者:有点甜
--  发布时间:2014/9/26 9:04:00
--  

参考 http://www.foxtable.com/help/topics/1459.htm

 


--  作者:pz1256
--  发布时间:2014/9/26 13:46:00
--  

好吧,直接上例子。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:新鑫影像_201409261312.zip

 

欲实现“当打开订单录入窗口,选择了影楼名称及明细中的产品类型与产品规格后,该产品的制作单价调用的是价格表中对应影楼名称列的专用价。而不是通用制作单价”
谢谢!


--  作者:有点甜
--  发布时间:2014/9/26 14:32:00
--  

 Datacolchanged事件,加入如下代码

 

Select e.DataCol.Name
    Case "订单编号"
        If e.DataRow.IsNull("订单编号") Then
            e.DataRow("产品编号") = Nothing
        Else
            Dim lb As String = e.DataRow("订单编号")
            If e.DataRow("产品编号").StartsWith(lb) = False \'如果单据编号前缀不符
                Dim max As String
                Dim idx As Integer
                max = e.DataTable.Compute("Max(产品编号)","订单编号 = \'" & lb & "\' And [_Identify] <> " & e.DataRow("_Identify")) \'取得该类别的最大编号
                If max > "" Then \'如果存在最大编号
                    idx = CInt(max.Substring( max.IndexOf ("-")+3,3) +1 )\'获得最大编号的后三位顺序号,并加1
                Else
                    idx = 1 \'否则顺序号等于1
                End If
                e.DataRow("产品编号") = lb & Format(idx,"000")
            End If
        End If
    Case "产品类型", "产品规格"
        If e.DataRow.IsNull("产品类型") = False AndAlso e.DataRow.IsNull("产品规格") = False Then
            Dim fdr As DataRow = DataTables("价格表").Find("产品类型 = \'" & e.DataRow("产品类型") & "\' and 产品规格 = \'" & e.DataRow("产品规格") & "\'")
            If fdr IsNot Nothing Then
                Dim pdr As DataRow = e.DataRow.GetParentRow("订单汇总表")
                If pdr IsNot Nothing AndAlso pdr.IsNull("影楼名称") = False AndAlso DataTables("价格表").DataCols.Contains(pdr("影楼名称") & "专用价格") Then
                    e.DataRow("制作单价") = fdr(pdr("影楼名称") & "专用价格")
                Else
                    e.DataRow("制作单价") = fdr("制作单价")
                End If
            End If
        End If
End Select


--  作者:pz1256
--  发布时间:2014/9/26 15:14:00
--  

非常感谢!