Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
下载信息 [文件大小: 下载次数: ] | |
点击浏览该文件:管理项目.table |
实现自动输入的基本原理是:
1、有一个基础数据表,输入所有的基础信息,例如订单管理系统中,产品表会输入所有的产品信息。
2、在另一个表输入某关键列的内容,然后自动从基础数据表提取其它列的内容输入到相关列中,例如在订单表输入产品编号,可以从产品表提取该产品的名称、型号、规格,自动输入到订单表的相关列中。
示例一
例如希望在订单表输入产品编号,能够从产品表提取该产品的名称、型号、规格,自动输入到订单表的相关列中。
为实现此目的,可在订单表的DataColChanged事件中输入如下代码:
If
e.DataCol.Name = "产品编号" Then '发生变化的是产品名称吗?示例二
假定项目中有一个名为“行政区域”的基础数据表,分别是省市、市县、区号、邮编,这个表已经输入了全国所有县级行政区域的资料;现在我们在客户表中输入数据,假定客户表也有这么四列,希望输入省市、县市两列的内容后,区号、邮编能够自动输入。
为实现此目的,可在客户表的DataColChanged事件中输入如下代码:
'如果刚刚输入的不是省市或县市列
代码有点长,但是逻辑很清晰,配合注释,你应该很容易理解。
各有各的用途。
老大的代码总是简单实用,佩服。
办法真够笨的........只是把9000多列选择减少到9000/26=300多列选择....
还是前面的方法好,只是要完全输入代码才能出现名称,麻烦了点...
难道没有更好的方法?快速录入功能是比较普遍的应用啊........FOX老爹能不能加强一下这方面的功能?
凡事总有个度吧,你不可能要求十万八万行形成列表能飞快起来!要学会变通!
两者结合吧: Or 输入码首再选择列表 Or 在疾病列输入编码 Or 在疾病列输入疾病名称
if e.Datacol.name = "疾病" Then
Dim Da As DataTable = DataTables("疾病")
Dim dr As DataRow
Dim T1,T2 As String
T1=e.DataRow("疾病")
T2="[输入码] = '" & T1 & "'"
IF T1.indexof("→") >-1 Then
e.DataRow("疾病") = T1.split("→")(1)
ElseIF Asc(T1) > 64 And Asc(T1) < 91 and Asc(Right(T1,2)) > 64 And Asc(Right(T1,2)) < 91 Then
dr = Da.Find(T2)
if dr IsNot Nothing Then
e.DataRow("疾病") = dr("疾病名称")
Else
MessageBox.Show("『输入码』输入有誤!請檢查.", "提示")
End If
ElseIF Da.Find("[疾病名称] = '" & T1 & "'") is Nothing Then
MessageBox.Show("『疾病名称』输入有誤!請檢查.", "提示")
End If
End If