C++Builder中的DBGrid沒(méi)有點(diǎn)標(biāo)頭進(jìn)行排序的功能,參考網(wǎng)上及幫助文檔,寫(xiě)了個(gè)DBGrid與ClientDataSet連接的排序代碼。
C++Builder開(kāi)發(fā)人員太少,資料太少,分享給大家參考下。
// ---------------------------------------------------------------------------void TForm1::DBTitleSort(TColumn *SortColumn) { try { UnicodeString OldIndex; TDBGrid * dbgTemp = (TDBGrid*)SortColumn->Grid; if ((SortColumn->Grid->DataSource == NULL) || (SortColumn->Grid->DataSource->DataSet == NULL) || !(SortColumn->Grid->DataSource->DataSet->Active) || (SortColumn->Grid->DataSource->DataSet->IsEmpty())) { return; } TClientDataSet *cdsCur = (TClientDataSet*)SortColumn->Field->DataSet; UnicodeString strSortColumnFileName = SortColumn->Field->FieldName; OldIndex = cdsCur->IndexName; if (OldIndex != "") { cdsCur->IndexName = ""; cdsCur->DeleteIndex(OldIndex); } for (int i = 0; i < dbgTemp->Columns->Count; i++) { //清除DBGrid標(biāo)題顯示 TColumn *temColumn = dbgTemp->Columns->Items[i]; temColumn->Title->Caption = temColumn->FieldName; temColumn->Title->Font->Style = TFontStyles();//還原 temColumn->Title->Font->Color = clWindowText;//變黑 } if (SortColumn->FieldName != OldIndex) { //點(diǎn)擊排序跟原來(lái)已經(jīng)點(diǎn)擊不一樣 SortColumn->Grid->Tag = 0; } if (SortColumn->Grid->Tag == 0) { //默認(rèn)使用降序排列 TIndexOptions opts; opts << ixDescending; cdsCur->AddIndex(strSortColumnFileName,strSortColumnFileName, opts); // 降序 SortColumn->Grid->Tag = 1; SortColumn->Title->Caption = "▼ " + SortColumn->FieldName; SortColumn->Title->Font->Style = TFontStyles() << fsBold;//加粗 SortColumn->Title->Font->Color = clRed;//變紅 } else { // 否則按升序排列 TIndexOptions opts; opts << ixPRimary; cdsCur->AddIndex(strSortColumnFileName,strSortColumnFileName, opts); // 升序 SortColumn->Grid->Tag = 0; SortColumn->Title->Caption = "▲ " + SortColumn->FieldName; SortColumn->Title->Font->Style = TFontStyles() << fsBold;//加粗 SortColumn->Title->Font->Color = clRed;//變紅 } cdsCur->IndexName = strSortColumnFileName; } catch (...) { //有異常,捕獲但不進(jìn)行處理 }}// ---------------------------------------------------------------------------新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注