老师,有两张表,一张是信息表,另一张是资产表。资产表中有A类,A类编码,B类,B类编码,C类,C类编码等,同时信息表中也有这些相应的字段,
然后在录入资产表的时候,A类,B类,C类都是从后台数据库中取到的,然后我想实现,当填入A类时,顺便将A类所对应的A类编码也自动从后台数据库中取过来填到资产表中。之前我是通过将信息表加载过来后实现的,代码如下。
Select Case e.DataCol.Name
Case "A类"
Dim dr As DataRow = DataTables("信息表").Find("A类='"& e.DataRow("A类") &"'")
e.DataRow("A类编码") = dr("A类编码")
Case "B类"
Dim dr As DataRow = DataTables("信息表").Find("B类='"& e.DataRow("B类") &"'")
e.DataRow("B类编码") = dr("B类编码")
e.DataRow("C类编码") = dr("C类编码")
'
Case "C类"
Dim dr As DataRow = DataTables("信息表").Find("C类='"& e.DataRow("C类")
e.DataRow("C类编码") = dr("C类编码")
Case "A类编码","B类编码","C类编码"
Dim dr As DataRow = e.DataRow
Dim pr As DataRow
If dr.IsNull("A类编码") OrElse dr.IsNull("B类编码") OrElse dr.IsNull("C类编码") Then
dr("顺序号") = Nothing
Else
Dim bh As String = e.DataRow("A类编码") & e.DataRow("B类编码") & e.DataRow("C类编码") '生成编号的前缀
If e.DataRow("资产编码").StartsWith(bh) = False '如果编号前缀不符
Dim max As String
Dim idx As Integer
Dim flt As String
flt = "A类编码 = '"& e.DataRow("A类编码") & "' And B类编码 = '"& e.DataRow("B类编码") & "' And C类编码 = '"& e.DataRow("C类编码") & "' And [_Identify] <> " & e.DataRow("_Identify")
max = e.DataTable.Compute("Max(资产编码)",flt) '取得该类资产编码的最大编号
If max > "" Then '如果存在最大编号
idx = CInt(max.Substring(4,3)) + 1 '获得最大编号的后三位顺序号,并加1
Else
idx = 1 '否则顺序号等于1
End If
e.DataRow("顺序号") = Format(idx,"000")
e.DataRow("资产编码")= e.DataRow("A类编码") & e.DataRow("B类编码") & e.DataRow("C类编码") & e.DataRow("顺序号")
'
End If
End If
'
End Select
但这样写的话,必须要将信息表从后台加载过来才能取到A类编码的值,否则的话取不到,我现在填入A类的时候,直接将A类编码从后台判断取过来,这样的功能应该怎么才能实现呀。
'