Página 1 de 1

Cabeçalho e Rodapé com .PRN e WIN32PRN

Enviado: 02 Fev 2010 14:16
por EANDRIOLI
Amigos!!!

Estou tentando imprimir um arquivo .PRN (ele possui comandos EJECT para ir para nova folha e possui IF PROW()=0 para testar inicio de folha para imprimir o cabeçalho).

1. Pergunto: devo eliminar o EJECT() do arquivo quando gero o mesmo pelo .PRG?

2. Ou seria correto gerar um .prn normal sem o EJECT?

3. Alguem poderia passar um modelo usando o teste de fim e inicio de folha para imprimir os cabeçalhos e rodapés?

4. Ou tudo isso deve ser feito dentro da WIN32?

Saudações

ERASMO ANDRIOLI

Re: CABEÇALHO E RODAPÉ COM .PRN E WIN32PRN

Enviado: 02 Fev 2010 20:30
por Itamar M. Lins Jr.
Se for usar WinPrn, não irá funcionar nenhum comando desses eject, chr(14),chr(15) é coisa do passado.
Até porque se for enviado via printfileraw(...) para uma impressora "FOR WINDOWS" vai travar e da um trabalho excluir o tal documento da fila. Todas as vezes que acontece isso nos clientes temos que reiniciar até o computador.
Quanto aos cabeçalhos e rodapes eu não sei responder.
Eu uso a fonte "Courier New" ou "Lucida Console" para imprimir, então é bem parecido como era feito no clipper, só não uso os comando acima.

Código: Selecionar todos

oPrn:SetPrc(4,0)
oPrn:CharSet(0)
oPrn:Bold(0)
oprn:SetFont('Lucida Console',7,0)

oprn:TextOut('*----------------------------------------------------------------------------------------------------------------------------------*',.t.)
oprn:TextOut('|                                      LIVRO REGISTRO DE APURACAO DO ICMS - RAICMS - MODELO P9                                     |',.t.)
oprn:TextOut('|                                                                                                                                  |',.t.)
oprn:TextOut('| Firma....: '+em->empresa+'                                                                                   |',.t.)
oprn:TextOut('| Insc.Est.: '+em->i_e + spac(10)+ 'CNPJ: '+ em->cgc+'                                                                          |',.t.)
oprn:TextOut('| Folha: '+ zero_esq(pagina,4)+spac(20)+'MES OU PERIODO/ANO: '+ pad(mes(mes)+'/'+ano,36)+spac(37)+'     |',.t.)
oprn:TextOut('|----------------------------------------------------------------------------------------------------------------------------------|',.t.)
oprn:TextOut('|                                                     E N T R A D A S                                                              |',.t.)
oprn:TextOut('|------------------------+----------------------+----------------------------------------------------------------------------------|',.t.)
oprn:TextOut('|      CODIFICACAO       |       VALORES        |                              ICMS - VALORES FISCAIS                              |',.t.)
oprn:TextOut('|----------+-------------+                      +----------------------------------------+-----------------------------------------|',.t.)
oprn:TextOut('|          |             |                      |     OPERACOES COM CREDITO DO IMPOSTO   |    OPERACOES SEM CREDITO DO IMPOSTO     |',.t.)
oprn:TextOut('|          |             |      CONTABEIS       +--------------------+-------------------+---------------------+-------------------|',.t.)
oprn:TextOut('| CONTABIL |    FISCAL   |                      |   BASE DE CALCULO  | IMPOSTO CREDITADO | ISENTA OU N. TRIBUT.|      OUTRAS       |',.t.)
oprn:TextOut('*----------+-------------+----------------------+--------------------+-------------------+---------------------+-------------------*',.t.)
Podemos usar tambem os caracteres estendido para uma melhor aparencia nos formulários.
ou usar os comandos nativos BOX, ARC, ELLIPSE.


Saudações,
Itamar M. Lins Jr.