Página 1 de 1

Salto na Ordem de Execução de Programa

Enviado: 28 Jan 2014 10:24
por Marcio_Carneiro
Olá, meus amigos


Estou recompilando o meu prg para harbour, utilizando a hmg
A aplicação é console.

Agora, me pareceu um erro numa determinada procedure, onde chamo uma outra procedure, que realiza
a montagem de relatorios.

Inc_Relat("Cod", "item", "99999")
Inc_Relat("Qtd.", "quantidade", "@E 99999.99", .T.)
Inc_Relat("Produto", "PRODUTOS -> nome", "@!", .T.)

O estranho é que o programa somente aciona a primeira chamada e ignora as demais.

Nunca vi isto em Clipper.

O que é pior que estas chamadas (inc_relat) funciona normalmente em outros módulos do prg.
Alguma coisa não está certa na procedure onde estão estes comandos.
Quero a ajuda dos amigos, pois já queimei a pestana e nada.
Marcio

Salto na Ordem de Execução de Programa

Enviado: 30 Jan 2014 00:31
por rochinha
Amiguinho,

Coloque mensagens que tracem o caminho percorrido.

Assim:

Código: Selecionar todos

Inc_Relat("Cod", "item", "99999")
? "Passei aqui"
Inc_Relat("Qtd.", "quantidade", "@E 99999.99", .T.)
? "Passei aqui também"
Inc_Relat("Produto", "PRODUTOS -> nome", "@!", .T.)
? "Passei aqui novamente"
Se não chegar até um ponto a rotina pode esta pulando mesmo para outra chamada.

Salto na Ordem de Execução de Programa

Enviado: 30 Jan 2014 09:41
por Marcio_Carneiro
Obrigado por sua atenção.
Já coloquei a mensagem na procedure chamada.
Vou seguir a sua sugestão colocando na procedure que chama a outra.
Mas sinceramente não consigo entender como pode pular uma sequencia de comandos e depois executar o comando
abaixo

Salto na Ordem de Execução de Programa

Enviado: 13 Fev 2014 15:15
por Marcio_Carneiro
Obrigado, mestre rochinha

O problema é a famosa compatibilidade do Clipper para o Harbour.

Parecia que não estava executando a procedure, pois no início da mesma, tinha um if onde dependendo
da opção ele já dava um return, e como o programa roda no clipper, você fica meio besta.

O problema é que na procedure invocada tinha uma variavel de nome QUANTIDADE e no arquivo.dbf manipulado
tinha um campo QUANTIDADE, aí não dá erro, mas dá chabu....

Obrigado pela atenção de todos e desculpem pelo incomôdo, mas fica duas semanas tentando tudo e nada,
Aí somente apelando para os mestres. O que é simples, depois de muita insistência, não fica claro para quem
desenvolve programa

Um grande abraço

Marcio

Salto na Ordem de Execução de Programa

Enviado: 13 Fev 2014 22:44
por rochinha
Amiguinho,

O empenho da equipe também depende dos detalhes passados. Convenhamos que voce não passou detalhes da função inc_Relat(). Então muitas vezes damos nossas dicas baseadas em problemas aos quais passamos, chutes as vezes.

Mas veja que dar um laudo de morte definida sem autópsia não é possivel.

Se roda em Clipper, ai que morre o perigo, pode ser que criticas estão passando direto e como gera a saida visual que deseja voce continua usando.

Com certeza sua função é baseada em vetor e de Clipper para Harbour pode ter novos segredos.