起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 233|回复: 7

【搞定】分组展开**

[复制链接]
发表于 2007-7-5 17:13:35 | 显示全部楼层 |阅读模式
问题1:能否有代码能控制在一打开功能的时候就自动把各个分组展开
问题2:导出excel时,能否不展开组就能把组里的表格导出
回复

使用道具 举报

 楼主| 发表于 2007-7-5 17:15:52 | 显示全部楼层
问题3:在datagrid中怎么分组
回复 支持 反对

使用道具 举报

发表于 2007-7-5 17:24:31 | 显示全部楼层
问题一:DataGrid1.FullExpand

问题二:你用代码自动展开下就行了。如果不让展开,而导出excel,好像没有办法

问题三 http://bbs.justep.com/forum.php? ... grid%2A%B7%D6%D7%E9
DataGrid.ColumnByName('DataGridBE1').GroupIndex := 0;
   DataGrid.ColumnByName('DataGridBE2').GroupIndex := 1;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-5 17:28:16 | 显示全部楼层
DataGrid1.FullExpand这个加在datagrid上还是功能的代码里
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-5 17:33:52 | 显示全部楼层
我把代码加到如下事件里,打开功能时特别慢
在业务信息层加的打码如下:
procedure TYBPCB.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 not (ASelected or AFocused) then
    begin
      if (ANode.Index mod 2) = 1 then
        AColor := $0F0F0F0;
    end;

  DataGrid.FullExpand;

if ANode.HasChildren then
  begin
    //AColor := $0F0E0F0;
    //AFont.Size := AFont.Size + 2;
    AText := StringUtils.Copy(AText, StringUtils.Pos(':', AText) + 2, 10);
  end;

end;
回复 支持 反对

使用道具 举报

发表于 2007-7-5 17:53:01 | 显示全部楼层
datagrid分组显示时,并没有把数据全部取到客户端。
DataGrid.FullExpand;后,数据会一次取到客户端来,这样速度肯定慢了。

可以在打印前展开。
回复 支持 反对

使用道具 举报

发表于 2007-7-13 14:25:15 | 显示全部楼层
楼主还有问题吗?请反馈
回复 支持 反对

使用道具 举报

发表于 2007-8-6 17:30:07 | 显示全部楼层
由于长时间没有反馈,先结贴了!
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-1-13 14:02 , Processed in 0.036313 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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