Página 1 de 1

Video x Impressora (URGENTE)

Enviado: 06 Abr 2006 00:10
por diegofreak
E ae pessoal,

Bom, tenho de fazer meu programa mostrar e imprimir os dados apresentados na tela.

A impressão está ok, agora fazer essa sincronia está complicado...rss
Sei que existe o SET DEVICE TO SCREEN, no qual se coloca no final da rotina, alguém pode me dizer onde ?...rss

Segue o código:

clear
USE tecnico INDEX indtec
USE nivel INDEX indniv NEW
SELE tecnico
l=8
p=1

DO WHILE .NOT. EOF()
SET DEVICE TO PRINT
@2,2 SAY "Data: " + dtoc(date())
@2,60 SAY "Pagina: " + ltrim(str(p))
@4,20 SAY "RELACAO DE ALUNOS POR NIVEL"
@6,2 SAY "Codigo"
@6,10 SAY "Nome"
@6,50 SAY "Nivel"
@7,2 SAY replicate ("=",70)
DO WHILE l < 20 .AND. .NOT. EOF()
@l,2 SAY CODIGO
@l,10 SAY NOME
chave1=niv
SELE nivel
seek chave1
@l,50 SAY NOME
SELE técnico
l=l+1
SKIP
ENDDO
INKEY(2)
EJECT
p=p+1
l=8

ENDDO
INKEY(3)
DO PRINCIPAL


Espero que alguém possa me ajudar!
Fico muito agradecido!

Obrigado mesmo!
Até!

Enviado: 06 Abr 2006 11:56
por alaminojunior
Ele deve ficar antes do Do While

Re: Video x Impressora (URGENTE)

Enviado: 06 Abr 2006 14:36
por digitom
diegofreak escreveu:E ae pessoal,

Bom, tenho de fazer meu programa mostrar e imprimir os dados apresentados na tela.

A impressão está ok, agora fazer essa sincronia está complicado...rss
Sei que existe o SET DEVICE TO SCREEN, no qual se coloca no final da rotina, alguém pode me dizer onde ?...rss

Segue o código:

clear
USE tecnico INDEX indtec
USE nivel INDEX indniv NEW
SELE tecnico
l=8
p=1

DO WHILE .NOT. EOF()
SET DEVICE TO PRINT
@2,2 SAY "Data: " + dtoc(date())
@2,60 SAY "Pagina: " + ltrim(str(p))
@4,20 SAY "RELACAO DE ALUNOS POR NIVEL"
@6,2 SAY "Codigo"
@6,10 SAY "Nome"
@6,50 SAY "Nivel"
@7,2 SAY replicate ("=",70)
DO WHILE l < 20 .AND. .NOT. EOF()
@l,2 SAY CODIGO
@l,10 SAY NOME
chave1=niv
SELE nivel
seek chave1
@l,50 SAY NOME
SELE técnico
l=l+1
SKIP
ENDDO
INKEY(2)
EJECT
p=p+1
l=8

ENDDO
INKEY(3)
DO PRINCIPAL


Espero que alguém possa me ajudar!
Fico muito agradecido!

Obrigado mesmo!
Até!
Tente da seguinte forma:

clear
USE tecnico INDEX indtec
USE nivel INDEX indniv NEW
SELE tecnico
l=8
p=1

SET CONSOLE OFF
SET DEVICE TO PRINT

DO WHILE .NOT. EOF()
@2,2 SAY "Data: " + dtoc(date())
@2,60 SAY "Pagina: " + ltrim(str(p))
@4,20 SAY "RELACAO DE ALUNOS POR NIVEL"
@6,2 SAY "Codigo"
@6,10 SAY "Nome"
@6,50 SAY "Nivel"
@7,2 SAY replicate ("=",70)
DO WHILE l < 20 .AND. .NOT. EOF()
@l,2 SAY CODIGO
@l,10 SAY NOME
chave1=niv
SELE nivel
seek chave1
@l,50 SAY NOME
SELE técnico
l=l+1
SKIP
ENDDO
INKEY(2)
EJECT
p=p+1
l=8
ENDDO

SET PRINTER TO
SET DEVICE TO SCREEN
SET CONSOLE ON

INKEY(3)
DO PRINCIPAL
Fui........ :|<

Re: Video x Impressora (URGENTE)

Enviado: 06 Abr 2006 21:04
por diegofreak
digitom escreveu:
diegofreak escreveu:E ae pessoal,

Bom, tenho de fazer meu programa mostrar e imprimir os dados apresentados na tela.

A impressão está ok, agora fazer essa sincronia está complicado...rss
Sei que existe o SET DEVICE TO SCREEN, no qual se coloca no final da rotina, alguém pode me dizer onde ?...rss

Segue o código:

clear
USE tecnico INDEX indtec
USE nivel INDEX indniv NEW
SELE tecnico
l=8
p=1

DO WHILE .NOT. EOF()
SET DEVICE TO PRINT
@2,2 SAY "Data: " + dtoc(date())
@2,60 SAY "Pagina: " + ltrim(str(p))
@4,20 SAY "RELACAO DE ALUNOS POR NIVEL"
@6,2 SAY "Codigo"
@6,10 SAY "Nome"
@6,50 SAY "Nivel"
@7,2 SAY replicate ("=",70)
DO WHILE l < 20 .AND. .NOT. EOF()
@l,2 SAY CODIGO
@l,10 SAY NOME
chave1=niv
SELE nivel
seek chave1
@l,50 SAY NOME
SELE técnico
l=l+1
SKIP
ENDDO
INKEY(2)
EJECT
p=p+1
l=8

ENDDO
INKEY(3)
DO PRINCIPAL


Espero que alguém possa me ajudar!
Fico muito agradecido!

Obrigado mesmo!
Até!
Tente da seguinte forma:

clear
USE tecnico INDEX indtec
USE nivel INDEX indniv NEW
SELE tecnico
l=8
p=1

SET CONSOLE OFF
SET DEVICE TO PRINT

DO WHILE .NOT. EOF()
@2,2 SAY "Data: " + dtoc(date())
@2,60 SAY "Pagina: " + ltrim(str(p))
@4,20 SAY "RELACAO DE ALUNOS POR NIVEL"
@6,2 SAY "Codigo"
@6,10 SAY "Nome"
@6,50 SAY "Nivel"
@7,2 SAY replicate ("=",70)
DO WHILE l < 20 .AND. .NOT. EOF()
@l,2 SAY CODIGO
@l,10 SAY NOME
chave1=niv
SELE nivel
seek chave1
@l,50 SAY NOME
SELE técnico
l=l+1
SKIP
ENDDO
INKEY(2)
EJECT
p=p+1
l=8
ENDDO

SET PRINTER TO
SET DEVICE TO SCREEN
SET CONSOLE ON

INKEY(3)
DO PRINCIPAL
Fui........ :|<

Então digitom fiz o procedimento que você me disse e a tela fica preta (sem nenhum dado), logo que fecho o programa ele imprime corretamente!

o SET PRINTER TO não tem nenhum parametro a mais ?
é assim mesmo a sintaxe, apenas isso ?

Segue o código (com a modificação):
PROCEDURE P_REL_N
CLEAR
USE tecnico INDEX indtec
USE nivel INDEX indniv NEW
SELE tecnico
l=8
p=1
r=0

SET CONSOLE OFF
SET DEVICE TO PRINT

DO WHILE .NOT. EOF()
@2,2 SAY "Data: " + dtoc(date())
@2,60 SAY "Pagina: " + ltrim(str(p))
@4,20 SAY "RELACAO DE ALUNOS POR NIVEL"
@6,2 SAY "Codigo"
@6,10 SAY "Nome"
@6,50 SAY "Nivel"
@7,2 SAY replicate ("=",70)
DO WHILE l < 20 .AND. .NOT. EOF()
chave1=niv
IF chave1 = sel_niv
@l,2 SAY CODIGO
@l,10 SAY NOME
chave1=niv
SELE nivel
seek chave1
@l,50 SAY NOME
SELE tecnico
l=l+1
r=r+1
SKIP
ELSE
SELE tecnico
SKIP
ENDIF

ENDDO
@21,2 SAY replicate("=",70)
@22,2 SAY "Registro(s) nesta pagina: " + ltrim(str(r))
EJECT
p=p+1
l=8
r=0

ENDDO
SET PRINTER TO
SET DEVICE TO SCREEN
SET CONSOLE ON

INKEY(0)
DO PRINCIPAL
Muito Obrigado!