Imprimir III
Moderador: Moderadores
Imprimir III
Olá,
Estou usando a funcao EDICAO, conforme fui orientado aqui no forum. Esta funcao mostra na tela o conteudo de um arquivo.txt. Porem somente agora percebi, que o arquivo txt,nao esta aparecendo o conteudo total do meu relatorio, apenas os primeiros 42 clientes, sendo que no cadastro possui mais de 100 clientes cadastros. Eu acho que o problema esta na criacao do txt.
Para criar o arquivo dbf temporario;
- o meu programa esta na pasta c;\sistema
-o arquivo dbf temporario eu crio na pasta c;\temp
copy to c:\temp\arqtemp.dbf for cod >= m_cod1 .AND. cod <= m_cod2
Use c:\temp\arqtemp.dbf alias temp new
(o DBF é criado´corretamente, com todos os clientes)
PARA CRIAR o TXT:
set print to arqtemp.txt
(o arqtemp.txt, é criado apenas com os primeiros 42 clientes)
Outra coisa:
Quando mando imprimir apenas 10 clientes, o DBF temporario é criado, o arquivo txt tambem é criado corretamente, mas a funcao EDICAO nao funciona (nao aparece o arquivo txt na tela)
Ewerton
Estou usando a funcao EDICAO, conforme fui orientado aqui no forum. Esta funcao mostra na tela o conteudo de um arquivo.txt. Porem somente agora percebi, que o arquivo txt,nao esta aparecendo o conteudo total do meu relatorio, apenas os primeiros 42 clientes, sendo que no cadastro possui mais de 100 clientes cadastros. Eu acho que o problema esta na criacao do txt.
Para criar o arquivo dbf temporario;
- o meu programa esta na pasta c;\sistema
-o arquivo dbf temporario eu crio na pasta c;\temp
copy to c:\temp\arqtemp.dbf for cod >= m_cod1 .AND. cod <= m_cod2
Use c:\temp\arqtemp.dbf alias temp new
(o DBF é criado´corretamente, com todos os clientes)
PARA CRIAR o TXT:
set print to arqtemp.txt
(o arqtemp.txt, é criado apenas com os primeiros 42 clientes)
Outra coisa:
Quando mando imprimir apenas 10 clientes, o DBF temporario é criado, o arquivo txt tambem é criado corretamente, mas a funcao EDICAO nao funciona (nao aparece o arquivo txt na tela)
Ewerton
-
Ademir
- Usuário Nível 3

- Mensagens: 170
- Registrado em: 31 Jul 2007 16:28
- Localização: Porto Ferreira-SP
Editar arquivo.
Bom dia !
Acabei de testar e funciona no Clipper 5.3.
Tente abrir o arquivo utilizando o Bloco de Notas do Windows por exemplo. Para XP ficaria assim:
RUN \WINDOWS\NOTEPAD.EXE NOMEDOARQUIVO.TXT
Acabei de testar e funciona no Clipper 5.3.
Tente abrir o arquivo utilizando o Bloco de Notas do Windows por exemplo. Para XP ficaria assim:
RUN \WINDOWS\NOTEPAD.EXE NOMEDOARQUIVO.TXT
Código: Selecionar todos
function prx0012()
tecli:= SaveScreen(5, 6, 20, 75)
use clientes alias clie shar new
set index to ind_cod, ind_emp
centra(2, "®¯ RELATORIO ORDEM NUMERICA ®¯")
nomepro()
mens("Digite o Codigo a ser Impresso! | <ESC> Sai")
do while (.T.)
te0012()
sele clie
private m_cod1:= 0, m_cod2:= 0, pag:= 0
SetColor("gr+/b", "n/gr+")
@ 23, 13 say " "
do while (.T.)
mens("Digite o Codigo a ser Impresso! | <ESC> Sai")
cor(6)
setcursor(1)
m_cod1:= 1
m_cod2:= 9999
setcursor(2)
@ 11, 48 get m_cod1 picture "9999" valid m_cod1 > 0
@ 12, 48 get m_cod2 picture "9999" valid m_cod2 > 0
read
if (m_cod2 < m_cod1)
mens("Codigo Final menor que Inicial! | <ENTER> Retorna")
tone(900, 9)
InKey(0)
loop
endif
exit
enddo
if (LastKey() == 27)
close databases
return
endif
copy to c:\ERCS\arqtemp.dbf for cod >= m_cod1 .AND. cod <= m_cod2
use C:\ERCS\arqtemp.DBF alias temp new
ENDIF
if (LastRec() == 0)
mens("Cliente nao Cadastrado!")
tone(900, 9)
InKey(6)
close databases
return
endif
confirma("Relatorio","Clientes")
cresp:= Space(1)
cresp1:= Space(1)
@ 23, 78 get Cresp picture "@!" valid cresp $ "SN"
read
if (cresp = "N")
close databases
return
else
if (LastKey() == 27)
close databases
return
endif
endif
mens("Escolha o Tipo Relatorio - Video/Arquivo/Impressora")
@ 23, 78 get Cresp1 picture "@!" valid cresp1 $ "VAI"
read
if cresp1 = "I"
set print to LPT1
else
set print to arqtemp.txt
endif
if (LastKey() == 27)
close databases
return
endif
impress()
goto top
mens("Aguarde IMPRIMINDO Relatorio de Clientes...")
set device to printer
setprc(0, 0)
do while (.T.)
pag++
@ 00,00 say chr(15)
@ PRow() + 1, 0 say "DATA..: " + DToC(Date())
@ PRow(), 0 say "DATA..: " + DToC(Date())
@ PRow(), 40 say "RELATORIO DE CLIENTE POR CODIGO - De: a "
@ PRow(), 40 say "RELATORIO DE CLIENTE POR CODIGO - De: a "
@ PRow(), 78 say strzero(m_cod1, 4, 0)
@ PRow(), 78 say strzero(m_cod1, 4, 0)
@ PRow(), 85 say strzero(m_cod2, 4, 0)
@ PRow(), 85 say strzero(m_cod2, 4, 0)
@ PRow(), 122 say "PAG..: " + strzero(pag, 3, 0)
@ PRow(), 122 say "PAG..: " + strzero(pag, 3, 0)
empresa(3)
@ PRow() + 1, 0 say Replicate("-", 133)
@ PRow(), 0 say Replicate("-", 133)
@ PRow() + 1, 0 say "CODIGO NOME/ENDERECO BAIRRO/CIDADE CEP /UF FONE/FAX CGC/Ins.Estadual"
@ PRow() , 0 say "CODIGO NOME/ENDERECO BAIRRO/CIDADE CEP /UF FONE/FAX CGC/Ins.Estadual"
@ PRow() + 1, 0 say Replicate("-", 133)
@ PRow(), 0 say Replicate("-", 133)
do while (!EOF() .AND. PRow() <= 59)
@ PRow() + 1, 1 say strzero(cod, 4, 0)
@ PRow(), 7 say emp
@ PRow(), 48 say bai
@ PRow(), 74 say cep
@ PRow(), 91 say fon
@ PRow(), 108 say cgc
@ PRow() + 1, 7 say end
@ PRow(), 48 say cid
@ PRow(), 85 say est
@ PRow(), 91 say fax
@ PRow(), 108 say ins
@ PRow() + 1, 0 say Replicate("-", 133)
skip
enddo
eject
@ 0, 0 say " "
if (EOF())
set device to screen
close databases
return
endif
if cresp1 = "V"
edicao("arqtemp.txt")
set device to screen
close databases
return
endif
enddo
enddo
(5, 6, 20, 75, restscreen:= tecli)
return
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Tche, dei uma alterada...testa qualquer coisa volta aqui !!!
Código: Selecionar todos
function prx0012()
tecli:= SaveScreen(5, 6, 20, 75)
use clientes alias clie shar new
set index to ind_cod, ind_emp
centra(2, "®¯ RELATORIO ORDEM NUMERICA ®¯")
nomepro()
mens("Digite o Codigo a ser Impresso! | <ESC> Sai")
do while (.T.)
te0012()
sele clie
private m_cod1:= 0, m_cod2:= 0, pag:= 0
SetColor("gr+/b", "n/gr+")
@ 23, 13 say " "
do while (.T.)
mens("Digite o Codigo a ser Impresso! | <ESC> Sai")
cor(6)
setcursor(1)
m_cod1:= 1
m_cod2:= 9999
setcursor(2)
@ 11, 48 get m_cod1 picture "9999" valid m_cod1 > 0
@ 12, 48 get m_cod2 picture "9999" valid m_cod2 > 0
read
if (m_cod2 < m_cod1)
mens("Codigo Final menor que Inicial! | <ENTER> Retorna")
tone(900, 9)
InKey(0)
loop
endif
exit
enddo
if (LastKey() == 27)
close databases
return
endif
copy to c:\ERCS\arqtemp.dbf for cod >= m_cod1 .AND. cod <= m_cod2
use C:\ERCS\arqtemp.DBF alias temp new
* ENDIF
if (LastRec() == 0)
mens("Cliente nao Cadastrado!")
tone(900, 9)
InKey(6)
close databases
return
endif
confirma("Relatorio","Clientes")
cresp:= Space(1)
cresp1:= Space(1)
@ 23, 78 get Cresp picture "@!" valid cresp $ "SN"
read
if (cresp = "N")
close databases
return
else
if (LastKey() == 27)
close databases
return
endif
endif
mens("Escolha o Tipo Relatorio - Video/Arquivo/Impressora")
@ 23, 78 get Cresp1 picture "@!" valid cresp1 $ "VAI"
read
if cresp1 = "I"
set print to LPT1
else
set print to arqtemp.txt
endif
if (LastKey() == 27)
close databases
return
endif
impress()
goto top
mens("Aguarde IMPRIMINDO Relatorio de Clientes...")
set device to printer
setprc(0, 0)
do while (.T.)
pag++
@ 00,00 say chr(15)
@ PRow() + 1, 0 say "DATA..: " + DToC(Date())
@ PRow(), 0 say "DATA..: " + DToC(Date())
@ PRow(), 40 say "RELATORIO DE CLIENTE POR CODIGO - De: a "
@ PRow(), 40 say "RELATORIO DE CLIENTE POR CODIGO - De: a "
@ PRow(), 78 say strzero(m_cod1, 4, 0)
@ PRow(), 78 say strzero(m_cod1, 4, 0)
@ PRow(), 85 say strzero(m_cod2, 4, 0)
@ PRow(), 85 say strzero(m_cod2, 4, 0)
@ PRow(), 122 say "PAG..: " + strzero(pag, 3, 0)
@ PRow(), 122 say "PAG..: " + strzero(pag, 3, 0)
empresa(3)
@ PRow() + 1, 0 say Replicate("-", 133)
@ PRow(), 0 say Replicate("-", 133)
@ PRow() + 1, 0 say "CODIGO NOME/ENDERECO BAIRRO/CIDADE CEP /UF FONE/FAX CGC/Ins.Estadual"
@ PRow() , 0 say "CODIGO NOME/ENDERECO BAIRRO/CIDADE CEP /UF FONE/FAX CGC/Ins.Estadual"
@ PRow() + 1, 0 say Replicate("-", 133)
@ PRow(), 0 say Replicate("-", 133)
do while !EOF() //.AND. PRow() <= 59)
@ PRow() + 1, 1 say strzero(cod, 4, 0)
@ PRow(), 7 say emp
@ PRow(), 48 say bai
@ PRow(), 74 say cep
@ PRow(), 91 say fon
@ PRow(), 108 say cgc
@ PRow() + 1, 7 say end
@ PRow(), 48 say cid
@ PRow(), 85 say est
@ PRow(), 91 say fax
@ PRow(), 108 say ins
@ PRow() + 1, 0 say Replicate("-", 133)
skip
enddo
eject
@ 0, 0 say " "
if EOF()
set device to screen
close databases
return
endif
if cresp1 = "V"
edicao("arqtemp.txt")
set device to screen
close databases
return
endif
enddo
enddo
(5, 6, 20, 75, restscreen:= tecli)
returnLeonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
Sygecom, aquele ENDIF eu já tinha visto, mas o problema não seria este. O que esta acontecendo é que o txt não é criado com todo o conteudo que esta no DBF temporario, entendeu? A funcao edicao funciona corretamente, mas n"ao contem todo o conteudo do DBF temporario.
E quando eu coloco p/ imprimir apenas os 10 clientes, neste caso, a funcao EDICAO nao funciona.
Será alguma coisa com a configuracao do XP, no caso os FILES?
E quando eu coloco p/ imprimir apenas os 10 clientes, neste caso, a funcao EDICAO nao funciona.
Será alguma coisa com a configuracao do XP, no caso os FILES?
Se eu anular o (//.AND. PRow() <= 59) nao vai dar problema na hora de mudar de pagina?
Acho que achei a solucao, queria saber sua opniao? Eu coloquei o EDICAO dentro do IF (eof()), fiz o teste e deu certo. Pode me explicar o motivo?
do while !EOF()
@ PRow() + 1, 1 say strzero(cod, 4, 0)
@ PRow(), 7 say emp
@ PRow(), 48 say bai
@ PRow(), 74 say cep
@ PRow(), 91 say fon
@ PRow(), 108 say cgc
@ PRow() + 1, 7 say end
@ PRow(), 48 say cid
@ PRow(), 85 say est
@ PRow(), 91 say fax
@ PRow(), 108 say ins
@ PRow() + 1, 0 say Replicate("-", 133)
skip
enddo
eject
@ 0, 0 say " "
if EOF()
if cresp1 = "V"
edicao("arqtemp.txt")
endif
set device to screen
close databases
return
endif
* if cresp1 = "V"
* edicao("arqtemp.txt")
* set device to screen
* close databases
* return
* endif
enddo
enddo
(5, 6, 20, 75, restscreen:= tecli)
return
Acho que achei a solucao, queria saber sua opniao? Eu coloquei o EDICAO dentro do IF (eof()), fiz o teste e deu certo. Pode me explicar o motivo?
do while !EOF()
@ PRow() + 1, 1 say strzero(cod, 4, 0)
@ PRow(), 7 say emp
@ PRow(), 48 say bai
@ PRow(), 74 say cep
@ PRow(), 91 say fon
@ PRow(), 108 say cgc
@ PRow() + 1, 7 say end
@ PRow(), 48 say cid
@ PRow(), 85 say est
@ PRow(), 91 say fax
@ PRow(), 108 say ins
@ PRow() + 1, 0 say Replicate("-", 133)
skip
enddo
eject
@ 0, 0 say " "
if EOF()
if cresp1 = "V"
edicao("arqtemp.txt")
endif
set device to screen
close databases
return
endif
* if cresp1 = "V"
* edicao("arqtemp.txt")
* set device to screen
* close databases
* return
* endif
enddo
enddo
(5, 6, 20, 75, restscreen:= tecli)
return
