实现自动输入的基本原理是:
1、有一个基础数据表,输入所有的基础信息,例如订单管理系统中,产品表会输入所有的产品信息。
2、在另一个表输入某关键列的内容,然后自动从基础数据表提取其它列的内容输入到相关列中,例如在订单表输入产品编号,可以从产品表提取该产品的名称、型号、规格,自动输入到订单表的相关列中。
示例一
例如希望在订单表输入产品编号,能够从产品表提取该产品的名称、型号、规格,自动输入到订单表的相关列中。
为实现此目的,可在订单表的DataColChanged事件中输入如下代码:
If
e.DataCol.Name = "产品编号" Then '发生变化的是产品编号吗?如果希望在产品表修改了某产品的品名、型号或规格后,能自动更新订单表中的品名、型号、规格,可以在产品表的DataColChanged事件中加入代码:
Select
Case e.DataCol.Name
Case
"品名","型号","规格"
Dim Filter
As
String =
"[产品编号] = '" & e.DataRow("编号")
& "'"
Dim drs
As
List(Of DataRow) =
DataTables("订单").Select(Filter)
For
Each dr
As
DataRow
In drs
dr(e.DataCol.Name)
= e.DataRow(e.DataCol.Name)
Next
End
Select
或者:
Select
Case e.DataCol.Name
Case
"品名","型号","规格"
Dim Filter
As
String =
"[产品编号] = '" & e.DataRow("编号")
& "'"
Dim nm
As
String =
e.DataCol.Name
DataTables("订单").ReplaceFor(nm,
e.DataRow(nm),
Filter)
End
Select
示例二
假定项目中有一个名为“行政区域”的基础数据表,分别是省市、市县、区号、邮编,这个表已经输入了全国所有县级行政区域的资料;现在我们在客户表中输入数据,假定客户表也有这么四列,希望输入省市、县市两列的内容后,区号、邮编能够自动输入。
为实现此目的,可在客户表的DataColChanged事件中输入如下代码:
'如果刚刚输入的是省市或县市列
代码逻辑很清晰,配合注释,你应该很容易理解。