|
저는 정말 왕초보인데..
다행히..
휴..
이것도 예전에 한번 써 본 기능입니다.
본론 부터.. 얘기하겠습니다.
아래 코드보시면 매우 간단해요.
dbGrid의 이벤트에 보시면 TitleClick 이라는 이벤트에
Dbgrid의 sort라는 method를 이용하시면 됩니다.
한번 적용 해 보세요..
void __fastcall TForm1::DBGrid1TitleClick(TColumn *Column)
{
if ( ADOQuery1->Sort != (Column->FieldName + " ASC") )
{
ADOQuery1->Sort = Column->FieldName + " ASC";
Column->Title->Font->Color = clRed;
}
else
{
ADOQuery1->Sort = Column->FieldName + " DESC";
Column->Title->Font->Color = clBlue;
}
}
실제.. 사용가능한 코드
void __fastcall TForm1::FormCreate(TObject *Sender)
{
// 여기에서 access의 DB명과 그리고, 테이블은 정의하세요...
ADOQuery1->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ms2008.mdb;Persist Security Info=False";
ADOQuery1->SQL->Text = "Select * from basic"; // table Name Basic
DataSource1->DataSet = ADOQuery1;
DBGrid1->DataSource = DataSource1;
ADOQuery1->Open();
}
void __fastcall TForm1::DBGrid1TitleClick(TColumn *Column)
{
if ( ADOQuery1->Sort != (Column->FieldName + " ASC") )
{
ADOQuery1->Sort = Column->FieldName + " ASC";
Column->Title->Font->Color = clRed;
}
else
{
ADOQuery1->Sort = Column->FieldName + " DESC";
Column->Title->Font->Color = clBlue;
}
}
그러면 동작이 될 겁니다.
그렇게 어려운 것 아니니까.. 적용 쉽게 할 수 있을겁니다.
혹시 안되시면..
소스 첨부해 드리겠습니다.
정말...
정종호 님이 쓰신 글 :
: DBAdvGrid에서 칼럼헤더를 클릭하면 해당 칼럼내용으로 행이 정렬되는 기능을 구현하려고하는데요.
: DBAdvGrid에 대한 정보가 부족하군요.
|