Salto na Ordem de Execução de Programa

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Marcio_Carneiro
Usuário Nível 2
Usuário Nível 2
Mensagens: 70
Registrado em: 07 Abr 2008 15:37
Localização: Santo Antônio de Pádua - RJ

Salto na Ordem de Execução de Programa

Mensagem 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
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Salto na Ordem de Execução de Programa

Mensagem 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.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Marcio_Carneiro
Usuário Nível 2
Usuário Nível 2
Mensagens: 70
Registrado em: 07 Abr 2008 15:37
Localização: Santo Antônio de Pádua - RJ

Salto na Ordem de Execução de Programa

Mensagem 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
Marcio_Carneiro
Usuário Nível 2
Usuário Nível 2
Mensagens: 70
Registrado em: 07 Abr 2008 15:37
Localização: Santo Antônio de Pádua - RJ

Salto na Ordem de Execução de Programa

Mensagem 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
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Salto na Ordem de Execução de Programa

Mensagem 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.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Responder