2013-10-18 3 views
0

몇 가지 쿼리 결과 (cxGrid1.ActiveLevel.GridView : = cxGrid1DBTableView1 등)를 표시하는 데 사용하는 표가 있습니다. 양식을 닫으면 쿼리도 닫힙니다.양식의 닫기 cxGrid 열

그러나 마지막으로 표시된 이전 열은 계속 표시됩니다 (해당 양식으로 다시 돌아올 때). 어떻게 이러한 열의 흔적을 제거 할 수 있습니까? 나는 양식으로 돌아갈 때 빈 그리드를 원합니다.

편집 :

procedure TForm2.cxRadioGroup1Click(Sender: TObject); 
begin 
case cxRadioGroup1.ItemIndex of 
0: begin 
    with Form1.UniQuery3 do begin 
    Close; 
    sql.Clear; 
    sql.Add('select * from program_log'); 
    Open; 
    cxGrid1.ActiveLevel.GridView := cxGrid1DBTableView1; 

end; 
end; 
1: begin 
    with Form1.UniQuery4 do begin 
    Close; 
    sql.Clear; 
    sql.Add('select * from guests_log'); 
    Open; 
    cxGrid1.ActiveLevel.GridView := cxGrid1DBTableView2; 
end; 
end; 
end; 
end; 

cxGrid1DBTableView1.ClearItems; 

내가 쿼리를 다시 실행하려면 다음을 사용할 수 없습니다 컬럼의 모든 흔적을 제거 호출 : 이것은 내가 실행하는 쿼리입니다.

+0

1) 다른 검색어에 대해 표를 다시 사용한다고 말하는 것입니까? 그렇다면 "마지막으로 표시된 이전 열"을 이해합니다. 그렇지 않은 경우이 열은 자동 또는 특정 코드 또는 사용자 동작을 결정/설정 한 것입니다. 질문을 수정하십시오. –

답변

2

cxGrid1DBTableView1.ClearItems을 호출하면 모든 열이 제거됩니다. FormClose 이벤트 핸들러에서 호출하십시오. 열을 다시 작성하려면 cxGrid1DBTableView1.DataController.CreateAllItems 함수를 호출하십시오.

+0

나는 이것도 먹었지 만 항목을 지울 때 나는 그것들을 선명하게한다. 즉, 다시 열을 표시하지 않으면 쿼리를 실행한다. – user763539

+0

할당 된 데이터 소스를 기반으로 모든 열을 다시 만들려면 ** cxGrid1DBTableView1.DataController.CreateAllItems ** function을 호출하십시오. –

+0

쿼리를 다시 실행할 때 모든 항목을 두 번 열 이름으로 만듭니다. – user763539

3

이 작업을 수행하는 가장 쉬운 방법은 다른 cxgridlevel> cxGrid1dbtableview를 만드는 것입니다. 그런 다음 양식에서이 수준으로 전화를 걸어보세요.

procedure TForm2.FormShow(Sender: TObject); 
begin 
cxGrid1.ActiveLevel.GridView := cxGrid1DBTableView3; 
end; 

그리드에 아무것도 표시되지 않으므로 그리드가 비어있게됩니다.

관련 문제