有两个DBGRID:A,DBGRID:B,都是有相同的5个字段
现在要把两个DBGRID的记录逐行按字段逐个比较,只要B的字段值对应A的字段不相等的,那么该DBGRID相应的格子就以红色来显示是不是好麻烦?我想不出来
现在要把两个DBGRID的记录逐行按字段逐个比较,只要B的字段值对应A的字段不相等的,那么该DBGRID相应的格子就以红色来显示是不是好麻烦?我想不出来
解决方案 »
- excel 替换或者导入
- 程序里如何根据数据库的不同而执行不同SQL语句?
- Access 表的文本字段类型 用adotablesource.Fields[i].datatype显示出来应是什么?如何将它显示在edit1里
- 大家推荐几个高手的blog 收藏 收藏!
- about "Remove file from project"按钮
- dbgrid的添加一个后缀字符的问题??
- 急,如何得到Listview中第4行,第3列的值
- 串口通讯—RE232,通过专线MODEM与单片机通讯
- 如何删除一个目录下的所有子目录和文件?
- 怎么实现在stringgrid中换行显示,别的控件也行!
- 关于DBGrid的一个无聊问题。有点钻牛角尖的嫌疑。
- 三方应用程序之间数据的传输能否通过消息传输,如何来完成?有最简单例子最好!
var
i : Integer;
begin
with DBGrid2.DataSource.DataSet do
begin
First;
DBGrid1.DataSource.DataSet.First;
while not Eof do
begin
for i := 0 to 4 do
begin
if Fields[i].Value <> DBGrid1.DataSource.DataSet.Fields[i].Value then
DBGrid2.Columns[i].Color := clRed;
end;
Next;
DBGrid1.DataSource.DataSet.Next;
end;
end;
end;
procedure TForm1.DBGridBDrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var fieldName: string;
dataRow: integer;
begin
fieldName := column.fieldName; //取得当前的字段名
dataRow := DBGRIDB.datasource.dataset.recno; //取得当前是画到第几行; 根据datarow找到 DBGRID.datasource.dataset 的对应行;
根据fieldName 来比较 两个grid的dataset的该字段的值;
根据比较的结果来画色
end;