lookup字段求教(100分)

  • 主题发起人 主题发起人 richardwu
  • 开始时间 开始时间
R

richardwu

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在有100个表,每个表都有一个id字段。
这个字段需要和另一个表中name字段关联,
所以需要在设计阶段定义lookup字段。但是难道我要定义100次么?
有没有在运行阶段生成lookup字段的好方法啊?

(由于我要修改id字段,所以不能用多表的sql语句)
 
如何动态创建Lookup字段,我过去问过,当然
最后我是自己解决的。请参见已答问题。当时
我的名字是zaoya.
 
spear兄,我试了一下,好像不成啊!下面是代码:
with DefaultFieldClasses[TFieldType(ftString)].Create(Table1) do
//DefaultFieldClasses参见vcl/db.pas
begin
//以下写KeyFields,LookupDataSet,LookupFields等属性
FieldKind := fkLookup;
FieldName := 'test';
KeyFields := 'UNITID';
LookupDataSet := Table2;
LookupKeyFields := 'UNITID';
LookupResultField := 'UNITNAME';
Name := 'test1';
end;
Table1.FieldDefs.Add('test1',
ftString,
20,
False); //具体含义见Help
with DBGrid1 do
begin
Column:=DBGrid1.Columns.Add;
Column.FieldName:='test';
end;
结果是一个空的‘test’字段在Grid中出现。
是不是我的代码有问题?请高手赐教!
 
用lookup方法不行吗?一定用查找字段的话也肯定行!
 
FieldKind := fkLookup;
Lookup:=true; //add this & try
 
Table1.FieldDefs.Add('test1', -----应该是 test
ftString,
20,
False); //具体含义见Help
 
多人接受答案了。
 
后退
顶部