让dbgrid连接复杂sql语句时显示正常值
lazarus的dbgrid连接数据集后,如果数据集的sql使用了一些复杂的select子句,显示数据会出现MeMo字样,可以这样修正:
1、在窗口类中定义事件句柄:
private
procedure DBTableDataGetText(Sender: TField;var AText: String;DisplayText: Boolean);
public
2、写句柄:
procedure TOfficeFM.DBTableDataGetText(Sender: TField; var aText: String;
begin
aText:=Sender.AsString;
end;
3、给显示Memo字段赋值:
FDQDhJN.FieldByName('S1').OnGetText:=@DBTableDataGetText;
4、赋值后,想字段显示小数:
procedure TOfficeFM.DBTableDataGetText(Sender: TField; var aText: String;
DisplayText: Boolean);
var
AStr:string;
AInt:Integer;
AFlo:Double;
begin
AStr:=Sender.AsString;
IF TryStrToInt(Astr,AInt) then aText:= Astr+'.00'
Else IF TryStrToFloat(Astr,AFlo) then
begin
AStr:=FormatFloat('0.00',AFlo);
aText:=AStr;
end
Else
aText:=AStr ;
end;
浙公网安备 33010602011771号