【问题标题】:Expand only selected groups i DevExpress grid在 DevExpress 网格中仅展开选定的组
【发布时间】:2012-08-15 04:11:00
【问题描述】:

我有一个 DevExpress 网格,我想在其中扩展一些包含特定值的组。 我对年和周进行了分组,我只想将当前年份和当前周扩展为默认值。 我一直在寻找一些提示,但还没有找到。

【问题讨论】:

    标签: delphi datagrid devexpress grouping


    【解决方案1】:

    这个问题“有点”老了,但既然你仍然活跃,我会回答它。

    为简单起见,我只使用了两列:“年份”和“人口”,因此仅按“年份”分组。

    这是一个示例应用程序的屏幕截图:

    1. 您会看到初始数据。
    2. 我正在使用“年份”列对行进行分组。
    3. 我正在扩展“年份”= 1 的组,我假设当前年份 = 1。

    
    procedure TfrmMain.btnExpandClick(Sender: TObject);
    const
      CurrentYear = 1;
    var
      i: Integer;
    begin
      for i := 0 to tbvMain.ViewData.RowCount - 1 do
      begin
        // Check if a row is a grouping row.
        if not tbvMain.ViewData.Rows[i].IsData then
        begin
          // Check if a grouping value is the one that you want expanded.
          if tbvMain.ViewData.Rows[i].Values[clmYear.Index] = CurrentYear then
            tbvMain.ViewData.Rows[i].Expand(False);
        end;
      end;
    end;
    
    

    procedure TfrmMain.FormCreate(Sender: TObject); var i: Integer; begin // Prepare some random data. Randomize; tbvMain.DataController.RecordCount := 10; for i := 0 to tbvMain.DataController.RecordCount - 1 do begin tbvMain.DataController.Values[i, clmYear.Index] := Random(3) + 1; tbvMain.DataController.Values[i, clmPopulation.Index] := Random(100); end; end;

    这里的关键是检查给定的行是否是数据。如果不是数据,那么它是一个分组行,为此您需要使用tbvMain.ViewData.Rows[i].IsData

    您可以找到完整的源代码here。请注意,我使用的是 Delphi 2009 和 Dev Express build 56。

    【讨论】:

    • 我完全忘记了这个问题 :-) 我会试试你的代码并返回
    • 当然可以,希望对您有所帮助:-)
    • 很抱歉之前没有回来——最近发生了很多事情。
    • 你有没有做过这样的事情,比如有 2 个组列,然后只折叠第二个? View1.ViewData.Collapse 折叠所有内容,但我想控制折叠哪一列。
    • 对不起,我不知道该怎么做。也许你应该在 devexpress 论坛上提问(他们有很大的支持),或者在这里提出另一个问题,用更好的例子来说明你想要完成的事情。
    【解决方案2】:

    你尝试过这样的事情吗?

    TableView1.ViewData.Records[0].Expand(true)
    

    如果当前年份是第一年,否则将0替换为正确的记录号

    【讨论】:

    • 一直在寻找那个方向,但运气不佳
    • 你确定吗?您是否使用 GroupIndex 进行分组?在我所有的网格中工作!
    • 我一直在努力,但我根本无法破解这个 - 无论我怎么做都行不通。
    猜你喜欢
    • 1970-01-01
    • 2012-07-25
    • 2012-08-07
    • 1970-01-01
    • 2016-12-05
    • 1970-01-01
    • 2013-10-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多