以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请问这个编号逻辑该如何实现?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=122250)

--  作者:初心不改再说未来
--  发布时间:2018/7/21 15:12:00
--  请问这个编号逻辑该如何实现?
订单表中有个表达式列:订单编号,一个多值字段数据列:本订单所有客户姓名。
客户表中有个数据列:订单编号,一个数据列:客户姓名。

因为1个订单中可能包含多个客户,所以我的逻辑是:
1 先添加客户信息,默认订单编号列为空;
2 再通过窗口添加订单信息,根据表达式产生订单编号后,将本订单的所有客户合并为1个订单处理,添加到订单的客户姓名列中;
3 最后将订单表产生出来的订单编号赋值到客户表中的对应订单编号列中;

这样一个订单下的所有客户都拥有统一的订单编号,后期查看本订单下的客户信息时可以快速调用客户信息了。

好像是先要关联上?然后这个添加订单成功后,订单编号如何赋值给客户表的订单编号的代码该怎么写

  有点懵逼····

--  作者:有点蓝
--  发布时间:2018/7/21 15:17:00
--  
一个客户只有一个订单?

正常在订单表里保存客户姓名即可,如果想要方便关联查询,可以增加一个订单客户表,同一个订单一个客户一行记录
--  作者:初心不改再说未来
--  发布时间:2018/7/21 15:22:00
--  
是的,一个客户只有1个订单。这个应该怎么赋值呢
--  作者:有点蓝
--  发布时间:2018/7/21 15:28:00
--  
订单表datacolchanged事件

If e.DataCol.name = "客户姓名"
    If e.newvalue > 0 Then
        For Each s As String In e.newvalue.split(",")
            Dim dr As DataRow = DataTables("客户表").Find("客户姓名= \'" & s & "\'")
            If dr IsNot Nothing
                dr("订单编号") = e.datarow("订单编号")
            End If
        Next
    End If
End If

--  作者:初心不改再说未来
--  发布时间:2018/7/21 15:41:00
--  
.NET Framework 版本:2.0.50727.8669
Foxtable 版本:2018.7.23.1
错误所在事件:表,订单表,DataColChanged
详细错误信息:
调用的目标发生了异常。
从字符串“王五,李佳宝”到类型“Double”的转换无效。
输入字符串的格式不正确。


--  作者:初心不改再说未来
--  发布时间:2018/7/21 15:45:00
--  
大神,您说的也对,虽然我们是个复购率极低的行业,但是偶尔也会有客户重复购买一次

上面所说的需求,其实就是想在订单表的某条数据中,双击客户姓名后弹出一个客户详细资料的窗口,方便查看详细资料

但是客户有重名的,所以就想用订单编号来区分此订单具体是哪个客户的,所以才有这么个想法。

但是如果真的如您所说有个客人买了2次,就出大问题了。因为客户表的订单编号不能出现2个值,

所以这个应该是怎么设计才对呢?谢谢

--  作者:有点蓝
--  发布时间:2018/7/21 16:12:00
--  
看2楼