FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour TxBrowse:cSortOrder con oDBF
Posts: 47
Joined: Thu Jul 10, 2008 07:33 AM
TxBrowse:cSortOrder con oDBF
Posted: Mon Feb 16, 2009 04:24 PM
¿Por que no esta implementado el intercambio de ordenacion ascendente a descendente? Parece muy sencillo de implementar.

En lugar de :
Code (fw): Select all Collapse
      elseif nAnd( ::oBrw:nDataType, DATATYPE_ODBF ) == DATATYPE_ODBF .and. ;
         ValType( ::cSortOrder ) == 'C'

         if ! Eq( ::oBrw:oDbf:SetOrder(), ::cSortOrder )
            ::oBrw:oDbf:SetOrder( ::cSortOrder )
            lSorted  := .t.
            For n := 1 TO Len(::oBrw:aCols)
               oCol   := ::oBrw:aCols[ n ]
               oCol:cOrder      := " "
            Next n
            ::cOrder           := 'A'
         endif


Se puede hacer exactamente igual que si no utilizamos el oDBF:

Code (fw): Select all Collapse
      elseif nAnd( ::oBrw:nDataType, DATATYPE_ODBF ) == DATATYPE_ODBF .and. ;
         ValType( ::cSortOrder ) == 'C'

         if Eq( (::oBrw:oDBF:cAlias)->( OrdSetFocus() ), ::cSortOrder )

            (::oBrw:oDBF:cAlias)->( OrdDescend( , , ! OrdDescend() ) )
            ::cOrder             := If( ( ::oBrw:oDBF:cAlias )->( OrdDescend() ), 'D', 'A' )
            lSorted              := .t.

         else

            (::oBrw:oDBF:cAlias)->( OrdSetFocus( ::cSortOrder ) )
            lSorted   := .T.
            For n := 1 TO Len(::oBrw:aCols)
               oCol   := ::oBrw:aCols[ n ]
               oCol:cOrder      := " "
            Next n
            ::cOrder           := If( ( ::oBrw:oDBF:cAlias )->( OrdDescend() ), 'D', 'A' )

         endif


Es una forma sencilla que se me ocurre, pero hay mas.
Jorge Ignacio Corral
Enjoy it :)

Continue the discussion