Delphi cxgrid使用cxDateEdit扩展分组数据
我在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
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,则显示您的消息