tbrowser

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

paiva
Usuário Nível 3
Usuário Nível 3
Mensagens: 300
Registrado em: 04 Ago 2005 10:28

tbrowser

Mensagem por paiva »

algem tem um tutorial manual do Tbrowser ?

que mostre os comando
tipo Pagdow go top etc

cpaivasistemas@gmail.com

paiva_sistenas

34 9 9971 2578

desde ja agradeço

paiva

estou APANHANDO
em um terminal exibe o browser filtrado em um outro inclui um registro
voltando no original seta paar cima baixo etc NAO atualiza o registro
somente quando baixa apos o ULTIM que mostra o que foi incluido


ja tentei de tudo


b:configure()
b:refreshall()
b:refreshcurrent()

nao consigo fazer atualizar o Browser

ja fechei o filtro e nada ja fechei o arquivo e nada

alguem sabe uma solucao


Obrigado
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

tbrowser

Mensagem por alxsts »

Olá!

Na Seção Downloads tem o xHarbour Language Reference Guide[

Crie uma pasta e baixe para dentro dela. Depois descompacte. Tem que ficar na pasta estes dois arquivos: xHarbour Language Reference Guide.CHM e xHarbour Language Reference Guide.CHW. Abra o .CHM e na aba "Pesquisar" busque por TBrowse().

Não sabemos como está o teu código. No referido manual, tem o exemplo abaixo:

Código: Selecionar todos

// The example demonstrates the steps required for creating a
// browse view for a database file.

   #include "TBrowse.ch"

   PROCEDURE Main
      LOCAL oTBrowse, oTBColumn
      LOCAL bFieldBlock, cFieldName, i, nKey

      USE Customer ALIAS Cust

      // create TBrowse object
      oTBrowse := TBrowse():new( 2,2, MaxRow()-2, MaxCol()-2 )
      oTBrowse:headSep   := "-"
      oTBrowse:colorSpec := "N/BG,W+/R"

      // add code blocks for navigating the record pointer
      oTBrowse:goTopBlock    := {|| DbGoTop() }
      oTBrowse:goBottomBlock := {|| DbGoBottom() }
      oTBrowse:skipBlock     := {|nSkip| DbSkipper(nSkip) }

      // create TBColumn objects and add them to TBrowse object
      FOR i:=1 TO FCount()
         cFieldName  := FieldName( i )
         bFieldBlock := FieldBlock( cFieldName )
         oTBColumn   := TBColumn():new( cFieldName, bFieldBlock )
         oTBrowse:addColumn( oTBColumn )
      NEXT

      // display browser and process user input
      DO WHILE .T.
         oTBrowse:forceStable()
         nKey := Inkey(0)

         IF oTBrowse:applyKey( nKey ) == TBR_EXIT
            EXIT
         ENDIF
      ENDDO

      USE
   RETURN
Preste atenção nas linhas 31 a 38. Se na outra estação você fez um APPEND BLANK ou DbAppend(), não esqueça de fazer um UNLOCK no registro que foi incluído. Por padrão, APPEND BLANK e DbAppend() incluem o novo registro e o deixa bloqueado...
[]´s
Alexandre Santos (AlxSts)
paiva
Usuário Nível 3
Usuário Nível 3
Mensagens: 300
Registrado em: 04 Ago 2005 10:28

tbrowser

Mensagem por paiva »

BOM dia
Obrigado pela atenção.

vou ver se olho o material hj

pelo que vi as setas para cima, baixo e para os lados NAO pegam os registros incluídos.
se forçar a tecla para baixo ate após o ULTIMO ai ele mostra. (Ou seja de alguma forma foi dado um refrash no filtro rs e no browser.

ACREDITO por ter filtro antes do Tbrowser.

Fiz um teste aqui quando for seta para baixo salvo a qtd de registro no Browser depois fecho o filtro e faço ele de novo
comparo se a quantidade de registro esta diferente ai faço um B:gobottom ai ele exibe rs

NAO sei se é a melhor solução

vou ver no material se tem algum comando que salve a posição corrente no browser ai posso salvar e depois ir para ela (se existir os comandos ) rs
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

tbrowser

Mensagem por JoséQuintas »

No DO WHILE do tbrowse precisa ficar atualizando a tela, ou de uma vez, ou aos poucos enquanto não é digitado nada.

Código: Selecionar todos

DO WHILE nKey != K_ESC
   nKey := 0
   DO WHILE nKey == 0 .AND. ! oBrowse:Stable()
      oBrowse:Stabilize()
      nKey := Inkey()
   ENDDO
   DO CASE
   ...
   ENDCASE
ENDDO
Nesse DO WHILE não se trata apenas de esperar pressionar tecla, senão não atualiza tela.
No caso de otimização, pode precisar completar a atualização antes de prosseguir.
Se atualizar toda a tela sempre, sem otimizar, pode ter lentidão a cada tecla pressionada.

Otimização: tipo teclar PGDN várias vezes seguidas, não faz sentido atualizar tudo a cada PGDN, e sim ao final das várias vezes, ou ao teclar ENTER ou outra tecla específica.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

tbrowser

Mensagem por JoséQuintas »

Ainda nisso:
Essa seria a parte "normal" do tbrowse, aproveitar o tempo parado pra atualizar a tela.

Além dessa parte, tem a outra, nas funções de usuário, por exemplo o que disse de incluir registro, ou excluir, ou mudar o posicionamento.
Nesses casos é onde precisa avisar o tbrowse que vai precisar de atualização completa.
Ou apenas invalida o tbrowse para que seja todo redesenhado depois, ou redesenha de uma vez.

Simplificando:

O tbrowse cuida dele próprio, pra mostrar informações.
Ele tem lá como referência a base de dados, do jeito que estava quando entrou no tbrowse.
Só vai precisar fazer alguma coisa diferente se suas rotinas modificarem essa base de dados referência.

Otimização:

Vamos considerar um SET FILTER que demore 1 segundo pra pular registros, e 40 registros na tela.
Vai demorar 40 segundos pra atualizar toda tela.
5 pagedown seguidos, 5 x 40 = 200 segundos de espera.
Com otimização, atualizando no tempo parado, digamos que esses 200 segundos se transformem em 42 segundos, porque vai atualizar só uma vez quando parar de teclar.

Ao invés de se preocupar com isso em todos os tbrowses....
Crie O SEU tbrowse genérico como intermediário.
Ao invés de chamar o tbrowse padrão, chame o seu.
Vai poder melhorar cada vez mais esse genérico, melhorando todo aplicativo de uma vez.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
carlaoonline
Usuário Nível 3
Usuário Nível 3
Mensagens: 190
Registrado em: 24 Ago 2014 22:38
Localização: Porto Alegre-RS

tbrowser

Mensagem por carlaoonline »

Bom dia!
paiva escreveu:algem tem um tutorial manual do Tbrowser ?

Ao instalar o MiniGui, na pasta C:\MiniGUI\Doc é criado o arquivo de ajuda do Windows "TSBrowse.chm"

Segue ele em anexo.
Anexos
TSBrowse.zip
Arquivo TSBrowse.chm (abre com a ajuda do Windows)
(156.75 KiB) Baixado 186 vezes
Responder