2015-05-06 39 views
0

我在cxGrid中顯示的數據按日期分類(摺疊)。 有沒有一種方法可以使用cxDateEdit爲這個場合擴展這個分組數據「僅」爲一個選定的日期?cxgrid使用cxDateEdit展開分組數據

現在,我能管理是collapes或使用按鈕展開所有數據:

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存在。

+0

不能測試它,因爲我沒有獲得* * DevExpress的當前,但我認爲是通過擴大選擇的記錄細節做到這一點的可能性。就像'cxGrid1DBTableView1.ViewData.Records [i] .Expand(true)'。 –

+0

定位返回一個布爾值。如果沒有找到記錄(即您的日期),則返回False。所以如果它返回False,顯示你的消息 – Jason

回答

0

明白了:

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;