如何使用query中动态生成Field对象的OnGetText事件(70分)

  • 主题发起人 主题发起人 老莫
  • 开始时间 开始时间

老莫

Unregistered / Unconfirmed
GUEST, unregistred user!
我的表中有一个字段,其值可以为1、2、3、4,现在用一个query对它查询,
SQL语句是动态生成的,我想在显示查询结果时,对应1、2、3、4显示不
同的text,我知道如果是静态查询,可以在Field对象的OnGetText事件中
加上
DisplayText:=true;
if Sender.asstring='1' then Text:='xxx';
if Sender.asstring='2' then Text:='xxx';
if Sender.asstring='3' then Text:='xxx';
if Sender.asstring='4' then Text:='xxx';
我现在是动态的,该怎么办呢?
不要告诉我再建一个表,两个表join。

 
procedure TForm1.Get_Text_Event(Sender: TObject);
begin
DisplayText:=true;
if Sender.asstring='1' then Text:='xxx';
if Sender.asstring='2' then Text:='xxx';
if Sender.asstring='3' then Text:='xxx';
if Sender.asstring='4' then Text:='xxx';
end;

....

query1.fieldbyname('field_name').OnGetText := Get_Text_Event;
 
应该是:
procedure TForm1.Get_Text_Event(Sender: TField; var Text: string; DisplayText: Boolean);

 
eyes 快看这里
http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=146289
 
字段quantity:1,2,3,4

select substring('一二三四',quantity,2) from 表名
 
多人接受答案了。
 
后退
顶部