Página 2 de 4

POSIÇÃO DO REGISTRO AO RETORNAR PRA TELA ANTERIOR TBROWSER

Enviado: 07 Mar 2024 16:02
por deividdjs
JoséQuintas escreveu:
deividdjs escreveu:U nunca usei o DEBUG .. não faço ideia de como funciona isso .. sempre dubuguei no braço hehehe .. mais vou pesquisar aqui e ver como funciona certinho e fazer o teste ..
Basicamente é compilar com -b.
Durante o uso do aplicativo, tecle Alt-D, e vai entrar nessa tela.
Por aí consegue ver variáveis, DBFs abertos, e outras coisas.

É como uma IDE de linguagem de programação, vai estar vendo seu fonte, conforme a linha que está sendo executada.

Principais/mais usados:

Alt-D entra no modo debug
Alt_O, path, pra definir o path dos fontes, pode ser mais de um, isso é quando o EXE está em pasta diferente dos fontes
F-8 executa uma linha do aplicativo por vez
Alt-F4 pra dar uma olhada na tela do aplicativo, senão só vê o fonte
F-5 executa de uma vez - pode teclar Alt-D depois, por exemplo nesse browse, ou outro lugar
Alt-X fecha tudo, até aplicativo, aonde estiver
tab ou click pra mover entre as janelas

No fonte, pode marcar uma ou mais linhas de parada usando F9.
Tipo nessa parte do pedido quando o usuário tecla ENTER.
Assim, manda executar o aplicativo e só pára aí onde interessa, não precisa linha a linha até chegar aí.
Isto é interessante quando tem um processo, e só interessa ver quando aquele processo terminou pra frente.

break proint, que é definir qual a situação aonde quer que o programa pare.
Disse que muda a posição do pedido: então vai olhar o número do pedido, e coloque no break proint pedido <> numero
Teclar F5, e assim que o número for diferente do indicado, que é seu problema, vai entrar no debug.
Vai estar parado na linha do fonte seguinte à que causou o problema

Nas opções, tem opção de mostrar todas as variáveis, ou locais, ou private
Numa janela você pode colocar expressão pra consulta, tipo ? alias(), ? variável, etc. pra consulta instantânea

Watch point, é pra ficar acompanhando alguma variável, por exemplo recno() de pedido ou número de pedido.
Vai teclando F8, vai executando uma linha por vez, e olhando os valores que aparecem de uma ou mais variáveis

E por aí vai, só olhar as opções do menu, e testar cada uma pra ver o que acontece.
Maravilha zé .. vou tentar !! por hora muito obrigado pela força ... abraço!!

POSIÇÃO DO REGISTRO AO RETORNAR PRA TELA ANTERIOR TBROWSER

Enviado: 13 Mar 2024 14:54
por deividdjs
boa tarde Galera ..

infelizmente acho q é um problema do harbour 3.2 em diante que está bugando esta parte do meu sistema .. voltei para o xharbour 1.2.3 e funciona perfeitamente ... fiz muitos testes e nada de descobrir .. será que pode ser o INKEY.CH do harbour 3.2 que está bugando meu sistema ?? alguma ideia ??

o bizzaro q fiz uma depuração no braço mesmo .. quando entro no pedido e navego por ele continua o ponteiro no pedido correto ... e quando dou um <ESC> AÍ ele muda a posição ...


uma coisa que notei foi que quando estou dentro dos primeiros pedidos no topo da lista ... isso não ocorre só quando estou um pouco mais pra baixo ou no final da lista de pedidos e isso acontece ...

sei lá .. mistério terrível !!

Abraço!

POSIÇÃO DO REGISTRO AO RETORNAR PRA TELA ANTERIOR TBROWSER

Enviado: 13 Mar 2024 15:26
por JoséQuintas
Estava revendo sua mensagem, sobre algumas partes.

O codeblock de movimentação é local ? poderia estar misturando com o outro ?
Faz alguma referência à outra tabela ?

Acho que o melhor jeito é o debug mesmo.

POSIÇÃO DO REGISTRO AO RETORNAR PRA TELA ANTERIOR TBROWSER

Enviado: 13 Mar 2024 15:39
por deividdjs
segue um video no youtube para melhor detalhar o problema ...

[youtube] https://youtu.be/hGJaXGWw9KM [/youtube]

Abraço..

POSIÇÃO DO REGISTRO AO RETORNAR PRA TELA ANTERIOR TBROWSER

Enviado: 13 Mar 2024 16:21
por deividdjs
JoséQuintas escreveu:Estava revendo sua mensagem, sobre algumas partes.

O codeblock de movimentação é local ? poderia estar misturando com o outro ?
Faz alguma referência à outra tabela ?

Acho que o melhor jeito é o debug mesmo.
Oi Zé .. todos são variáveis locais .. sem nenhuma referência a anterior ... revisei todas as variáveis... tanto que na versão em xharbour funciona normalmente ..

Já não faço ideia do que pode ser ... e preciso usar a versão harbour 3.2 ...porque o xharbour é muito limitado em alguna recursos...

Abraço!

POSIÇÃO DO REGISTRO AO RETORNAR PRA TELA ANTERIOR TBROWSER

Enviado: 13 Mar 2024 16:29
por JoséQuintas
Valor do RETURN ?
Conforme valor tem remontagem.

POSIÇÃO DO REGISTRO AO RETORNAR PRA TELA ANTERIOR TBROWSER

Enviado: 13 Mar 2024 16:52
por deividdjs
return(2)
JoséQuintas escreveu:Valor do RETURN ?
Conforme valor tem remontagem.

POSIÇÃO DO REGISTRO AO RETORNAR PRA TELA ANTERIOR TBROWSER

Enviado: 13 Mar 2024 23:50
por rochinha
Amiguinhos,

deividdjs
Altere o trecho no Código de Alteração de Pedido:

Código: Selecionar todos

...
        case lastkey()=73 .or. lastkey()=105   // INCLUIR ITEM PEDIDO DEFINITIVO                                                                                                                                                                     
	              
	             ordsetfocus("ptmcx_15") // ordem decrescente de data + hora //  ultimo item fica no top
...
Para:

Código: Selecionar todos

...
        case lastkey()=73 .or. lastkey()=105   // INCLUIR ITEM PEDIDO DEFINITIVO                                                                                                                                                                     
                     nOldArea := select()	              
	             ordsetfocus("ptmcx_15") // ordem decrescente de data + hora //  ultimo item fica no top
...
E depois, altere:

Código: Selecionar todos

             select TMP                                                                                                                                                                                                                                                                                                                                         
	             sav_ord := indexord() && SALVA ORDEM
	          
	      ...................
	                                 
	          
	         otherwise  
Para:

Código: Selecionar todos

             select TMP                                                                                                                                                                                                                                                                                                                                         
	             sav_ord := indexord() && SALVA ORDEM
	      dbSelectArea( nOldArea )    
	      ...................
              	                                 
	          
	         otherwise  
Lembbbbre-se de guardar a ára da tabela do browser antes de executar código que vagueie por outras tabelas.

POSIÇÃO DO REGISTRO AO RETORNAR PRA TELA ANTERIOR TBROWSER

Enviado: 14 Mar 2024 00:50
por alxsts
Olá!

Revise as mudanças de área de trabalho. Esta técnica de ficar fazendo Select x, Select y, Select x, etc... é perigosa. Prefira usar os apelidos (Alias) dos arquivos. Use inclusive nas operações dos TBrowses:

Código: Selecionar todos

TMP->( oBrowse:forceStable() )
A questão do SET RELATION, como já citado, pode dar problema quando utilizado.

POSIÇÃO DO REGISTRO AO RETORNAR PRA TELA ANTERIOR TBROWSER

Enviado: 14 Mar 2024 00:53
por alxsts
Olá!

Ah... @deividdjs
quando responder uma mensagem, não precisa citar toda a mensagem que está respondendo.

POSIÇÃO DO REGISTRO AO RETORNAR PRA TELA ANTERIOR TBROWSER

Enviado: 14 Mar 2024 08:50
por deividdjs
Alguém tem um comando do GITHUB para eu baixar o HARBOUR 3.2 e 3.4 o mingw32/64 pra ver se não é problema da versão ? ou algum arquivo zicado! vi q saiu uma versão agora em 2024 onde posso baixar para atualizar as que eu tenho aqui ??

o zé me passou uma vez uma instalação automática por GITHUB .. tem algo atualizado lá?

Abraço

POSIÇÃO DO REGISTRO AO RETORNAR PRA TELA ANTERIOR TBROWSER

Enviado: 14 Mar 2024 08:52
por JoséQuintas
Pera aí.... devagar.

Vamos recomeçar:

Tem o primeiro fonte, é um browse.
Tem o segundo fonte, que contém uma rotina e um browse.
Qual a ligação entre eles ?

POSIÇÃO DO REGISTRO AO RETORNAR PRA TELA ANTERIOR TBROWSER

Enviado: 14 Mar 2024 09:31
por JoséQuintas
Estou vendo coisa fora do normal, pelo menos comparando com meu uso, agora não sei se depende da RDD ou harbour/xharbour.

Código: Selecionar todos

nOrdem := "PEDCX_02"
...
set order to nOrdem
Costumo usar ORDER apenas com número, OrdSetFocus() pra selecionar pelo nome, mas aí acima não sei dizer o que está usando, ou se isso realmente é válido.
Não vi chamada entre os dois fontes, não sei o que um tem a ver com o outro.

POSIÇÃO DO REGISTRO AO RETORNAR PRA TELA ANTERIOR TBROWSER

Enviado: 14 Mar 2024 09:51
por JoséQuintas
Se a primeira rotina não chama a segunda.....
Como a segunda altera a primeira ?

Supondo que a segunda rotina trabalha com um temporário pra atualizar a primeira.....
É de se imaginar que deve ter uma rotina de atualização entre a saída da segunda, e a volta pra primeira.
Então, há fonte sendo executado que não estamos vendo aqui.

POSIÇÃO DO REGISTRO AO RETORNAR PRA TELA ANTERIOR TBROWSER

Enviado: 14 Mar 2024 09:59
por JoséQuintas
Encontrei um erro.....

Código: Selecionar todos

select( cAlias )
set order to nOrdem
Select() é uma função pra retornar o número da área.
Se quer mudar de área, é o comando SELECT, e não a função, não pode "grudar" as coisas.

Não sei se xharbour faz diferente... disse que funciona no xharbour...

Se quiser tirar a dúvida disso, compile com -p e olhe o PPO gerado.
Veja se é diferente na compilação do harbour e do xharbour.