Configurar formulário para razao

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Configurar formulário para razao

Mensagem por rubens »

Fiz umas pesquisas no Fórum e vi umas postagens informando que se eu mandasse o comando
? chr(27)+chr(67)+"31"
a impressora ia ficar configurada para 31 linhas no meu caso aqui o formulário razao é 31 linhas e a folha inteira é 62 linhas.
Só que quando chega na linha 30 e envio um comando eject ele salta a folha inteira. Imaginei que com o comando eject ele ia para o inicio da próxima pagina do formulário razao, que é a linha 32.
Tenho que configurar mais alguma coisa para funcionar assim? ou não funciona dessa forma e toda vez que eu enviar um eject vai pular o formulario inteiro indo para o inicio da próxima pagina?

Eu usava o controle de linhas mas começou a dar problemas. Na primeira página do razão imprime bem, na segunda em diante sempre está abaixando uma linha... já revisei a rotina mas não encontrei nada de diferente ou que eu mudei da ultima versao para cá..
Tentei configurar o razão por ser mais fácil fazer o controle. Pelo controle de linhas são muitas variávies para se controlar...

Se alguem tiver uma dica aí...


Obrigado

Rubens
"Eu e minha casa servimos ao Senhor e você ???"
beltrani_mi
Usuário Nível 1
Usuário Nível 1
Mensagens: 21
Registrado em: 10 Fev 2011 17:07
Localização: São Paulo

Re: Configurar formulário para razao

Mensagem por beltrani_mi »

Boa tarde!

Tente assim:

Antes de começar a imprimir use o setprc(0,0).

Va imprimindo linha a linha utilizando prow()+1.

Para saber em qual linha está é só pegar o retorno da função prow().

Apos imprimir na linha 62 de um eject:

if prow() = 62
eject
endif

Apos o eject, o função prow() sera reiniciada com 0 (zero).

Não sei se é exatamente isso que vc precisa. Seria mais fácil de enviasse seu codigo.
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: Configurar formulário para razao

Mensagem por Toledo »

Rubens, se for impressora Epson... o comando certo é:

CHR(27)+'C'+CHR(31)

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Configurar formulário para razao

Mensagem por Pablo César »

No momento de dar um avanço de página, para não ocupar uma linha com ? ch(12) experiemente ?? chr(12) que irá ficar na mesma linha 30. Mas acredito que não deva ser esse o problema e sim o comando como o Sr. Toledo falou.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Re: Configurar formulário para razao

Mensagem por rubens »

Fiz como o Toledo falow mas não vejo diferença entre CHR(27)+"C"+CHR(31) e CHR(27)+CHR(67)+CHR(31) , por que CHR(67) vai se transformar em "C", correto?

fiz o teste com a rotina abaixo, mas continua saltando a página inteira quando envio um comando eject. Se Finalizasse a página na linha 31 e inicisasse a próxima pagina na linha "33" (32 é a serrilha) é que seria ideal, como não consegui tive que fazer a quebra na unha mesmo..
Se alguem tiver mais alguma sugestão ou correção da rotina abaixo, eu testo aqui de novo...
SET DEVICE TO PRINT
SET PRINTER TO LPT1
?? CHR(27)+"C"+CHR(31)
SETPRC(0,0)
FOR X = 1 TO 3
WHILE PROW() < 30
@ PROW()+1,00 SAY "LINHA "+STR(PROW(),2)
ENDDO
EJECT
NEXT
?? CHR(27)+"C"+CHR(62)
SET PRINTER TO
SET DEVICE TO SCREEN
Vlw...

Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: Configurar formulário para razao

Mensagem por Toledo »

Rubens, já desenvolvi relatórios para formulários de vários tamanhos, ontem mesmo fiz um com 51 linhas. E sempre usei o comando que lhe passei, mudando apenas o último CHR com o número de linhas.
rubens escreveu:Fiz umas pesquisas no Fórum e vi umas postagens informando que se eu mandasse o comando
? chr(27)+chr(67)+"31"
rubens escreveu:não vejo diferença entre CHR(27)+"C"+CHR(31) e CHR(27)+CHR(67)+CHR(31) , por que CHR(67) vai se transformar em "C", correto?
O comando que sempre usei EM IMPRESSORAS EPSON foi o que lhe passei. Nunca fiz um teste para ver se existe alguma diferença entre CHR(27)+"C"+CHR(31) e CHR(27)+CHR(67)+CHR(31), mas você tinha informado antes que estava usando chr(27)+chr(67)+"31", ai sim tem muita diferença com CHR(27)+"C"+CHR(31).

Agora vamos analisar este seu exemplo:

Código: Selecionar todos

SETPRC(0,0)
Altera o valor de PROW e PCOL para 0

Código: Selecionar todos

WHILE PROW() < 30
Vai ficar em LOOP até PROW() igual a 29, mas para sair do LOOP PROW() tem que valer 30.

Código: Selecionar todos

@ PROW()+1,00 SAY "LINHA "+STR(PROW(),2)
Aqui sempre vai estar imprimindo na linha seguinte de PROW() (PROW()+1), mudando dentro do DO WHILE o valor de PROW que é a condição para permanecer no DO WHILE.

Bom, como todo formulário começa na linha 0 (zero), então tudo indica que quando você sai do LOOP já vai estar na linha 31, então deve ser por isto que pula um formulário em branco.

Faça um teste, mude esta linha para:

Código: Selecionar todos

WHILE PROW() < 25
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
Clipper
Colaborador
Colaborador
Mensagens: 1334
Registrado em: 23 Ago 2004 00:04
Localização: Recife/PE

Re: Configurar formulário para razao

Mensagem por Clipper »

Prezado Colega

Uso em várias empresas o formulário razão, e em todas funciona perfeitamente, uma observação que tenho a fazer é que o formulário razão tem 33 linhas e não 31 como você mencionou, vejamos :

FORMULÁRIO CARTA = 11 polegadas
FORMULÁRIO RAZÃO = 5,5 polegadas

Se usarmos 6 linhas por polega que é o padrão então teremos :

11 x 6 = 66
5,5 x 6 = 33

Então o comando correto será CHR(27)+CHR(67)+"33"
Que é exatamente como eu uso.

Se usarmos 8 linhas por polegada então teremos :

11 x 8 = 88
5,5 x 8 = 44

Então o comando correto será CHR(27)+CHR(67)+"44"
Não uso assim porque em todos meus clientes imprimo em 6LPP, mas funciona perfeitamente para quem usa 8LPP.

Verifique.

Até logo.

Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: Configurar formulário para razao

Mensagem por Toledo »

Clipper escreveu:Então o comando correto será CHR(27)+CHR(67)+"33"
Bom, já to ficando confuso, sempre usei o comando CHR(27)+'C'+CHR(33) para formulários com 33 linhas (5,5 pol). Acho que CHR(27)+'C'+CHR(33) e CHR(27)+CHR(67)+CHR(33) é a mesma coisa, mas nunca fiz desta maneira como vocês fazem.
Clipper escreveu:Se usarmos 8 linhas por polegada então teremos :
11 x 8 = 88
5,5 x 8 = 44
Então o comando correto será CHR(27)+CHR(67)+"44"
Se vou utilizar 8 linhas por polegadas, só envio o comando CHR(27)+'0', mas uso o mesmo comando para o tamanho da página, que neste exemplo seria CHR(27)+'C'+CHR(33).

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Re: Configurar formulário para razao

Mensagem por rubens »

Bom pessoal, eu mandei imprimir uma pagina aqui e coube 62 linhas na página.. quando chega no picote ela está com 31 linhas...
Mas resolvi fazer como o toledo sugeriu de novo e continua saltando para a próxima página...

Imagem

tentei tb indicando 33 linhas mas dá o mesmo resultado... Mudei a linha ?? CHR(27)+"C"+CHR(31) para @ PROW(),PCOL() SAY CHR(27)+"C"+CHR(31) e também saltou a pagina inteira.

Código: Selecionar todos

SET DEVICE TO PRINT
SET PRINTER TO LPT1
?? CHR(27)+"C"+CHR(31)
SETPRC(0,0)
FOR X = 1 TO 3
	WHILE PROW() < 24
		@ PROW()+1,00 SAY "LINHA "+STR(PROW(),2)
	ENDDO
	EJECT
NEXT
?? CHR(27)+"C"+CHR(62)
SET PRINTER TO
SET DEVICE TO SCREEN
"Eu e minha casa servimos ao Senhor e você ???"
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: Configurar formulário para razao

Mensagem por Toledo »

Rubens, esta impressora que você está usando é uma EPSON?

Bom, se for, faça o seguinte:

1 - Altere o se código para:

Código: Selecionar todos

SET PRINTER TO LPT1
SET DEVICE TO PRINT
@ 0,0 SAY CHR(27)+"C"+CHR(33)
FOR X = 1 TO 3
   WHILE PROW() < 24
      @ PROW()+1,00 SAY "LINHA "+STR(PROW(),2)
   ENDDO
   EJECT
NEXT
@ PROW(),PCOL() SAY CHR(27)+'C'+CHR(66)
SET PRINTER TO
SET DEVICE TO SCREEN
2 - No painel da impressora tem como você escolher a fonte, escolha a fonte DRAFT.

Depois faça um outro teste.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Re: Configurar formulário para razao

Mensagem por rubens »

Toledo...

Resolveu...geralmente esses erros são por falta de atenção ou por insistência da gente mesmo em ficar testanto um tese errada e não prestar atenção em detalhes... Desde o início eu estava pensando que o chr(31) era o número de linhas, na realidade o chr(31) ou chr(33) não é número de linhas e sim comando... troquei para CHR(33) e funcionou. Indepente de começar com ?? ou @ prow(),pcol() e indepente de colocar o setprc(0,0) ou não...
Vlw.. e desculpa ter pertubado por uma falta de atenção minha aqui...


Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: Configurar formulário para razao

Mensagem por Toledo »

rubens escreveu:Desde o início eu estava pensando que o chr(31) era o número de linhas
Mas é o número de linhas! O que você tem que fazer para saber o número exato de linhas é pegar uma regua que tenha medição por polegadas, ai ver quantas polegadas tem o formulário de picote a picote. Ai é só fazer como o Marcelo (Clipper) explicou... em cada polegada tem 6 linhas. Então, se este seu formulário tem 5,5 polegadas, é só multiplicar por 6, que será igual a 33 linhas.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Responder