我有两个表订单主表和订单明细表,订单主表和订单明细表是关联表。
在订单主表输入数据时根据订单主表输入的订单行数在订单明细表中新增相应的行数,并且把订单主表里的客户,客户订单号和下单日期填写到订单明细表中。
我现在需要实现的功能是,新增以后如果已经保存了,那么必须输入密码才可以修改,但是在新增的时候是允许修改的。但是我的代码改来改去都不行,请帮我看下,谢谢。
此主题相关图片如下:a.jpg
订单主表 Prepareedit 代码:
Dim dr As DataRow = Tables("订单主表").Current.DataRow '取行状态
If dr.RowState <> DataRowState.Added Then
'If e.Row.IsNull("订单行数") = False And dr.RowState <> DataRowState.Added Then
e.Cancel = True
Else
e.cancel=False
End If
订单主表 Doubleclick 代码:
Dim dr As DataRow = Tables("订单主表").Current.DataRow '取行状态
Select Case E.Col.NAME
Case "客户","客户订单号","是否核销","下单日期","内部订单号","订单行数"
If dr.RowState <> DataRowState.Added Then
Dim psd As String
InputValue(psd,"修改允许验证","请输入修改密码,如无需修改请点击取消按钮") '输入密码
If psd = "123123" Then '如果密码正确
e.Table.StartEditing '强行进入编辑状态
Else
Messagebox.Show("密码错误,不允许修改","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If
Else
e.Cancel = True
End If
End Select
订单明细表 Prepareedit 代码:希望可以同时用表事件和窗口事件。窗口用的是订单主表以及订单主表和订单明细表的关联表
此主题相关图片如下:b.jpg
Select Case e.Table.Name
Case "订单明细表" '主表
e.Cancel = True
Case "订单主表.订单明细表" '关联表
Dim dr As DataRow = Tables("订单明细表").Current.DataRow '取行状态
' If e.Row.IsNull("未税总价") = False And dr.RowState = DataRowState.unchanged Then
If dr.RowState <> DataRowState.added Then
'Added Or dr.RowState = DataRowState.modified Then
e.Cancel = True
Else
e.cancel=False
End If
End Select
订单明细表 doubleclick 代码
Select Case e.Table.Name
Case "订单明细表" '主表
Dim dr As DataRow = Tables("订单明细表").Current.DataRow '取行状态
Select Case E.Col.NAME
Case "客户产品号","交货日期","订货数量","含税单价","未税单价"
If dr.RowState = DataRowState.Modified Then
e.Cancel = False
Else
Dim psd As String
InputValue(psd,"修改允许验证","请输入修改密码,如无需修改请点击取消按钮") '输入密码
If psd = "123123" Then '如果密码正确
e.Table.StartEditing '强行进入编辑状态
Else
Messagebox.Show("密码错误,不允许修改","提示!!",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If
End If
End Select
Case "订单主表.订单明细表" '关联表
Dim dr As DataRow = Tables("订单主表.订单明细表").Current.DataRow '取行状态
Select Case E.Col.NAME
Case "客户产品号","交货日期","订货数量","含税单价","未税单价"
If dr.RowState <> DataRowState.added Then
Dim psd As String
InputValue(psd,"修改允许验证","请输入修改密码,如无需修改请点击取消按钮") '输入密码
If psd = "123123" Then '如果密码正确
e.Table.StartEditing '强行进入编辑状态
Else
Messagebox.Show("密码错误,不允许修改","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If
Else
e.Cancel = True
End If
End Select
End Select
[此贴子已经被作者于2015/2/21 22:12:05编辑过]