Delphi cxgrid使用cxDateEdit扩展分组数据

Delphi cxgrid使用cxDateEdit扩展分组数据,delphi,devexpress,delphi-xe7,tcxgrid,Delphi,Devexpress,Delphi Xe7,Tcxgrid,我在cxGrid中显示的数据按日期分组(折叠)。 是否有一种方法可以在特定情况下使用cxDateEdit“仅”扩展选定日期的分组数据 现在,我所能做的就是使用按钮折叠或展开所有数据: procedure TArchive.EXPANDClick(Sender: TObject); begin cxGrid1DBTableView1.ViewData.Expand(True); end; procedure TArchive.COLLAPSEClick(Sender: TObject); be

我在cxGrid中显示的数据按日期分组(折叠)。 是否有一种方法可以在特定情况下使用cxDateEdit“仅”扩展选定日期的分组数据

现在,我所能做的就是使用按钮折叠或展开所有数据:

procedure TArchive.EXPANDClick(Sender: TObject);
begin
cxGrid1DBTableView1.ViewData.Expand(True);
end;


procedure TArchive.COLLAPSEClick(Sender: TObject);
begin
cxGrid1DBTableView1.ViewData.Collapse(True);
end;
我只想展开cxDateEdit中显示的日期的记录。如果没有找到所需日期的数据,则可能会显示一条消息

编辑: 我找到了这样做的方法:

procedure TARCHIVE.cxDateEdit1PropertiesChange(Sender: TObject);
begin
with cxGrid1DBTableView1 do
  begin
    DataController.DataSource.DataSet.Locate('FOR_DATE',cxDateEdit1.Date,
    [loPartialKey]);
    ViewData.Records[DataController.FocusedRowIndex].Expand(True);
end;
end;
但是,如果cxGrid中不存在cdDateEdit中显示的日期,我不知道如何刷新消息

明白了:

    procedure TARCHIVE.cxDateEdit1PropertiesChange(Sender: TObject);
    begin
    with cxGrid1DBTableView1 do
    begin
    if   DataController.DataSource.DataSet.Locate('FOR_DATE',cxDateEdit1.Date,
        [loPartialKey]) then begin
        ViewData.Records[DataController.FocusedRowIndex].Expand(True);
    end else begin
    ShowMessage('No entries for desired date.');
    end;
    end;
    end;

无法测试它,因为我目前无法访问DevExpress,但我认为可以通过扩展选定的记录详细信息来实现这一点。类似于
cxGrid1DBTableView1.ViewData.Records[i].Expand(true)
.Locate返回一个布尔值。如果未找到记录(即您的日期),则返回False。因此,如果返回False,则显示您的消息