Página 1 de 1

.

Enviado: 25 Fev 2005 17:51
por Grings
.

Enviado: 02 Mar 2005 01:36
por Dudu_XBase
Boa Noite !!!
Vou criar uma matriz chamada aNot2 e vou alimentá-la e exibi-la no
Tbrowse ...
Vc deverá usar o include inkey.ch bastando colocar no seu prg
#include "inkey.ch"

Código: Selecionar todos

                /*Defino a Matriz */
                anot2 := {}
                           
                /*Nesse Exemplo eu estou alimentando a matriz com
                 os dados do meu banco de notas fiscais.... */
                arqnot->(dbseek(cCliente))
                while arqnot->CLIENTE==cCliente .and. !arq_not->(eof()) 
                     aadd(anot2,{arqnot->NUMNOT,arqnot->arqnot->QTDNOT})
                    arqnot->(dbskip())
                enddo

                /*Verifico se a Matriz possue conteúdo */
                if len(anot2) > 0
                     
                    /*Crio o Tbrowse */
                    oCorpo2 := tbrowsenew(03, 03, 12, 73)
                  
                    /*Para controlar a posição da array */
                    nPoint := 1

                    /*Cores e Molduras do Tbrowse */
                    oCorpo2:colorspec     := "w+/bg,n/w,n,n,w/b,r/b,r/bg"
                    oCorpo2:colsep        := chr (032) + chr (179) + chr (032)
                    oCorpo2:headsep       := chr (196) + chr (194) + chr (196)
                    oCorpo2:footsep       := chr (196) + chr (193) + chr (196)
                   
                    /* Para controlar a navegação*/  
                    oCorpo2:gotopblock    := {|| nPoint := 1 }
                    oCorpo2:gobottomblock := {|| nPoint := len (anot2)}
                    oCorpo2:skipblock     := {|n| arrayskiper (n, @nPoint, len (anot2))}


                    /* defino as colunas */
                    oCol1 := tbcolumnnew ("Nota",            {|x| iif  (x <> nil, anot2[nPoint,1] := x, anot2[nPoint,1])})
                    oCol2 := tbcolumnnew ("Qtde",        {|x| iif  (x <> nil, anot2[nPoint,2] := x, anot2[nPoint,2])})



                    /* crio browse com as colunas definidas... */
                    oCorpo2:addcolumn(oCol1)
                    oCorpo2:addcolumn(oCol2)

                    while ( .t. )

                        setcursor (0)

                        while ( !oCorpo2:stabilize () )
                        enddo

                        nTecla := inkey (0)
                        libera()

                        do case

                            case ( nTecla == K_ESC )
                                exit

                            case ( nTecla == K_DOWN )
                                oCorpo2:down ()

                            case ( nTecla == K_UP )
                                oCorpo2:up ()

                            case ( nTecla == K_LEFT )
                                oCorpo2:left ()

                            case ( nTecla == K_RIGHT )
                                oCorpo2:right ()

                            case ( nTecla == K_PGUP )
                                oCorpo2:pageup ()

                            case ( nTecla == K_PGDN )
                                oCorpo2:pagedown ()

                            case ( nTecla == K_CTRL_PGUP )
                                oCorpo2:gotop ()

                            case ( nTecla == K_CTRL_PGDN )
                               oCorpo2:gobottom ()

                        endcase

                    enddo
                else // Se não achar nota para esse cliente...
                    tone (3000,2)
                    ? "Não existem notas emitidas para esse cliente..."                         
                    inkeY(2)
                endif


/***********
*
* ArraySkiper ()
*
* Controla o posicionamento do browse no array.
*
*  by dudu_xbase
***********/

function ARRAYSKIPER (n, nPointer, nElementos)

    local nSalvo := nPointer

    if ( n > 0 )
	nPointer := min (nPointer + n, nElementos)
    else
	nPointer := max (1, nPointer + n)
    endif

    return ( nPointer - nSalvo )




.

Enviado: 02 Mar 2005 10:26
por Grings
.

Enviado: 02 Mar 2005 14:51
por Toledo
Pessoal, procure utilizar a pesquisa da seção Download do fórum, lá tem muita coisa útil para todos. :)Pos

Grings, veja esta rotina que está na seção Download:

https://pctoledo.org/forum/dload. ... file_id=65

Abraços,

Enviado: 02 Mar 2005 15:25
por evolver
Acabei de postar na área de downloads na seção de rotinas com fontes um editor hexadecimal que fiz usando tbrowse pra editar o arquivo. Ali tu vai poder ter umas excelentes ideías sobre como usar o tbrowse de outras formas. Seja como editor de arquivos (dá pra fazer planilhas ao estilo excel com isso) seja browseando matrizes... Bem dá uma olhada tem o prg junto, bom divertimento.