|
항상 답변 감사드리며 또 부탁드릴게요...
소스는 다음과 같이 짰구요....
int nCol = AdvStringGrid8->Col;
int nRow = AdvStringGrid8->Row;
ShowMessage (nCol);
ShowMessage (nRow);
String sInStr = AdvStringGrid8->Cells[nCol][nRow].Trim();
//int nMinRow = 100000;
String sFilterStr = AdvStringGrid8->Hint;
ShowMessage(sFilterStr);
AdvStringGrid8->FilterActive = false;
AdvStringGrid8->Filter->Clear();
if(sFilterStr.Pos("^") > 0)
{
int nLeg = sFilterStr.Length()+1 ;
for(int i= 1; i < nLeg; i++)
{
if(sFilterStr.Pos("^") <= 0) break;
int nSTcol = atoi(sFilterStr.c_str());
sFilterStr.Delete(1, sFilterStr.Pos("_"));
String sStr = sFilterStr.SubString(1 , sFilterStr.Pos("^")-1) ;
sFilterStr.Delete(1 , sFilterStr.Pos("^"));
AdvStringGrid8->Filter->ColumnFilter[nSTcol]->Condition = sStr;
}
}
AdvStringGrid8->Filter->ColumnFilter[nCol]->Condition = sInStr;
AdvStringGrid8->Hint =AdvStringGrid8->Hint + String(nCol)+"_"+sInStr+"^";
AdvStringGrid8->FilterActive = true;
if(AdvStringGrid8->RowCount <= 1)
{
AdvStringGrid8->FilterActive = false;
if(AdvStringGrid8->RowCount > 1) AdvStringGrid8->FixedRows = 1;
AdvStringGrid8->Hint ="";
Application->MessageBox( "검색조건에 일치하는 자료가 존재 하지 않습니다. ", "검색", MB_OK| MB_ICONINFORMATION);
}
ShowMessage(AdvStringGrid8->Hint);
filter링이 잘됩니다.... 그런데 페이지 컨트롤로 다른 탭에 가거나, DateTimePicker로 다른 날짜로 바꾸고....
위의 소스를 실행하면 자꾸 그림처럼 데이타가 나와요... 필터된 번호가 하나뿐인데...자꾸 중복으로 3row 혹은
2row...같은 데이터 값이 나오는군요.. 하나만 나와야되는데, 무엇이 문제인지 모르겠어요.. .디버그 해봐도
데이타 값엔 전혀 문제가 없는것 같은데.... 부탁좀 드릴게요.. 감사합니다..
|