Orçamento de Vendas

Boa tarde, pessoal tudo bom?

Uma dúvida, estou desenvolvendo um relatório de orçamento de ferramentas, a primeira pagina está saindo ok, porém quando imprimo um orçamento com muitos itens,ele esta quebrando o box dos itens da segunda página, alguem tem uma opiniao do que pode ser?

Segue fonte e exemplo de pdf em anexo.

:warning: Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.

Boa tarde Kaolox.

Analisando o seu código, acredito que o problema esteja neste ponto do fonte:

376 While cAlias->(!Eof()) .AND. cAlias->CJ_NUM == cOrc

377

378 If nLinha >= 2360

379 //Linhas Horizontais - FIM ORCAMENTO

380 oPrint:Box(nLinha, nColuna + 0040, nLinha + 0050, nColuna + 2360)

381 //

382 IMPROD(@nLinha, @nColuna, NPag, nTotal)

383 IMPCAB(@nLinha, @nColuna, cOrc, cEmissao) //Nesta linha aqui - 383

384

385 nPag++

Isso porque na função IMPCAB a variável nColuna é alterada conforme mostrado abaixo:

161//================================================================

162==================================================================

163Static Function IMPCAB(nLinha, nColuna, cOrc, cEmissao)

164//================================================================

165==================================================================

166 Local cTexto := ""

167

168 nLinha := 0050 // Controle de Linhas

169 nColuna := 1500 // Indica a posição da primeira coluna - BEM AQUI É ALTERADA NA LINHA 169

Aí quando volta para a função IMPPRO o valor de nColuna será 1500 e não o valor que estava antes. Isso acontece porque o envio do parâmetro é por referência.

Sendo isso, uma ideia para resolver seria guardar um backup do valor de nColuna antes de chamar IMPCAB e voltar o valor que estava antes após a chamada.

Olá Rafael, tudo bom?

Obrigado pelo retorno, desculpe a demora mas poderia me dar um exemplo de como ficaria este backup?