请教专家:前面我请教的问题,关于跨表调用数据,我将编码复制到另外一个类似的表中,所有列的属性一致,都是数值列。然后在下面位置加上MessageBox
Select Case e.DataCol.Name
Case "本工序_交付日期","本工序_投产日期"
If e.DataRow.IsNull("本工序_投产日期") OrElse e.DataRow.IsNull("本工序_交付日期") Then
e.DataRow("本工序_安排生产天数_天")=Nothing
Else
Dim tp As TimeSpan = e.DataRow("本工序_交付日期") - e.DataRow("本工序_投产日期")
e.DataRow("本工序_安排生产天数_天")=tp.TotalDays+1
End If
Case "品种_杆径","品种_长度","日生产能力_杆体探伤"
Dim dr As DataRow = e.DataRow
Dim pr As DataRow
If dr.IsNull("品种_杆径") OrElse dr.IsNull("品种_长度") Then
dr("日生产能力_杆体探伤") = Nothing
Else
Dim filter As String
filter = "品种_杆径 = '" & dr("品种_杆径") & "' And 品种_长度 = '" & dr("品种_长度") & "'And 日生产能力_杆体探伤 = '" & dr("日生产能力_杆体探伤") & "'"
MessageBox.Show(filter)
pr = DataTables("工序能力表").Find(filter)
MessageBox.Show(filter)
If pr IsNot Nothing Then
dr("日生产能力_杆体探伤") = pr("日生产能力_杆体探伤")
End If
End If
End Select
第一次显示结果 ”品种_杆径 = "02(φ16)"And 品种_长度 = "8.00"And 日生产能力_杆体探伤 = "0",这是显示的“排产表”中的数据,
第二次显示结果应该是"工序能力表"中的数据,而在该表中,我在“日生产能力_杆体探伤”列输入的数据为1000,但显示的结果同第一次的一样,为: ”品种_杆径 = "02(φ16)"And 品种_长度 = "8.00"And 日生产能力_杆体探伤 = "0",没有显示1000,“排产表”中的数据也没有变化。
请教问题出在哪里?
此外,如果表达式列不能触发DataColChanged事件,我应该在哪里实现上述功能(我必须保留表达式列)。
[此贴子已经被作者于2015/11/17 9:06:53编辑过]