|
cxGrid1DBTableView에 보면
ClearItems() 함수가 있습니다.
현재 모든 칼럼을 지워줍니다.
칼럼을 처음 추가할 때 아래의 코드를 넣으세요.
cxGrid1DBTableView1->ClearItems();
예)
#include "DateUtils.hpp" //월별 마지막 날짜 구하는 함수용, DaysInMonth()
cxGrid1DBTableView1->ClearItems(); // 모두 지우기
for(int i=0; i<DaysInMonth(Now()); i++) {
TcxGridDBColumn* pDBColumn;
pDBColumn = cxGrid1DBTableView1->CreateColumn(); // 칼럼 추가
pDBColumn->Caption = IntToStr(i+1) + "일";
}
추신:
위 방법 보다는 무조건 31개 칼럼을 만들어 놓고
해당 월에 필요없는 날짜 칼럼만 숨기기하면 더 편합니다.
그러면 DB 쿼리를 하나로 가져갈 수 있습니다.
그리드그리드 님이 쓰신 글 :
: cbYear->Properties->Items->Clear(); //--------------------------------------->>여기부터
: cbYear->Properties->Alignment->Horz = taCenter;
: DBModule->Query->SQL->Text =" SELECT DISTINCT TO_CHAR(CONNECT_DATE, 'YYYY') AS YEAR "
: " FROM PERIOD "
: " ORDER BY YEAR DESC ";
: DBModule->Query->Open();
: cbYear->Properties->BeginUpdate();
: while (!DBModule->Query->Eof) {
: AnsiString sVal = DBModule->Query->FieldByName("YEAR")->AsAnsiString;
: cbYear->Properties->Items->Add(sVal);
: cbYear->Properties->DropDownListStyle = lsFixedList;
: DBModule->Query->Next();
: }
: cbYear->Properties->EndUpdate();
: DBModule->Query->Close();
: cbYear->ItemIndex = 0; //------------------------------------------------->>여기까지
:
: 콤보박스의 항목은 이렇게 동적으로 가져왔는데요
:
: 컬럼은 도저히 모르겠네요.
:
: 예를 들어서 일별로 조회버튼을 클릭 하면
:
: 1일 2일 3일 4일 5일 ......................30일
: 집
: 회사
:
: 이렇게 나와야하는데요 월마다 일수가 30일인날도 있고 31일인 날도있잖아요 그래서
: 30일이 있는날은 30일까지만 컬럼이생성되고 31일은 또 31까지 생성되게하고싶구요
: DB에 날짜는 다 저장되어있습니다.
: 버튼을 누를때마다 계속 컬럼이 생기는게 아니라 누를떄마다 새로 그리고 더 늘어나지 않도록하고싶습니다
:
:
:
:
:
|