sim prezado parceiro... segue aí pra vc e para todos quantos se interessarem em aproveitar o código e/ou nos ajudar a desvendar esse mistério:asimoes escreveu:Outra coisa tem como você mostrar a parte do código onde gera o arquivo e imprime.
A IMPRESSÃO É DIVIDA EM DUAS PARTES, aí como ficava imprimindo por partes é que criei um direcionamento da impressão para o arquivo &CLI..PRN (onde CLI é uma variável que contém o código do cliente. Se o cliente for 0001, a variável será substituída por 0001.PRN).
A primeira parte do CÓDIGO É:
Código: Selecionar todos
set device to printer
set printer to &CLI..PRN ADDITIVE // há muito tempo que funciona assim no win 98, xp
// set printer to &DIR.\TEMP\&CLI..PRN ADDITIVE // tentei criar uma pasta temporária dentro da pasta do sistema, mas não entendi corretamente o processo da "[b]&[/b]";
* set printer to rec.txt // eliminado há muito tempo
@ prow(),pcol() say chr (27) + chr (33) + '5'
@ prow()+1,1 say 'NÆo Vale Como Cupom Fiscal'
@ prow(),pcol() say chr (27) + 'W' + '0'
@ prow()+1,00 say '+-------------------------------------------------------+'
@ prow()+1,00 say '| |'
@ prow()+1,00 say '| R E C I B O |'
@ prow()+1,00 say '| ----------- |'
@ prow()+1,00 say '| |'
@ prow()+1,00 say '| Recebemos de &NOME_DO_CLIENTE |'
@ prow()+1,00 say '| a(s) seguinte(s) presta‡Æo(äes) ref.parte ou total: |'
aCDCLI := mCDCLIENTE
RESET_IMPRESSORA () // veja esta função logo abaixo
Código: Selecionar todos
set device to printer
*set printer to lpt1
// set printer to &DIR.\TEMP\&CLI..PRN ADDITIVE
@ prow()+1,00 say '| |'
@ prow()+1,0 say '|&mMENSAG1.|'
@ prow()+1,0 say '|&mMENSAG2.|'
@ prow()+1,0 say '|&mMENSAG3.|'
@ prow()+1,0 say '|&mMENSAG4.|'
@ prow()+1,00 say '| |'
@ prow()+1,00 say '| Data : &DATA_PAGA |'
@ prow()+1,00 say '| ---------------------------------- |'
@ prow()+1,00 say '| C¢d. : &CLI. &NOME_EMP. |'
@ prow()+1,00 say '+-------------------------------------------------------+'
@ prow()+1,16 say 'Valor Total dos Recibos : ' +;
transform (mVT_RECIBO,pVR_RECEBI)
mVT_RECIBO := 0
RESET_IMPRESSORA ()
// !type &CLI..PRN>prn
// !del &CLI..PRN //
?'antes do type'
wait
// cCOMANDOs := "type &CLI..PRN>prn"
// hb_run (cCOMANDOS) //
// MyRun("type &DIR.\TEMP\&CLI..PRN>prn")
hb_run ("type "+CLI+".PRN>prn")
?'após o type'
wait
// cCOMANDOs := "del &CLI..PRN>prn"
// hb_run (cCOMANDOs)
// MyRun("del &DIR.\TEMP\&CLI..PRN")
hb_run ("del "+CLI+".PRN>prn")
?'após o del'
wait
Código: Selecionar todos
function RESET_IMPRESSORA()
if .not. VIDEO
@ prow(),pcol() say RESET
endif
set printer to
set device to screen
returnAh! querem saber sobre o momento exato da LAMA DE MARIANA chegando em Ipatinga pelo Rio Doce? CLIQUE AQUI por favor...


