Delphi DBGridEh 제목별 정렬

2065 단어 StringIntegerDelphi
DBGridEh 제목별 정렬
DBGridEh 구성 요소는 제목 줄 칸에 작은 삼각형의 승강, 하강 정렬 표지 그림을 표시할 수 있으며, 실행할 때 제목 줄을 누르면 그림이 자동으로 전환되고 정렬됩니다.구체적인 속성 설정은 다음과 같습니다. OptionsEh = dghAutoSortMarking Colum.Title.TitleButton = true SortMarkedColumns: 현재 시퀀스(런타임 코드에서 사용 가능).
두 가지 코드:
 
첫 번째:
procedure TManageProjForm.dbgrdh1TitleBtnClick(Sender: TObject;
  ACol: Integer; Column: TColumnEh);
begin
  if   FieldName   =   ' '   then   Exit;

  if TADOQuery(TDBGridEh(Sender).DataSource.DataSet).Active = False then
  begin
      Exit;
  end;

  if Column.Title.SortMarker = smdowneh then
    TADOQuery(TDBGridEh(Sender).DataSource.DataSet).Sort := Column.FieldName
  else
    TADOQuery(TDBGridEh(Sender).DataSource.DataSet).Sort :=column.FieldName +' DESC';
end;


 
 
두 번째:
procedure TManageProjForm.dbgrdhProjectTitleBtnClick(Sender: TObject;
  ACol: Integer; Column: TColumnEh);
var
  sortstring:string;   //   
begin
//    
  with   Column   do
  begin
    if   FieldName   =   ' '   then   Exit;

    if TADOQuery(TDBGridEh(Sender).DataSource.DataSet).Active = False then
    begin
      Exit;
    end;

    case   Title.SortMarker   of
    smNoneEh:
      begin
        Title.SortMarker := smDownEh;
        sortstring := Column.FieldName + ' ASC ';
      end;
    smDownEh:
      begin
        sortstring := Column.FieldName + ' ASC ';
      end;
    smUpEh:
      begin
        sortstring := Column.FieldName + ' DESC ';
      end;
    end;
  //    
    try
      TADOQuery(TDBGridEh(Sender).DataSource.DataSet).Sort := sortstring   //dataset         
    except
    end;
  end;
end; 

 
사실 양자의 차이는 많지 않다.주의:lookup형 필드는 상기 설정을 할 수 없습니다. 그렇지 않으면 오류가 발생할 수 있습니다.
 

좋은 웹페이지 즐겨찾기