示例二
本示例请参考CaseStudy目录下的示例文件“自动输入.Table”。
假定项目中有一个名为“行政区域”的基础数据表,这个表已经输入了全国所有县级行政区域的资料,包括省市、市县、区号、邮编四列;现在我们在客户表中输入数据,假定客户表也有这么四列,显然最好的输入方式是,客户表省市列能够根据行政区域表的设置,列出所有的省市供选择,选择省市之后,市县列能列出该省市所有的市县供选择,而选择市县之后,区号和邮编能够自动输入。
区号和邮编的自动输入,我们将在后续章节中介绍,我们现在看看如何利用PrepareEdit实现动态的列表项目。
1、先在项目事件AfterOpenProject中设置如下代码:
Tables("客户").Cols("省市").Combolist =
DataTables("行政区域").GetComboListString("省市")
这样每次打开项目,就会自动从行政区域表提取不重复的省市名称,作为客户表省市列的列表项目。
2、在客户表的PrepareEdit事件中输入如下代码:
If e.Col.Name = "县市"
Then
'如果正在编辑的是县市列
'从行政区域表提取该省市的县市作为列表项目
e.Col.Combolist = DataTables("行政区域").GetComboListString("县市",
"[省市] = '" & e.Row("省市") & "'")
End
If
这样在客户表县市列输入内容的时候,会自动根据已经输入的省市,列出该省市的全部县市供选择。