C++ Builder/DevExpress

cxGrid(TcxGridTableView)

딸기우유중독 2019. 3. 14. 14:50

#Cell 데이터 가져오기.

OnCellDblClick() 의 인자 중에서 TcxGridTableDataCellViewInfo *ACellViewInfo


ACellViewInfo->Value; // 셀 데이터





#그리드 (멀티)셀렉트 인덱스정보 가져오기.

TcxGridDataController *pDataCtrl;

pDataCtrl = grdUsageView->DataController;


int iCount = pDataCtrl->GetSelectedCount();

TcxRowInfo RowInfo;


for(int i=0; i<iCount; i++){

RowInfo = pDataCtrl->GetRowInfo(pDataCtrl->GetSelectedRowIndex(i));    // 선택된 행의 정보를 RowInfo에 대입

if(pDataCtrl->GetRowValue(RowInfo, 14) != "요청"){        // GetRowValue(행의 정보, 열의 번호) 

return;

}

}



# 그리드내용 엑셀로 내보내기

ExportGridToExcel() 함수사용.


#TcxGridTableView


@OptionsData    // 데이터 편집 및 삭제기능등.

@OptionsView    //    칼럼좌우 꽉채우기등 데이터가 보여지는 옵션변경.

->ColumnAutoWidth     // True시 Grid사이즈에 맞게 칼럼좌우 꽉 채움.

// #Column의 Options의 AutoWidthSizeable 을 false로 하면 해당 칼럼은 고정 Width로하고 나머지 칼럼으로 좌우 꽉채움.



# 데이터 Row color 변경

//---------------------------------------------------------------------------

void __fastcall TUserGridF::grdUserViewCustomDrawCell(TcxCustomGridTableView *Sender,

  TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo,

  bool &ADone)

{

// m_iIndex에 저장되어있는 값과 같은 레코드인덱스를 색상변경.

if( m_iIndex == AViewInfo->GridRecord->Index){

ACanvas->Brush->Color = 0x00FF0080;

}


}

//---------------------------------------------------------------------------

void __fastcall TUserGridF::grdUserViewColumn2CustomDrawCell(TcxCustomGridTableView *Sender,

  TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo,

  bool &ADone)

{

// m_iIndex에 로그인유저의 이름과 같은 값을 가지는 레코드인덱스를 저장

if(AViewInfo->Text == m_pAppInfo->LoginUser){

m_iIndex = AViewInfo->RecordViewInfo->Index;

}


}

//---------------------------------------------------------------------------




# 데이터 셀의 폰트 or 셀 color 바꾸기


@OnCustomDrawCell 이벤트 속성


//        13번열(Column)의 데이터

void __fastcall TUsageGridF::grdUsageViewColumn13CustomDrawCell(TcxCustomGridTableView *Sender,

          TcxCanvas *ACanvas, TcxGridTableDataCellViewInfo *AViewInfo,

          bool &ADone)

{

if(AViewInfo->Text == "완료"){                     // 데이터 텍스트가 "완료"이면

ACanvas->Font->Color = clGreen;        // 폰트 컬러를 녹색으로

//              ACanvas->Font->Color = 0x0000FF80;  // 값을 지정해서 넣을때 0x(컬러값)

}


}




#칼럼속성


DataBinding->ValueType       //  칼럼에 속하는 데이터타입지정 (데이터값이 날짜일경우 DateTime으로 지정하면 정렬시에 시분초단위까지 정렬가능)


@OptionsView->GridLines    //    그리드 데이터 구분선 지정


@HeaderAlignmentHorz    // 칼럼 caption 정렬

@HeaderAlignmentVert    // 칼럼 caption 정렬


@SortOrder    // 오름차순, 내림차순 지정


@Properties    // 데이터 포맷 지정후 해당 칼럼의 데이터 Alignment 조정가능 (그 밖에 여러가지 속성 지정가능)




TcxGridDataController *pDataCtrl;

pDataCtrl = grdUserView->DataController;



pDataCtrl->GetRecordCount()         //     그리드에 표출된 아이템 갯수 반환.


pDataCtrl->GetRowCount()            //     그리드에 표출된 아이템 갯수 반환.



pDataCtrl->GetItemCount()            //      그리드 행의 아이템 개수(열의 갯수) 반환.



pDataCtrl->GetEditingRecordIndex()    //  현재 선택된 그리드 행의 index 값을 반환.


pDataCtrl->GetDisplayText(1,0)          //  (1 행, 0열) 의 Text를 반환.


pDataCtrl->GetValue(1,0)                  //  (1 행, 0열) 의 값을 반환.


ex)
pDataCtrl->GetValue(pDataCtrl->GetEditingRecordIndex(), 6)     
//    pDataCtrl->GetEditingRecordIndex() 행 6열의 데이터값.



728x90