Jump to content
Fivewin Brasil

Carregando um Listbox


edutraini

Recommended Posts

Pessoal gostaria de uma dica de vcs

Em um modulo do meu sistema de vendas (Pedido de Vendas Inclusao,Alteracao,Cancelamento e Impressao ) eu carrego todo banco de Dados de Pedido em um listbox .

Tenho percebido que na hora de carregar algumas maquinas estao demorando para abrir 

Alguem poderia me dar uma dica para deixar mais rapido pois eu carrego todo banco de dados de Pedido e na verdade nao precisaria abrir tudo pois pedidos antigos nao serao mais alterados

Nao sei se mudar para xbrowse vai melhorar alguma coisa 

Link to comment
Share on other sites

vou tentar explicar melhor

Tenho um Banco de Dados de Pedido com 70000 registros aonde carrego ele em um listbox

Tenho percebido que algumas maquinas esta demorando um pouco para carregar 

A minha duvida é 

1 opcao - Se mudar para xbrowse vai carregar mais rapido 

2 opcao - Filtrar os dados antes de abrir o listbox

 

Link to comment
Share on other sites

70.000 só? isso é fixinha para LISTBOX(wBrowse.prg) Listbox é infinitamente mais rápido que o xBrowse.

Provavelmente pela sua falta de experiência ou conhecimento, estais haciendo algo errado ao usar a LISTBOX, Mostre o código e diga que está usando .CDX. Você também pode fazer um indice na memoria(super rápido) usando o comando: TEMPORARY do xHarbour. Pode também, se dominar, fazer um ORDSCOPE()

Link to comment
Share on other sites

Código perfeito...

#Include "FiveWin.Ch"
	REQUEST OrdKeyNo, OrdKeyCount, OrdCreate, OrdKeyGoto // Para a ListBox(velocidade)
	FUNCTION CLIENTES( lAppend, DbClientes, DbCabec, DbPaieMae, DeOndeVem )
	    IF DeOndeVem != [DELIVERY] .AND. DeOndeVem != [RESERVAS] .AND. ;
       DeOndeVem != [LOCACAO]
	       IF NetUse( "CADETIQ", .T. )
          OrdListAdd( "CADETIQ", "RAZ_MATRIC", "DEST_NOME", "END",             ;
                                 "NOME_ARTIS", "CPF",       "CNPJ",            ;
                                 "TELEFONE" )
          //OrdDescend( ,,.T. ) // - Crescente
          OrdDescend( ,,.F. )  // - Decrescente
          DATABASE DbClientes
          DbClientes:Gotop()
          DbClientes:Load()
          DbClientes:SetBuffer( .T. )    // Assim, .T. a Op‡Æo (Cancelar) Funciona.
       ELSE
          MsgStop( "Banco de Dados dos CLIENTES Bloqueado", "Cuidado!" )
          RETURN NIL
       ENDIF
    ENDIF
	    // Clipper Puro
    DbSelectArea( ( DbClientes:cAlias ) )
    DbClientes:SetOrder( 2 )
    DbGoTop()
	    DEFINE BRUSH oBrush    RESOURCE "LOGO2" //-> PEGA A BITMAP DO ARQUIVO.RES(LOGO.BMP)
    DEFINE CURSOR oHand RESOURCE "Dedo"
    DEFINE FONT oFnt   NAME "Ms Sans Serif" SIZE 0,  14 BOLD //UnderLine
    DEFINE FONT oFont  NAME "Ms Sans Serif" SIZE 0, -14 BOLD //UnderLine
    DEFINE FONT oFont2 NAME "Ms Sans Serif" SIZE 0,  13 BOLD
    DEFINE ICON OICO FILE ".\BRASIL__.BMP"
	    DEFINE DIALOG oDlg  RESOURCE "BROWSE"                                    ;
           TITLE "Gerenciador de Clientes:-Browse"                           ;
           BRUSH oBrush TRANSPARENT                                          ;
           ICON oIco
	    oDlg:lHelpIcon := .F.
	    For IDCor = 401 To 403 // Os ID's dos TEXTOS na DIALOG.
        REDEFINE SENSITIVE SAY ID IDCor OF oDlg    ;
        COLOR CLR_BLACK UPDATE RAISED CENTER FONT oFont2  TRANSPARENT
    Next IDCor
	    //-> ListBox
    REDEFINE LISTBOX oLbx FIELDS                                    ;
             (DbClientes:cAlias)->RAZ_MATRIC                      , ;
             (DbClientes:cAlias)->DEST_NOME                       , ;
             (DbClientes:cAlias)->END                             , ;
             (DbClientes:cAlias)->BAI                             , ;
             (DbClientes:cAlias)->CID                             , ;
             (DbClientes:cAlias)->CEP                             , ;
             (DbClientes:cAlias)->TEL                             , ;
             (DbClientes:cAlias)->TEL2                            , ;
             (DbClientes:cAlias)->TEL3                              ;
             HEADERS ( OemToAnsi( "C¢digo/Cnpj/Cpf" ) )           , ;
                     ( OemToAnsi( "Nome/RazÆo Social=> "          + ;
                     "<Click> Mouse Direito<Menu>" ) )            , ;
                     ( OemToAnsi( "Endere‡o"        ) )           , ;
                     ( OemToAnsi( "Bairro"          ) )           , ;
                     ( OemToAnsi( "Cidade"          ) )           , ;
                     ( OemToAnsi( "Cep"             ) )           , ;
                     ( OemToAnsi( "Telefone"        ) )           , ;
                     ( OemToAnsi( "Telefone"        ) )           , ;
                     ( OemToAnsi( "Telefone"        ) )             ;
             FIELDSIZES 130, 480, 480, 200, 200, 100, 150, 150, 150 ;
             COLOR CLR_BROWN, CLR_LGREEN                            ;
             FONT oFont                                             ;
             CURSOR oHand                                           ;
             UPDATE                                                 ;
             ID 101                                                 ;
             OF oDlg                                                ;
             ON DBLCLICK( Click()                                 , ;
                          GETCLIENTES( .F., DbClientes, DbCabec,    ;
                                            DbPaieMae, DeOndeVem ), ;
             oLbx:SetFocus(), oLbx:Refresh(), oLbx:DrawSelect() )
	    //-----------------------------------------------------------------------//
    oLbx:nClrBackHead  := CLR_LGREEN  // Cor do Fundo do Cabe‡alho
    oLbx:nClrText      := {|| nRGB( 165,  42,  42 ) } // Cor do Fundo do Cabe‡alho
    oLbx:nClrBackFocus := CLR_HRED    // Cor do Cursor Em Cima do Ötem
    oLbx:nClrForeFocus := CLR_AMARELO // Cor da letra da barra ativa
    oLbx:nClrForeHead  := CLR_HRED    // Cor nos Headers - Cabe‡alhos
    // Cor no Pano de Fundo da Browse() Listbox-Legal - abaixo o comando
    oLbx:nClrPane      := { || IIF( ( oLbx:cAlias )->( OrdKeyNo() ) %2 == 0, ;
                               CLR_LGREEN, CLR_LGRAY ) }
    oLbx:nColAct       := 2           // Onde o Cursor Vai Iniciar na coluna
    oLbx:nLineStyle    := 3           // Estilo das linhas nos dados da Browse
    oLbx:lCellStyle    := .T.         // Somente pinta a c‚lula em que o cursor esta no momento
    // Justifica o Cabe‡alho: .F. = Esquerda .T. = Centro
    oLbx:aJustify := { .T., .F., .F., .F., .F., .F., .F., .F., .F., .F., .F., .F., .F., .F., .F., .F., .F. }
    oLbx:lMChange      := .F.         // Desabilita Mousemove - Movimentos do Mouse Congelam.
    // Barra vertical exacta...
    //oLbx:bLogicLen := { || ( DbClientes:cAlias )->( OrdCount() ) }
    oLbx:SetFocus()                   // Refocus on The Browse - Ativa o Foco na ListBox(Browse)
    oLbx:Refresh()                    // Estabiliza o Browse/Listbox - Refresca os Dados.
                                      // Pinta os Dados Novamente
    //-----------------------------------------------------------------------//


Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...