让cxGrid扩展当前日期

时间:2013-03-08 23:11:21

标签: delphi devexpress delphi-xe2 delphi-xe

我按日期制作了我的网格组(抓住了列名并将其拖到“按该列分组”的位置)。但是,当显示网格时,所有日期都“关闭”,因此我必须展开它们以查看数据。这没关系,但我想知道是否可以扩展当前日期(所有其他日期应该保持关闭!)所以我不必点击展开交叉?

2 个答案:

答案 0 :(得分:0)

试试这个,您可以将代码放在其他事件处理程序中,例如TButton

procedure TForm1.FormCreate(Sender: TObject);
begin
    //aDBTableView1.ViewData.Expand(true);            // this is how to expand all records 
    aDBTableView1.ViewData.Records[YourRecordNumber].Expand(true);   // this is how to expand by a given record
end;

确定尝试以下

procedure TForm1.FormCreate(Sender: TObject);
begin
  with cxGrid1DBTableView1 do
  begin
    DataController.DataSource.DataSet.Locate('YourDateFieldName',DateTimeToStr(Date),
    [loPartialKey]);
    ViewData.Records[DataController.FocusedRowIndex].Expand(True);
  end;
end;

答案 1 :(得分:0)

procedure TForm1.Button1Click(Sender: TObject);
var
  intLoop,
  vValue: Variant;
begin
  for intLoop := 0 to self.cxGrid1DBTableView1.DataController.RowCount - 1 do
  begin
    if self.cxGrid1DBTableView1.ViewData.Rows[IntLoop] is TcxGridGroupRow then
    begin
      if TcxGridGroupRow(cxGrid1DBTableView1.ViewData.Rows[IntLoop]).Level = cxGrid1DBTableView1MyDate.GroupIndex  then
      begin
        vValue:=TcxGridGroupRow(cxGrid1DBTableView1.ViewData.Rows[IntLoop]).Value ;
        if vValue = Date() then
        begin
          TcxGridGroupRow(cxGrid1DBTableView1.ViewData.Rows[intLoop]).Expand(False);
        end;
      end;
    end;
  end;
end;