Page 1 of 1

TMU + TPRINT

Posted: Thu Jan 22, 2009 10:29 pm
by LuisPonce
Hola

Tengo una ticketera TMU en un puerto COM1, y para imprimir sobre ella nombre la impresora como TIKCETS para el windows XP, pero al momento de mandar el texto con la clase TPRINTER me da "No es posible imprimir en el puerto COM1", ya hice todas las pruebas sobre windows "pagina de prueba", un texto en Word y todo eso y sale normal, el problema estara en mi codigo ???

lImpDos = si es impresion DOS o NO si es asi uso la TDOSPRN

IF lImpDos

nVer:=13
nVerSon:=(nVer+nMaxDoc)
nRow:=2

oPrnCmp:=TDosPrn():New(cLptDoc)
oPrnCmp:Command( { 27, 64 } )

IF IMPCBT // imprime cabecera ??

oPrnCmp:Say( nRow, 00, PADC(TRIM(cMiCia),40), )
nRow++

DO CASE
CASE UPPER(cMiCia)="ELECTROSERVIS"
oPrnCmp:Say( nRow, 00, PADC('De : '+TRIM(cMiPro),40), nCompress )
nRow++
oPrnCmp:Say( nRow, 00, PADC('Pri. '+TRIM(cMiDir)+' ABANCAY',40), nCompress )
OTHER
nRow++
oPrnCmp:Say( nRow, 00, PADC(TRIM(cMiDi3)+' LIMA',40), nCompress )
ENDCASE

IF IMPSUC
DO CASE
CASE UPPER(cMiCia)="ELECTROSERVIS"
nRow++
oPrnCmp:Say( nRow, 00, PADC('Suc. '+TRIM(cMiDi2)+" "+TRIM(IMPSDE),40), nCompress )
CASE cMiCia="HOREB"
nRow++
oPrnCmp:Say( nRow, 00, PADC(TRIM(cMiDi3)+' LIMA',40), nCompress )
ENDCASE
ENDIF

nRow++
oPrnCmp:Say( nRow, 00, PADC('R.U.C. '+IMPRUC,40), nCompress )
nRow++
oPrnCmp:Say( nRow, 00, PADC('N/s '+TRIM(IMPSIT),40), nCompress )
nRow++
ENDIF

oPrnCmp:Say( nRow, 00, Repl("-",40), nCompress )
nRow ++

IF !EMPTY(cNombre)
oPrnCmp:Say( nRow, 00, PADR("Nombre: "+LEFT(cNombre,32),40), nCompress )
nRow++

nVer++
ENDIF

IF !EMPTY(cDirClt)
oPrnCmp:Say( nRow, 00, PADR("Direccion: "+LEFT(cDirClt,29),40), nCompress )
nRow++

nVer++

IF LEN(TRIM(cDirClt))>29

oPrnCmp:Say( nRow, 00, SUBSTR(cDirClt,30,20), nCompress )
nRow++

nVer++

ENDIF

ENDIF

oPrnCmp:Say( nRow, 00, Repl("-",40), nCompress )
nRow ++
oPrnCmp:Say( nRow, 00, PADR(TRIM(cDesDoc)+' N° '+cNroSer+'-'+cNroTik,40), nCompress )
oPrnCmp:Say( nRow, 00, PADL(LEFT(cGrFero,5),40), nCompress )
nRow ++
oPrnCmp:Say( nRow, 00, PADL(CFECHA(dFecAct,'E')+' '+TIME(),40), nCompress )
nRow ++
oPrnCmp:Say( nRow, 00, 'Cantidad CodigoUniversal Descrip Importe', nCompress )
nRow ++

Select("IFacturas")
IF IFacturas->( DbSeek( cCodDoc+cNroSer+'-'+cNroTik ) )
WHILE IFacturas->CARGO=cCodDoc.and.IFacturas->TIKET=cNroSer+'-'+cNroTik
cCodSer :=IFacturas->CODSER
nCanSer :=IFacturas->CANTIDAD
nPrecio :=IFacturas->PRECIO
nItmPre :=IFacturas->PREBSE // Reemplaza al ItmPre de Abajo

Select("IItems")
If IItems->( DbSeek( UPPER( cCodSer) ) )
cItmDes:=PADL(IItems->DESITM,27)
cItmUnd:=IItems->UNDITM
ELSE
cItmDes:=PADL('NO EXISTE...',27)
cItmUnd:='XXX'
ENDIF

Select("IFacturas")
oPrnCmp:Say( nVer, 00, TRANS(IFacturas->CANTIDAD,MA52)+' '+cCodSer+SPACE(8)+TRANS(IFacturas->IMPORTE,MA52), nCompress )
nVer ++
oPrnCmp:Say( nVer, 09, cItmDes, nCompress )
nVer ++
nVer ++

nTotIgv+=IFacturas->IGV
nTotFac+=IFacturas->IMPORTE
nTotBse+=IFacturas->BSEIMP
nTotCan+=IFacturas->CANTIDAD

* Continua con otro item

IFacturas->(DbSKIP())

END
ENDIF

* a pagar

oPrnCmp:Say( nVer, 00, PADL("TOTAL"+cMoneda+" "+TRANS(nTotFac,MA72C),40), nCompress )

nVer ++
oPrnCmp:Say( nVer, 00, cGrFero+" "+"FW"+" "+mmINICIAL+" "+LEFT(cCancela,3)+" "+AUT, nCompress )
nVer ++
oPrnCmp:Say( nVer, 00, IIF(EMPTY(IMPMS1)," ",IMPMS1), nCompress )
nVer ++
nVer+=8
oPrnCmp:Say( nVer, 00, chr(27) + chr(105) , nCompress ) // Corte Parcial

oPrnCmp:End()

ELSE

nVer:=12
nRow:=8

PRINT oPrnCmp NAME "Impresion de Tiket" TO "TICKET" //FROM USER // TO "TICKET"

IF Empty( oPrnCmp:hDC )
Return Nil
ELSE
oPrnCmp:lPrvModal:=.T.
ENDIF

DEFINE FONT oFntArial NAME "Arial" SIZE 0, -8 OF oPrnCmp
DEFINE FONT oFntArial1 NAME "DRAFT 12CPI" SIZE 0, -8 OF oPrnCmp
DEFINE FONT oFntArial2 NAME "Arial" SIZE 0, -12 OF oPrnCmp

PAGE

StepRow := oPrnCmp:nVertRes() / 60 // estuvo en 50
StepCol := oPrnCmp:nHorzRes() / 40

IF IMPCBT // imprime cabecera ??
oPrnCmp:Say( StepRow*1, StepCol*0, PADC(UPPER(cMiCia),33) )
oPrnCmp:Say( StepRow*2, StepCol*0, Repl("-",33) ) // oFntArial1

DO CASE
CASE !EMPTY(cMiCia)
oPrnCmp:Say( StepRow*3, StepCol*0, PADC("De : "+TRIM(cMiPro),33) )
oPrnCmp:Say( StepRow*4, StepCol*0, PADC("Pri. "+TRIM(cMiDir)+" ABANCAY",33) )
OTHER
oPrnCmp:Say( StepRow*3, StepCol*0, PADC(TRIM(cMiDi3)+" "+TRIM(IMPSDE),33) )
ENDCASE

IF IMPSUC
DO CASE
CASE UPPER(cMiCia)="ELECTROSERVIS"
oPrnCmp:Say( StepRow*5, StepCol*0, PADC("Suc. "+TRIM(cMiDi2)+" "+TRIM(IMPSDE),33) )
CASE UPPER(cMiCia)="HOREB"
oPrnCmp:Say( StepRow*5, StepCol*0, PADC(TRIM(cMiDi3)+" LIMA",33) )
ENDCASE
ENDIF

oPrnCmp:Say( StepRow*6, StepCol*0, PADC("R.U.C. "+IMPRUC,33) )
oPrnCmp:Say( StepRow*7, StepCol*0, PADC("N/s "+TRIM(IMPSIT),33) )

ENDIF

IF !EMPTY(cNombre)

oPrnCmp:Say( StepRow*nRow, StepCol*0, Repl("-",33) )
nRow++
oPrnCmp:Say( StepRow*nRow, StepCol*0, "Nombre: "+cNombre )
nRow++

ENDIF

IF !EMPTY(cDirClt)
oPrnCmp:Say( StepRow*nRow, StepCol*0, "Direccion: "+cDirClt )
nRow++

ENDIF

oPrnCmp:Say( StepRow*nRow, StepCol*0, Repl("-",33) )
nRow++
oPrnCmp:Say( StepRow*nRow, StepCol*0, TRIM(cDesDoc)+" N. "+cNroSer+"-"+cNroTik+" Ven : "+LEFT(cGrFero,5) )
nRow++
oPrnCmp:Say( StepRow*nRow, StepCol*0, PADL(CFECHA(dFecAct,"E")+" "+TIME(),33) )
nRow++
oPrnCmp:Say( StepRow*nRow, StepCol*0, "Cantidad CodigoUniversal" )
nRow++

nVer:=nRow

Select("IFacturas")
IF IFacturas->( DbSeek( cCodDoc+cNroSer+"-"+cNroTik ) )

WHILE IFacturas->CARGO=cCodDoc.and.IFacturas->TIKET=cNroSer+"-"+cNroTik

cCodSer :=IFacturas->CODSER
nCanSer :=IFacturas->CANTIDAD
nPrecio :=IFacturas->PRECIO
nItmPre :=IFacturas->PREBSE // Reemplaza al ItmPre de Abajo

Select("IItems")
If IItems->( DbSeek( UPPER( cCodSer) ) )
cItmDes:=PADL(IItems->DESITM,27)
cItmUnd:=IItems->UNDITM
ELSE
cItmDes:=PADL("NO EXISTE...",27)
cItmUnd:="XXX"
ENDIF

Select("IFacturas")

oPrnCmp:Say( StepRow*nVer,StepCol*0, TRANS(IFacturas->CANTIDAD,MA52)+" "+cCodSer+TRANS(IFacturas->IMPORTE,MA52) )
nVer += 1
oPrnCmp:Say( StepRow*nVer,StepCol*3, cItmDes )
nVer += 1

nTotIgv+=IFacturas->IGV
nTotFac+=IFacturas->IMPORTE
nTotBse+=IFacturas->BSEIMP
nTotCan+=IFacturas->CANTIDAD

* Continua con otro item

IFacturas->(DbSKIP())

END

ENDIF

* a pagar

oPrnCmp:Say( StepRow*nVer,0, TRANS(nTotCan,MA52)+"Pz(s)" )
nVer ++
oPrnCmp:Say( StepRow*nVer,StepCol*8, "TOTAL => "+cMoneda+TRANS(nTotFac,MA72C) )
nVer ++
nVer ++
oPrnCmp:Say( StepRow*nVer,0, cGrFero+" "+"FW"+" "+mmINICIAL+" "+LEFT(cCancela,3)+" "+AUT )
nVer ++
oPrnCmp:Say( StepRow*nVer,0, IIF(EMPTY(IMPMS1)," ",IMPMS1) )
nVer ++

ENDPAGE

ENDPRINT

ENDIF

Donde podra estar la falla, mi estimado Antonio tal vez ud.pueda darme una luz.

Gracias

Re: TMU + TPRINT

Posted: Tue Feb 24, 2009 11:54 pm
by LuisPonce
GRACIAS

Encontre la solucion, en las propiedades de la impresora le baje los baudios, estaba en 9600, lo puse a 1200 y eso fue todo

Re: TMU + TPRINT

Posted: Wed Feb 25, 2009 2:37 pm
by Antonio Linares
Luis,

gracias por compartir la solución con todos :-)