表B是父表,表A是子表
子表里根据工序的不同 行的颜色不同, 我想让父表里根据货号完成的工序 也变成同样的颜色。
大神啊 求教啊!
首先非常感谢 muhua 大神的指点
根据实例 我明白了方法 但是我实例做出来之后却达不到那样效果。还请赐教!
以下是我的代码:
子表属性:
datacolchanged 方法:
Select Case e.DataCol.Name
Case "磨床","镀铜","电雕","镀铬","打样","出厂"
Dim dr As DataRow = DataTables("定版记录").Find("版号=" & e.DataRow("版号"))
If e.DataRow("出厂") = True Then
dr("到达工序") = "出厂"
ElseIf e.DataRow.IsNull("打样") = False Then
dr("到达工序") = "打样"
ElseIf e.DataRow.IsNull("镀铬") = False Then
dr("到达工序") = "镀铬"
ElseIf e.DataRow.IsNull("电雕") = False Then
dr("到达工序") = "电雕"
ElseIf e.DataRow.IsNull("研磨") = False Then
dr("到达工序") = "研磨"
ElseIf e.DataRow.IsNull("镀铜") = False Then
dr("到达工序") = "镀铜"
ElseIf e.DataRow.IsNull("磨床") = False Then
dr("到达工序") = "铁芯完成"
End If
End Select
drawcell 方法:
If e.Row("磨床") <> Nothing Then
e.Style = "铁芯完成"
End If
If e.Row("镀铜") <> Nothing Then
e.Style = "镀铜"
End If
If e.Row("研磨") <> Nothing Then
e.Style = "研磨"
End If
If e.Row("电雕") <> Nothing Then
e.Style = "电雕"
End If
If e.Row("镀铬") <> Nothing Then
e.Style = "镀铬"
End If
If e.Row("打样") <> Nothing Then
e.Style = "打样"
End If
If e.Row("出厂") = True Then
e.Style = "完成"
End If
父表属性还没设置,这个代码出现的问题是子表在工序里输入后 父表的“到达工序”里不显示所设置的数据,并且提示:
运行错误: 调用的目标发生了异常。
.NET Framework 版本:2.0.50727.5466
Foxtable 版本:2012.11.29.1
错误所在事件:表,工作记录,DataColChanged
详细错误信息:
System.Reflection.TargetInvocationException: 调用的目标发生了异常。 ---> System.Data.SyntaxErrorException: 语法错误:“A124”运算符后缺少操作数。
在 System.Data.ExpressionParser.Parse()
在 System.Data.DataExpression..ctor(DataTable table, String expression, Type type)
在 System.Data.Select..ctor(DataTable table, String filterExpression, String sort, DataViewRowState recordStates)
在 System.Data.DataTable.Select(String filterExpression, String sort)
在 Foxtable.DataTable.Find(String OOlO11Oll10llO11, String O11l, Int32 OOO0O)
在 UserCode.DataColChanged(DataColEventArgs e)
--- 内部异常堆栈跟踪的结尾 ---
在 System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
在 System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
在 Foxtable.DataTable.O0ll10O00l0O11011l0110O0(Object O01Ol1, DataColumnChangeEventArgs O)
————————————————————————————————————————————————————————————
还出现这个,这两个的版号是不一样的。
.NET Framework 版本:2.0.50727.5466
Foxtable 版本:2012.11.29.1
错误所在事件:表,工作记录,DataColChanged
详细错误信息:
System.Reflection.TargetInvocationException: 调用的目标发生了异常。 ---> System.Data.EvaluateException: 无法在 System.String 和 System.Int32 上执行“=”操作。
在 System.Data.BinaryNode.SetTypeMismatchError(Int32 op, Type left, Type right)
在 System.Data.BinaryNode.BinaryCompare(Object vLeft, Object vRight, StorageType resultType, Int32 op, CompareInfo comparer)
在 System.Data.Select.Eval(BinaryNode expr, DataRow row, DataRowVersion version)
在 System.Data.Select.Evaluate(Int32 record)
在 System.Data.Select.FindFirstMatchingRecord()
在 System.Data.Select.GetBinaryFilteredRecords()
在 System.Data.Select.SelectRows()
在 System.Data.DataTable.Select(String filterExpression, String sort)
在 Foxtable.DataTable.Find(String OOlO11Oll10llO11, String O11l, Int32 OOO0O)
在 UserCode.DataColChanged(DataColEventArgs e)
--- 内部异常堆栈跟踪的结尾 ---
在 System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
在 System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
在 Foxtable.DataTable.O0ll10O00l0O11011l0110O0(Object O01Ol1, DataColumnChangeEventArgs O)
[此贴子已经被作者于2013-4-9 23:51:46编辑过]