关于数据感知控件的显示值与操作值 ( 积分: 100 )

  • 主题发起人 主题发起人 shaken
  • 开始时间 开始时间
S

shaken

Unregistered / Unconfirmed
GUEST, unregistred user!
在DBEdit中数据源里面的值为整型序号,但在显示时要显示为该整型序号对应的中文名称,怎么处理?即保存和读取都是整型序号,而显示则要显示为中文名称。
 
在DBEdit中数据源里面的值为整型序号,但在显示时要显示为该整型序号对应的中文名称,怎么处理?即保存和读取都是整型序号,而显示则要显示为中文名称。
 
修改datasource相应字段的event,好像是get*****,set*****
 
楼上的,不是datasource,而是dataset组件。在table或query组件里,在field的gettext里写显示代码,在settext里写保存代码。
 
偶直接改DBEdit可以吗?也是Get……或者Set……方法里面的。不过很麻烦。[:(]
 
其实你直接使用TDBLookupComboBox得了.或者在DataSet当中添加一个运算字段.然后在运算字段的响应中写代码(极反对在原始Field上操作)
 
在事件中做转换
Field.OnGetText
Field.OnSetText
 
http://www.delphibbs.com/keylife/iblog_show.asp?xid=3884
 
例如Sex字段1为男,2为女,生成静态字段,然后在OnGetText和OnSetText事件下控制

procedure TForm1.Table1CompanyGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
if Sender.Asstring=1 then
Text:='男'
else if Sender.AsString=2 then
Text:='女'
else Text=''
end;

procedure TForm1.Table1Addr2SetText(Sender: TField; const Text: String);
begin
if Text='男' then
Sender.AsString:='1'
else if Text='女' then
Sender.AsString:='2'
end;

//这只是最简单的写法,具体的写法你要与你数据表中的值对应。
 
后退
顶部