DBGrid如何将true边为中文的真或者其他值?(100分)

  • 主题发起人 主题发起人 userful
  • 开始时间 开始时间
U

userful

Unregistered / Unconfirmed
GUEST, unregistred user!
DBGrid如何将true边为中文的真或者其他值?还有如何过滤一些记录。比如小于0的数据不显示。但是数据原里边有。
 
不明白你的意思,数据小于0不显示。查询的时候。直接 where '字段'>0;
要把TRUN变为其他值。可以使用替换。也可以使用SQL语句修改。
 
我知道。但是我只需要对dbgrid里面控制。。数据原里面有大于0也有小于0的
还有如何替换boolean的值为其他的?
 
加个计算字段啊, 在计算事件里对计算字段进行赋值。这是DELPHI的数据库操作中非常重要的也非常基本的一个技能。
 
可以再数据集上用filter进行过滤
显示中文可以加入一个计算字段即可
 
对DBGrid关联的数据集字段做处理吧。
在TField.OnGetText中作一下转换动作,如:
procedure TForm1.ClientDataSet1NameGetText(Sender: TField;
var Text: String; DisplayText: Boolean);
begin
if Sender.IsNull then
exit;
if Sender.AsBoolean then
Text:='是'
else
Text:='否';
end;
 
处理DBGrid的OnDrawColumnCell事件:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if Column.ID = 0 then
if Column.Field.AsInteger < 0 then
DBGrid1.Canvas.FillRect(Rect); //仅填充当前格,不写任何文字;
if Column.ID = 1 then
begin
DBGrid1.Canvas.FillRect(Rect); //填充背景
if Column.Field.AsBoolean then
DBGrid1.Canvas.TextRect(Rect, 2, 2, '是') //可以做一下其它处理,比如居中
else
DBGrid1.Canvas.TextRect(Rect, 2, 2, '否');
end;
end;
 
后退
顶部