Foxtable(狐表)用户栏目专家坐堂 → 多个表有同一订单,能不能实现,只修改一个然后根据订单编号,


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

主题:多个表有同一订单,能不能实现,只修改一个然后根据订单编号,

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


加好友 发短信
等级:一尾狐 帖子:437 积分:3682 威望:0 精华:0 注册:2014/4/28 18:50:00
多个表有同一订单,能不能实现,只修改一个然后根据订单编号,  发帖心情 Post By:2014/5/14 15:12:00 [只看该作者]

假设“生产订单”里有个订单“备注”和“规格”被修改,能不能用个button去实现,让其他表(各个车间)的数据根据订单编号同步数据?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试系统.table


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/5/14 15:18:00 [只看该作者]

我觉得,你应该设置关联, 用生产订单表作为主表, 那些表作为子表.

然后用表达式列,直接引用数据更加好.

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/5/14 15:26:00 [只看该作者]

Select e.DataCol.Name
    Case "规格","备注"
        If e.NewValue <> e.DataRow.OriginalValue(e.DataCol.Name) Then
            For Each dt As DataTable In DataTables
                If dt.Name.EndsWith("车间") Then
                    Dim dr As DataRow = dt.SQLFind("订单编号 = '" & e.DataRow("订单编号") & "' And 订单编号 Is Not Null")
                    If dr IsNot Nothing Then
                        dr("规格") = e.DataRow("规格")
                        dr("备注") = e.DataRow("备注")
                    End If
                End If
            Next
        End If
End Select

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


加好友 发短信
等级:一尾狐 帖子:437 积分:3682 威望:0 精华:0 注册:2014/4/28 18:50:00
  发帖心情 Post By:2014/5/14 15:56:00 [只看该作者]

以下是引用Bin在2014-5-14 15:18:00的发言:
我觉得,你应该设置关联, 用生产订单表作为主表, 那些表作为子表.

然后用表达式列,直接引用数据更加好.
我也想设置关联,但是每个工序之间要设置关联,前下料和裁剪要和生产订单关联,这样关联表太多

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


加好友 发短信
等级:一尾狐 帖子:437 积分:3682 威望:0 精华:0 注册:2014/4/28 18:50:00
  发帖心情 Post By:2014/5/14 16:02:00 [只看该作者]

以下是引用lsy在2014-5-14 15:26:00的发言:
Select e.DataCol.Name
    Case "规格","备注"
        If e.NewValue <> e.DataRow.OriginalValue(e.DataCol.Name) Then
            For Each dt As DataTable In DataTables
                If dt.Name.EndsWith("车间") Then
                    Dim dr As DataRow = dt.SQLFind("订单编号 = '" & e.DataRow("订单编号") & "' And 订单编号 Is Not Null")
                    If dr IsNot Nothing Then
                        dr("规格") = e.DataRow("规格")
                        dr("备注") = e.DataRow("备注")
                    End If
                End If
            Next
        End If
End Select

这段代码写在哪的?第一句对么?

[此贴子已经被作者于2014-5-14 16:02:52编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/14 16:33:00 [只看该作者]

以下是引用JPG7在2014-5-14 16:02:00的发言:

这段代码写在哪的?第一句对么?

[此贴子已经被作者于2014-5-14 16:02:52编辑过]

 

写在表的事件datacolchanged


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


加好友 发短信
等级:一尾狐 帖子:437 积分:3682 威望:0 精华:0 注册:2014/4/28 18:50:00
  发帖心情 Post By:2014/5/14 17:28:00 [只看该作者]

图片点击可在新窗口打开查看甜甜老师,给解答下

 

 

以下是引用JPG7在2014-5-14 15:15:00的发言:

If e.Row("编辑者") = User.Name Then '如果编辑者是当前用户
    Return
End If
Dim cmd As New SQLCommand
Dim exp As String  = "编辑者 Is Null And [_Identify] = " & e.Row("_Identify")
cmd.CommandText = "Update {客户订单} Set 编辑者 = '" & User.Name & "' Where " & exp
If cmd.ExecuteNonQuery = 1 Then
    e.Row("编辑者") = User.Name
Else
    cmd.CommandText = "Select 编辑者 From {客户订单} Where [_Identify] = " & e.Row("_Identify")
    Dim nm As String = cmd.ExecuteScalar
    If nm > "" Then
        MessageBox.show(nm & "正在编辑此行!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Else
        MessageBox.show("此行可能已经被删除,无法编辑!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    End If
    e.Cancel = True '取消编辑
End If

 

 

 假如这段代码出现这个错误,如下图

 


图片点击可在新窗口打开查看此主题相关图片如下:捕获.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/5/14 17:29:00 [只看该作者]

如果用的是外部数据源,你没有指定数据源名称


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


加好友 发短信
等级:一尾狐 帖子:437 积分:3682 威望:0 精华:0 注册:2014/4/28 18:50:00
回复:(有点甜)以下是引用JPG7在2014-5-14 16:02:00...  发帖心情 Post By:2014/5/14 17:36:00 [只看该作者]

lsy 老师写的代码,貌似不管用啊


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/5/14 17:41:00 [只看该作者]

以下是引用JPG7在2014-5-14 17:36:00的发言:

lsy 老师写的代码,貌似不管用啊

 

lsy老师用了  dt.SQLFind("订单编号 = '" & e.DataRow("订单编号") & "' And 订单编号 Is Not Null")

意思是直接修改后台的数据了,你前台不会有体现的,如要要体现出来,就重新加载行/表。

 

或者,你直接用find不用sqlfind


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