Foxtable(狐表)用户栏目专家坐堂 → 报价单设计


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

主题:报价单设计

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


加好友 发短信
等级:童狐 帖子:228 积分:2057 威望:0 精华:0 注册:2017/8/18 17:51:00
报价单设计  发帖心情 Post By:2018/4/5 2:22:00 [显示全部帖子]

希望在开销售单的同一个窗口实现开报价单,报价单要求不减库存,当客户付款后能形成真正的订单。 我该如何设计?谢谢! 另外一个问题:客户订单之前有未付款,如果今天客户付清余款,能否实现客户所付余款计入当天的收入金额。
[此贴子已经被作者于2018/4/5 2:24:04编辑过]

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


加好友 发短信
等级:童狐 帖子:228 积分:2057 威望:0 精华:0 注册:2017/8/18 17:51:00
  发帖心情 Post By:2018/4/7 4:18:00 [显示全部帖子]

1、报价单独设计一个表可以,也需要设计成报价单和报价明细表两个表,如果点击报价单的某行的逻辑列后,报价明细表会不会也自动复制到销售单明细里面去? 2、我大概明白怎么做了。

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


加好友 发短信
等级:童狐 帖子:228 积分:2057 威望:0 精华:0 注册:2017/8/18 17:51:00
  发帖心情 Post By:2018/4/11 3:32:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:tim截图.jpg
图片点击可在新窗口打开查看
付款明细表现在碰到一个问题:订单结算明细表和销售订单通过订单号关联,订单结算明细表的订单总额为表达式,=销售订单的总金额。上图的明细是在生成订单的时候同时向订单结算明细表中填充的值,订单结算明细表借鉴的流水账设计方式。现在的问题是余额为负数的付款金额数(第一行应该=订单总额-付款金额),订单金额并没有参与计算。是不是因为填充订单结算明细表的时候付款金额优先填充,而订单总额后填充的原因造成的?我试过如果在订单结算明细表里面通过增加行的方式添加计算结果又是对的,因为当输入订单号后付款总额会先获得值。请问怎么解决这个问题?谢谢!
[此贴子已经被作者于2018/4/11 3:38:24编辑过]

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


加好友 发短信
等级:童狐 帖子:228 积分:2057 威望:0 精华:0 注册:2017/8/18 17:51:00
  发帖心情 Post By:2018/4/11 17:05:00 [显示全部帖子]

订单结算明细表的DataColChanged代码:

Select Case e.DataCol.Name
    Case "订单号","订单总额","付款金额"
        Dim dr As DataRow
        Dim mr As DataRow = e.DataRow
        Dim drs As List(of DataRow)
        dr = e.DataTable.Find("[_SortKey] < " & mr("_SortKey") & " And [订单号] = '" & mr("订单号") & "'", "[_SortKey] Desc")
        If dr Is Nothing Then
            mr("余额") = mr("订单总额") - mr("付款金额")
            dr = mr
        End If
        drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & " And [订单号] = '" & dr("订单号") & "'", "[_SortKey]")
        For i As Integer = 1 To drs.Count - 1
            drs(i)("余额") = drs(i-1)("余额") - drs(i)("付款金额")
        Next
        If e.DataCol.Name = "订单号" AndAlso e.OldValue IsNot Nothing AndAlso e.OldValue <> e.NewValue Then
            dr = e.DataTable.Find("[_SortKey] < " & mr("_SortKey") & " And [订单号] = '" & e.OldValue & "'", "[_SortKey] Desc")
            If dr Is Nothing Then
                dr = e.DataTable.Find("[订单号] = '" & e.OldValue & "'", "[_SortKey]")
                If dr IsNot Nothing Then
                    dr("余额") = dr("订单总额") - dr("付款金额")
                End If
            End If
            If dr IsNot Nothing Then
                drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & " And [订单号] = '" & dr("订单号") & "'", "[_SortKey]")
                For i As Integer = 1 To drs.Count - 1
                    drs(i)("余额") = drs(i-1)("余额") - drs(i)("付款金额")
                Next
            End If
        End If
End Select


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


加好友 发短信
等级:童狐 帖子:228 积分:2057 威望:0 精华:0 注册:2017/8/18 17:51:00
  发帖心情 Post By:2018/4/11 19:01:00 [显示全部帖子]

1、改成数据列比较麻烦,销售订单的总额=Sum(Child(销售明细).金额) - 【折扣】

2、先得到订单总额的值,再填写付款金额。好像不太可能实现,在形成订单的时候先是在窗口控件中填写付款金额值和折扣值,点击保存订单后,订单总额根据上面的表达式才计算得出。所以,当点保存的时候同时向订单结算明细表中填充了付款金额,付款金额始终在订单总额的前面。


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


加好友 发短信
等级:童狐 帖子:228 积分:2057 威望:0 精华:0 注册:2017/8/18 17:51:00
  发帖心情 Post By:2018/4/12 5:09:00 [显示全部帖子]

此问题按照你的提示已经解决,谢谢!


 另外对于自动复制行的问题,能不能点击一次同时实现报价单和报价明细表复制到订单表和订单明细表中?


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


加好友 发短信
等级:童狐 帖子:228 积分:2057 威望:0 精华:0 注册:2017/8/18 17:51:00
  发帖心情 Post By:2018/4/12 17:27:00 [显示全部帖子]

我不是复制整个表格,只复制当前的某一个报价单转为订单,而且希望点击一次同时完成报价单和报价明细的复制。

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


加好友 发短信
等级:童狐 帖子:228 积分:2057 威望:0 精华:0 注册:2017/8/18 17:51:00
  发帖心情 Post By:2018/4/12 18:22:00 [显示全部帖子]

已经解决问题,谢谢
[此贴子已经被作者于2018/4/12 21:31:56编辑过]

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


加好友 发短信
等级:童狐 帖子:228 积分:2057 威望:0 精华:0 注册:2017/8/18 17:51:00
  发帖心情 Post By:2018/4/12 21:33:00 [显示全部帖子]

问题已解决,谢谢了!

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


加好友 发短信
等级:童狐 帖子:228 积分:2057 威望:0 精华:0 注册:2017/8/18 17:51:00
  发帖心情 Post By:2018/4/15 17:22:00 [显示全部帖子]

Select Case e.DataCol.Name
    Case "产品型号","数量","已提数量","订单号"
        Dim dr As DataRow
        Dim mr As DataRow = e.DataRow
        Dim drs As List(of DataRow)
        dr = e.DataTable.Find("[_SortKey] < " & mr("_SortKey") & " And [产品型号] = '" & mr("产品型号") & "'", "[_SortKey] Desc")
        If dr Is Nothing Then
            mr("未提数量") = mr("数量") - mr("已提数量")
            dr = mr
        End If
        drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & " And [产品型号] = '" & dr("产品型号") & "'", "[_SortKey]")
        For i As Integer = 1 To drs.Count - 1
            drs(i)("未提数量") = drs(i-1)("未提数量") - drs(i)("已提数量")
        Next
        If e.DataCol.Name = "产品型号" AndAlso e.OldValue IsNot Nothing AndAlso e.OldValue <> e.NewValue Then
            dr = e.DataTable.Find("[_SortKey] < " & mr("_SortKey") & " And [产品型号] = '" & e.OldValue & "'", "[_SortKey] Desc")
            If dr Is Nothing Then
                dr = e.DataTable.Find("[产品型号] = '" & e.OldValue & "'", "[_SortKey]")
                If dr IsNot Nothing Then
                    dr("未提数量") = dr("数量") - dr("已提数量")
                End If
            End If
            If dr IsNot Nothing Then
                drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & " And [产品型号] = '" & dr("产品型号") & "'", "[_SortKey]")
                For i As Integer = 1 To drs.Count - 1
                    drs(i)("未提数量") = drs(i-1)("未提数量") - drs(i)("已提数量")
                Next
            End If
        End If
End Select

 

上面的代码,希望根据不同的订单号来计算每个产品的流水,怎么改?

 


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