Configurar formulário para razao
Moderador: Moderadores
- rubens
- Colaborador

- Mensagens: 1520
- Registrado em: 16 Ago 2003 09:05
- Localização: Nova Xavantina - MT
Configurar formulário para razao
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
? 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

- Mensagens: 21
- Registrado em: 10 Fev 2011 17:07
- Localização: São Paulo
Re: Configurar formulário para razao
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.
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.
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Re: Configurar formulário para razao
Rubens, se for impressora Epson... o comando certo é:
CHR(27)+'C'+CHR(31)
Abraços,
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
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
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Configurar formulário para razao
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.
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.
- rubens
- Colaborador

- Mensagens: 1520
- Registrado em: 16 Ago 2003 09:05
- Localização: Nova Xavantina - MT
Re: Configurar formulário para razao
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...
Rubens
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...
Vlw...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
Rubens
"Eu e minha casa servimos ao Senhor e você
"
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Re: Configurar formulário para razao
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.
Agora vamos analisar este seu exemplo:
Altera o valor de PROW e PCOL para 0
Vai ficar em LOOP até PROW() igual a 29, mas para sair do LOOP PROW() tem que valer 30.
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:
Abraços,
rubens escreveu:Fiz umas pesquisas no Fórum e vi umas postagens informando que se eu mandasse o comando
? chr(27)+chr(67)+"31"
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).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?
Agora vamos analisar este seu exemplo:
Código: Selecionar todos
SETPRC(0,0)Código: Selecionar todos
WHILE PROW() < 30Código: Selecionar todos
@ PROW()+1,00 SAY "LINHA "+STR(PROW(),2)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() < 25Toledo - 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
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
Re: Configurar formulário para razao
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
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)
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)
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Re: Configurar formulário para razao
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:Então o comando correto será CHR(27)+CHR(67)+"33"
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).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"
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
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
- rubens
- Colaborador

- Mensagens: 1520
- Registrado em: 16 Ago 2003 09:05
- Localização: Nova Xavantina - MT
Re: Configurar formulário para razao
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...

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.
Mas resolvi fazer como o toledo sugeriu de novo e continua saltando para a próxima página...

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ê
"
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Re: Configurar formulário para razao
Rubens, esta impressora que você está usando é uma EPSON?
Bom, se for, faça o seguinte:
1 - Altere o se código para:
2 - No painel da impressora tem como você escolher a fonte, escolha a fonte DRAFT.
Depois faça um outro teste.
Abraços,
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 SCREENDepois 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
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
- rubens
- Colaborador

- Mensagens: 1520
- Registrado em: 16 Ago 2003 09:05
- Localização: Nova Xavantina - MT
Re: Configurar formulário para razao
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
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ê
"
- Toledo
- Administrador

- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Re: Configurar formulário para razao
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.rubens escreveu:Desde o início eu estava pensando que o chr(31) era o número de 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
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