问题解决。因为edgoloadallrecords属性设置后,DataSetBroker1.DataSet.FieldByName('CKR').AsString这句代码定位在记录上不变化。采用了以下方法解决。
for I := 0 to DataGrid.ColumnCount - 1 do
begin
if DataGrid.Columns[I].FieldName = 'CKR' then
begin
allckr := SysUtils.trim(ANode.Strings[I]);
if stringutils.Pos(sname,allckr) > 0 then
begin
AFont.Color := Business.System.Graphics.clBlack;
ACanvas.Font.Style := ACanvas.Font.Style - [TFontStyle.fsBold];
end
else
begin
ACanvas.Font.Style := ACanvas.Font.Style + [TFontStyle.fsBold];
end;
end;
end;