Impressão de duplicados e triplicados

(mrreixa00) #1

Preciso de imprimir uma fatura em triplicado e cada uma das vias tem de estar indentificada por ex: Original, duplicado ou triplicado.
Como posso fazer isso?
Já tentei de várias formas mas ainda não consegui.

(j.arteiro) #2

A solução mais parecida com a sua necessidade, não perfeita, seria chamar em abas diferentes a mesma aplicação report pdf.

Dessa forma, o usuário irá imprimir dois pdfs, gerando duas vias de registros.

Estava testando com a função SQL: REPEAT, mas infelizmente não conseguir gerar uma solução interessante com a mesma.

(Cleyton Euler) #3

Seguinte,

Visto que com o Report PDF não é possível fazer, ou pelo menos difícil, eu faria uma página formatando o relatório. Usaria uma repetição for para imprimir 3 vezes na página, para cada uma mandaria escrever uma tag: original na primeira repetição, duplicado na segunda e triplicado na terceira e para quebrar na impressão usaria uma marcação CSS que faz essa quebra. Faria um controle para filtrar a duplicata e usaria o sc_redir para chamar a página em questão.

Não testei, mas acho que funciona perfeitamente.

(mrreixa00) #4

Já consegui fazer a impressão dos duplicados, triplicados.
O problema é que o detalhe pode passar para outra página, e com a função sc_pdf_add_page consigo obrigar a saltar de página e a continuar a imprimir, só que não imprime a imagem png e não imprime o footer na página anterior e na nova página.
tenho o corpo do report assim:
/------------------ Page 1 -----------------/
sc_pdf_print_img($logo, 40, 0);
sc_pdf_print($cell_empresa);
sc_pdf_print($documento);
sc_pdf_print($via);
sc_pdf_print($Numerodocdes);
sc_pdf_print($cell_81);
sc_pdf_print_mult($morada, 2.8222222222222);
sc_pdf_print($datads);
sc_pdf_print($data);
sc_pdf_print($cell_slogan);
sc_pdf_print($capital_desc);
sc_pdf_print($cell_capital);
sc_pdf_print($cell_73);
sc_pdf_print($cell_74);
sc_pdf_print($cell_matricula);
sc_pdf_print($cell_75);
sc_pdf_print($cell_nif);
sc_pdf_print($nome_cliente);
sc_pdf_print($cell_76);
sc_pdf_print($cell_telefone);
sc_pdf_print_mult($morada_cliente, 3.175);
sc_pdf_print($cell_77);
sc_pdf_print($cell_fax);
sc_pdf_print($cell_78);
sc_pdf_print($cell_website);
sc_pdf_print($cell_79);
sc_pdf_print($cell_email);
sc_pdf_print($cell_nifcliente);
sc_pdf_print($referencia);
sc_pdf_print($cell_condicao_pagamento);
sc_pdf_print($vencimento);
sc_pdf_print($vendedor);
sc_pdf_set_y(108);
foreach ({Linhas} as $NM_ind => $Dados)
{
sc_pdf_print_sub_sel($cell_Linhas_quant_emb_vl[$NM_ind]);
sc_pdf_print_sub_sel_mult($cell_Linhas_produto_ds[$NM_ind], 3.175);
sc_pdf_print_sub_sel($cell_Linhas_pv_unit_vl[$NM_ind]);
sc_pdf_print_sub_sel($cell_Linhas_desconto_vl[$NM_ind]);
sc_pdf_print_sub_sel($cell_Linhas_pv_total_vl[$NM_ind]);
sc_pdf_ln(4);
$linha_impressa = sc_pdf_get_y();
if ($linha_impressa > 130 )
{
sc_pdf_add_page();
sc_pdf_print_img($logo, 40, 0);
sc_pdf_print($cell_empresa);
sc_pdf_print($documento);
sc_pdf_print($via);
sc_pdf_print($Numerodocdes);
sc_pdf_print($cell_81);
sc_pdf_print_mult($morada, 2.8222222222222);
sc_pdf_print($datads);
sc_pdf_print($data);
sc_pdf_print($cell_slogan);
sc_pdf_print($capital_desc);
sc_pdf_print($cell_capital);
sc_pdf_print($cell_73);
sc_pdf_print($cell_74);
sc_pdf_print($cell_matricula);
sc_pdf_print($cell_75);
sc_pdf_print($cell_nif);
sc_pdf_print($nome_cliente);
sc_pdf_print($cell_76);
sc_pdf_print($cell_telefone);
sc_pdf_print_mult($morada_cliente, 3.175);
sc_pdf_print($cell_77);
sc_pdf_print($cell_fax);
sc_pdf_print($cell_78);
sc_pdf_print($cell_website);
sc_pdf_print($cell_79);
sc_pdf_print($cell_email);
sc_pdf_print($cell_nifcliente);
sc_pdf_print($referencia);
sc_pdf_print($cell_condicao_pagamento);
sc_pdf_print($vencimento);
sc_pdf_print($vendedor);
sc_pdf_set_y(108);

             }
        }
        sc_pdf_print($subtotal);
        sc_pdf_print($descomercial);
        sc_pdf_print($descfinanc);
        sc_pdf_print($portes);
        sc_pdf_print($totaliva);
        sc_pdf_print($adiantamentos);
        sc_pdf_print($totalgeral);
        sc_pdf_print($cell_legal_ds);
        sc_pdf_page($cell_102);
       /*-------------------------------------------*/
(Max Veras) #5

quando é um registro novo ele imprime normalmente?

porem se o detalhe tiver um conteudo maior ele passa para outra pagina totalmente em branco ?

(mrreixa00) #6

Depois da alteração que eu fiz ele salta de página e imprime cabeçalhos
na página seguinte e o restante detalhe.