FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Pasar Query a un Listbox
Posts: 162
Joined: Tue Feb 03, 2009 10:08 PM
Pasar Query a un Listbox
Posted: Mon Sep 08, 2014 07:18 PM
Buenas foro:

hago un query en mysql y lo puedo ver y navegar en un xBrowse, de la siguiente manera:
Code (fw): Select all Collapse
oQuery := oServer:Query ( "SELECT * FROM codigos ORDER BY nombres" )


Ahora, como hago para ver el mismo query en un listbox, hasta ahora lo tengo, pero se queda mostrando tan solo el primer rtegistro del query:
Code (fw): Select all Collapse
  @ 001, 001 LISTBOX oLbx_47                              ; && Ancho * Alto; Letras / Fondo; FieldName = Nombre del campo
    FIELDS                                                ; 
     " " +             oQuery:codesat                    ,; && `codesat`      VARCHAR ( 04    ) NOT NULL DEFAULT '.', INDEX `codesat` (`codesat`)
     " " +             oQuery:nombres                    ,; && `nombres`      VARCHAR ( 20    ) NOT NULL DEFAULT '.'
     " " +             oQuery:apellidos                  ,; && `apellidos`    VARCHAR ( 20    ) NOT NULL DEFAULT '.'
     " " + TRANSFORM ( oQuery:indice,        "999.99" )  ,; && `indice`       DOUBLE  ( 10, 6 ) NOT NULL DEFAULT '0.000000'
     " " +             oQuery:sobre                      ,; && `sobre`        VARCHAR ( 10    ) NOT NULL DEFAULT '.'
     " " +      DTOC ( oQuery:f_cumpleanos )             ,; && `f_cumpleanos` DATE              NOT NULL DEFAULT '0001-01-01'
     " " + TRANSFORM ( oQuery:cta   , "9999999999" )     ,; && `cta`          INT     ( 10    ) UNSIGNED NOT NULL DEFAULT '0'
     " " +             oQuery:tipo                       ,; && `tipo`         VARCHAR ( 01    ) NOT NULL DEFAULT '.'
     " " +             oQuery:tipoemp                    ,; && `tipoemp`      VARCHAR ( 10    ) NOT NULL DEFAULT '.'
     " " + TRANSFORM ( oQuery:active, "9999999999" )      ; && `active`       INT     ( 10    ) UNSIGNED NOT NULL DEFAULT '0'
    HEADERS                                                       ;
     " Code"                                                     ,; && 01 C贸digo del cliente
     " Nombres"                                                  ,; && 02 Nombres del cliente
     " Apellidos"                                                ,; && 03 Apellidos del cliente
     " %_IVA"                                                    ,; && 04 脥ndice IVA
     " Sobre"                                                    ,; && 05 Sobre
     " F_Nacido"                                                 ,; && 06 Fecha de cumplea帽os
     " Cuenta"                                                   ,; && 07 Cta 
     " Tipo"                                                     ,; && 08 Tipo 
     " T_Empresa"                                                ,; && 09 Tipo de Empresa
     " Active"                                                    ; && 10 Active
    FIELDSIZES                                                    ;
     050                                                         ,; && 01 C贸digo del cliente
     150                                                         ,; && 02 Nombres del cliente
     150                                                         ,; && 03 Apellidos del cliente
     050                                                         ,; && 04 脥ndice IVA
     050                                                         ,; && 05 Sobre
     100                                                         ,; && 06 Fecha de cumplea帽os
     050                                                         ,; && 07 Cta
     050                                                         ,; && 08 Tipo
     120                                                         ,; && 09 Tipo de Empresa
     080                                                          ; && 10 Active
    FONT oFont_12 OF oFolder:aDialogs[ 02 ]                       ;
    COLOR nRGB ( 245, 250, 000 ), nRGB ( 106, 090, 205 )          ;
    SIZE 690, 410 PIXEL                                           ;
    ON LEFT DBLCLICK ( Editar_47 ( .F., oLbx_47 ), oLbx_47:Refresh () ) 

  oLbx_47:SetBackGround ( "nena.png", BCK_STRETCH )                                                                      && 

  oLbx_47:nClrBackFocus := nRGB ( 250, 250, 016 )                                                                  && Color del Fondo Azul Navy
  oLbx_47:nClrForeFocus := nRGB ( 016, 032, 250 )                                                                  && Color del Texto
* oLbx_47:bRClicked     := { | nRow, nCol | ShowPopup32 ( nRow, nCol, oFolder:aDialogs[ 02 ], oLbx_47 ) }          && 
  oLbx_47:nLineStyle    := 2                                                                                       && 
  olbx_47:lCellstyle    := .T.                                                                                     && 

  oLbx_47:SetArray ( oQuery )
  oLbx_47:cAlias     := "Array"
  oLbx_47:bLogicLen  := { | | LEN ( oQuery ) }


Que debo cambiar para que navegue con todos los registros tra铆dos por el query.

Gracias y saludos

J. Ernesto Pinto Q.
Fwh_x64 2501, BCC++_x64 7_70 , Harbour 3.20, LopeEdit 5.8
jepsys@hotmail.com, jepsys@gmail.com

Posts: 1303
Joined: Tue Jul 21, 2009 08:12 AM
Re: Pasar Query a un Listbox
Posted: Fri Sep 12, 2014 05:54 PM
Hola,

Tienes que definir los codeblocks del movimiento del ListBox.

xBrowse lo hace autom谩ticamente.

Mira por ejemplo esta funci贸n:

Code (fw): Select all Collapse
//------------------------------------------------------------------------
Function DefineCodeblocksListbox( oBrw, oDataSource )

    local lRet := .t.
    local bGoTop, bGoBottom, bSkipper
    local cClsName

    if ValType( oBrw ) != "O" .or. ValType( oDataSource ) != "O"
        lRet := .f.
    else
[b]        bGoTop := { || oDataSource:GoTop() }
        bGoBottom := { || oDataSource:GoBottom() }
        bSkipper := { | n | oDataSource:Skip( n ) }[/b]

        cClsName := upper( oBrw:ClassName() )

        if cClsName == "TBROWSE" // El nativo de Harbour y xHarbour
            oBrw:goTopBlock := bGoTop
            oBrw:goBottomBlock := bGoBottom
            oBrw:SkipBlock := bSkipper
        elseif cClsName $ "TWBROWSE TCBROWSE TSBROWSE TGRID TXBROWSE" // Para windows
            oBrw:cAlias := ""
            oBrw:bGoTop := bGoTop
            oBrw:bGoBottom := bGoBottom
            oBrw:bSkip := bSkipper
            if cClsName == "TXBROWSE"
                oBrw:bBof := { || oDataSource:Bof() }
                oBrw:bEof := { || oDataSource:Eof() }
                oBrw:bBookMark :={ | n | if( n == nil, oDataSource:RecNo(), ;
                                                       oDataSource:GoTo( n ) ) }
                oBrw:bKeyNo :=  { || oDataSource:RecNo() }
                oBrw:bKeyCount := { || oDataSource:RecCount() }
            else
                oBrw:bLogicLen := { || oDataSource:RecCount() }
            endif
            if oBrw:oVScroll() != nil
                oBrw:oVscroll():SetRange( 1, oDataSource:RecCount() )
            endif
            oBrw:Refresh()
        else
            oDataSource:oError:Say( "Browse no implementado en SetBrowse", .f. )
        endif
    endif

return( lRet )
Muchas gracias. Many thanks.



Un saludo, Best regards,



Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producci贸n]



Implementando MSVC 2010, FWH64 y ADO.



Abandonando uso xHarbour y SQLRDD.

Continue the discussion