起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 242|回复: 8

【结贴】datagrid分组后,组内记录的颜色改变

[复制链接]
发表于 2010-6-3 15:10:28 | 显示全部楼层 |阅读模式
未分组前,界面根据记录的值,改变颜色正常。
分组后,组内记录的颜色,改变不正常。
前3条记录是白色,分组后整前3条记录应该是白色,确变成了绿色。
见下图:

分组前.jpg

183.74 KB, 下载次数: 121

回复

使用道具 举报

 楼主| 发表于 2010-6-3 15:12:11 | 显示全部楼层
分组后

分组后.jpg

188.38 KB, 下载次数: 118

回复 支持 反对

使用道具 举报

发表于 2010-6-3 15:13:24 | 显示全部楼层
那是少了一些判断吧,参考
http://bbs.justep.com/forum.php?mod=viewthread&tid=18101
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-6-3 15:39:02 | 显示全部楼层
procedure TJBXXWG.DataGridCustomDrawCell(Sender: TObject; ACanvas: TCanvas; ARect: TRect; ANode: TTreeListNode; AColumn: TTreeListColumn; ASelected, AFocused, ANewItemRow: Boolean; var AText: string; var AColor: Integer; AFont: TFont; var AAlignment: TAlignment; var ADone: Boolean);
begin
  if DataSetBrokerSBJBXX.DataSet.FieldByName('jxfzxs').AsInteger=0 then
    AColor:=Graphics.clMoneyGreen;
end;
我的代码如上面。分组后,如果我的记录移到DataSetBrokerSBJBXX.DataSet.FieldByName('jxfzxs').AsInteger=0的记录,整个分组变为绿色,如果我如果我的记录移到DataSetBrokerSBJBXX.DataSet.FieldByName('jxfzxs').AsInteger=1的记录,整个分组变为白色。
回复 支持 反对

使用道具 举报

发表于 2010-6-3 16:08:10 | 显示全部楼层
看3楼代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-6-3 16:11:38 | 显示全部楼层
3楼的代码我看了,jxfzxs字段不在DataGrid的列里面,我不知道怎么会乱。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-6-3 17:18:35 | 显示全部楼层
procedure TJBXXWG.DataGridCustomDrawCell(Sender: TObject; ACanvas: TCanvas; ARect: TRect; ANode: TTreeListNode; AColumn: TTreeListColumn; ASelected, AFocused, ANewItemRow: Boolean; var AText: string; var AColor: Integer; AFont: TFont; var AAlignment: TAlignment; var ADone: Boolean);
var
  I:Integer;
begin

   { begin
    if DataSetBrokerSBJBXX.DataSet.FieldByName('jxfzxs').AsInteger=0 then
      AColor:=Graphics.clMoneyGreen
    end }

  for I := 0 to DataGrid.ColumnCount - 1 do
  begin
//循环取列找到相应的项(由于列允许移动位置和分组,所以不能固定),并判断其值
    if (DataGrid.Columns[I].FieldName = 'JXFZXS') then
    begin
      if (SysUtils.trim(ANode.Strings[I])='0') then
      begin
        AColor := Graphics.clMoneyGreen;
        Break;
      end;
    end;
  end;
end;
将JXFZXS字段加入DataGrid,将该列Visible=False
改为上面的代码,实现了组内分组的颜色改变。
回复 支持 反对

使用道具 举报

发表于 2010-6-4 14:00:04 | 显示全部楼层
谢谢楼主分享,还有别的问题么?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-6-4 15:52:35 | 显示全部楼层
没有别的问题,结贴。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-9 04:23 , Processed in 0.044133 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表