以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 关联的问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=13923) |
-- 作者:布莱克朱 -- 发布时间:2011/11/1 20:51:00 -- 关联的问题 我很少用关联,有个问题,我父表有一个单号是通过开单日期生成的,子表同时生成一模一样的的一个单号,但是我想修改父表的开单日期,这样单号可以自动修改,但是由于单号列关联了,这个单号不能自动修改了,如何可以又可以修改父表同时修改相应的子表. [此贴子已经被作者于2011-11-1 21:02:39编辑过]
|
-- 作者:bm -- 发布时间:2011/11/1 22:12:00 -- 你不会。 在关联表设置的时候。左下角有一个同时更新关联内容, [此贴子已经被作者于2011-11-1 22:19:47编辑过]
|
-- 作者:布莱克朱 -- 发布时间:2011/11/1 22:37:00 -- 不是更新关联表的数据,是因为关联了,主表的系统单号是不能修改,必须先删除子表的关联列的数据,才能修改主表的. 我问问有无办法?直接修改主表和子表.
|
-- 作者:gaoyong30000 -- 发布时间:2011/11/1 22:44:00 -- 用动态关联 然后代码取消关联后修改完 再用代码动态关联上? |
-- 作者:布莱克朱 -- 发布时间:2011/11/1 23:03:00 -- 这个有一些复杂,我看看 |
-- 作者:czy -- 发布时间:2011/11/1 23:12:00 -- 应该可以自动修改的。 两表以单号建立关联,设置关联时勾选“同步更新关联列内容”,这样设置后更改主表的日期可以更新单号列的内容,同样也可以更新子表单号列的内容。
|
-- 作者:blackzhu -- 发布时间:2011/11/2 7:38:00 -- 可以的吗?是单向还是双向,我测试不行啊,我试试!
|
-- 作者:blackzhu -- 发布时间:2011/11/2 8:03:00 -- 我测试一下是可以,是不是我的代码在修改日期时,不能自动修改单号,帮我看看: If e.DataCol.Name = "开单日期" Then If e.DataRow.IsNull("开单日期") Then e.DataRow("系统单号")= Nothing Else Dim cmd1 As New SQLCommand Dim dt1 As DataTable Dim dr As DataRow cmd1.C cmd1.CommandText = "SELECT * From {单号定义}" dt1 = cmd1.ExecuteReader() dr = dt1.find("表名=\'" & CurrentTable.Name & "\'") If dr IsNot Nothing Then Dim s As String =dr("单号定义") & Format(e.DataRow("开单日期"),"yyMMdd") Dim cmd As New SQLCommand Dim dt As DataTable cmd.C cmd.CommandText = "SELECT * From {销售订单}" dt = cmd.ExecuteReader() If e.NewValue <> Nothing And e.DataRow("系统单号") = Nothing Then Dim i1 As String = dt.Compute("Max(系统单号)","开单日期 =\'" & e.DataRow("开单日期") & "\'") Dim n As Integer If s = left(i1,8) Then n=CInt(right(i1,4)) Else n=0 End If s= s & format(n+1,"0000") e.DataRow("系统单号")=s End If End If End If End If |
-- 作者:blackzhu -- 发布时间:2011/11/2 8:31:00 -- Dim cmd As New SQLCommand cmd.C Dim dt As DataTable cmd.CommandText = "SELECT * From {权限控制} Where [Group] = \'" & _UserGroup & "\' And 项目 =\'权限\' And 修改 =False" dt = cmd.ExecuteReader() If dt.DataRows.Count > 0 Then e.Cancel = True MessageBox.show("你没有权限修改开单日期!","权限被控!") End If 这段代码我想放在日期控件里面,放在那个控件比较好,绑定字段,但是现在点一下出来两次提示.
|
-- 作者:blackzhu -- 发布时间:2011/11/2 8:36:00 -- 而且不能修改日期. |