cxgrid расширяет сгруппированные данные с помощью cxDateEdit

Мои отображаемые данные в 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;

Однако я не могу понять, как вывести сообщение, если дата, отображаемая в cdDateEdit, не существует в cxGrid.


person user763539    schedule 06.05.2015    source источник
comment
Не могу проверить это, так как в настоящее время у меня нет доступа к DevExpress, но я думаю, что была возможность сделать это, расширив выбранную деталь записи. Что-то вроде cxGrid1DBTableView1.ViewData.Records[i].Expand(true).   -  person Guillem Vicens    schedule 06.05.2015
comment
Locate возвращает логическое значение. Возвращает False, если запись не найдена (также известная как ваша дата). Поэтому, если он возвращает False, покажите свое сообщение   -  person Jason    schedule 07.05.2015


Ответы (1)


Понятно :

    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;
person user763539    schedule 06.05.2015