PROBLEMAS CON LA TDOSPRN
PROBLEMAS CON LA TDOSPRN
Hola
Tengo este codigo que siempre funciono en 16bits y ahora se cuelga :
lImprime:=.T.
lImpDos :=.T.
cLptDoc:="LPT1"
IMPF00=5
nLinDoc:=36
nTotFac:=nTotBse:=nTotIgv:=nTotDes:=nTotUnd:=0
Select("IFacturas")
* proceso
msginfo(lImprime,"lImprime")
msginfo(lImpDos,"lImpDos")
msginfo(IMPF00,"IMPF00")
msginfo(cLptDoc,"cLptDoc")
msginfo(nLinDoc,"nLinDoc")
IF lImprime
IF lImpdos
nVer:=11
nVerSon:=(nVer+nMaxDoc)+1
nRow:=4
? "Voy a Iniciar la Clase TDosPrn"
oPrnCmp:=TDosPrn():New(cLptDoc)
// oPrnCmp:=TDosPrn():New('LPT2')
oPrnCmp:Command( { 27, 64 } )
oPrnCmp:Command( { 27, 67, nLinDoc } )
oPrnCmp:Say( nRow, 70, cDoc+cNro, nCompress )
nRow ++
oPrnCmp:Say( nRow, 05, cCodClt+" "+cNombre, { nBold , nCompress } )
oPrnCmp:Say( nRow, 42, cCancela, nCompress )
nRow ++
oPrnCmp:Say( nRow, 05, cDirClt, nCompress )
// oPrnCmp:Say( nRow, 42, CFECHA(dFecAct,'E'), nCompress )
nRow ++
oPrnCmp:Say( nRow, 05, cNroRuc, nPica )
oPrnCmp:Say( nRow, 26, cPlaca, nPica )
// oPrnCmp:Say( nRow, 26, cCodClt, nPica )
oPrnCmp:Say( nRow, 42, cGrFero, nPica )
nRow ++
oPrnCmp:Say( nRow, 05, CFECHA(dFecAct,'E'), nCompress )
nRow ++
nRow ++
Select("IFacturas")
IF IFacturas->( DbSeek( cCodDoc+cNroSer+'-'+cNroTik ) )
? "Encontre "+cCodDoc+cNroSer+'-'+cNroTik
WHILE IFacturas->CARGO=cCodDoc.and.IFacturas->TIKET=cNroSer+'-'+cNroTik
cCodSer :=IFacturas->CODSER
cCodSur :=IFacturas->SURTIDOR
nCanSer :=IFacturas->CANTIDAD
Select("IItems")
If IItems->( DbSeek( UPPER( cCodSer) ) )
cItmDes:=IItems->DESITM
cItmUnd:=IItems->UNDITM
ELSE
cItmDes:=PADL('NO EXISTE....',50)
cItmUnd:='XXX'
ENDIF
nDctoItem:=IIF(nItmPre>nPrecio,(nItmPre-nPrecio)*nCanSer,0)
Select("IFacturas")
oPrnCmp:Say( nVer, 00, TRANS(IFacturas->CANTIDAD,MA53)+" "+cItmUnd, nCompress )
oPrnCmp:Say( nVer, 10, cCodSer, { nPica,nCompress } )
IF !EMPTY(cCodSur)
oPrnCmp:Say( nVer, 15, cCodSur, nPica )
oPrnCmp:Say( nVer, 18, cItmDes, nPica )
ELSE
oPrnCmp:Say( nVer, 15, cItmDes, nPica )
ENDIF
oPrnCmp:Say( nVer, 56, TRANS(nPrecio,MA52)+" "+IIF(!EMPTY(nDctoItem).AND.IMPIDC,TRANS(nDctoItem/nCanSer,MA34),SPACE(8))+TRANS(IFacturas->IMPORTE,MA72C), nPica )
nVer ++
nTotUnd+=IFacturas->CANTIDAD
nTotDes+=IIF(nDctoItem>0.00.AND.IMPIDC,nDctoItem,0)
nTotIgv+=IFacturas->IGV
nTotFac+=IFacturas->IMPORTE
nTotBse+=IFacturas->BSEIMP
* Continua con otro item
IFacturas->(DbSkip())
END
ENDIF
oPrnCmp:Say( nVerSon, 40, IIF (EMPTY(IMPMS2),' ',IMPMS2),,nCenter )
nVerSon ++
oPrnCmp:Say( nVerSon, 40, IIF (EMPTY(IMPMS3),' ',IMPMS3),,nCenter )
oPrnCmp:End()
ENDIF
ENDIF
Le puse mensajes para ver donde se cuelga y no llega a "Encontre".... le hice cambios
oPrnCmp:Command( "27, 64" )
igual, no pasa nada
O no funciona la TDOSPRN con FH 8.2, en este foro he visto que si, entonces no me explico en que puedo estar fallando
Gracias
Att
Tengo este codigo que siempre funciono en 16bits y ahora se cuelga :
lImprime:=.T.
lImpDos :=.T.
cLptDoc:="LPT1"
IMPF00=5
nLinDoc:=36
nTotFac:=nTotBse:=nTotIgv:=nTotDes:=nTotUnd:=0
Select("IFacturas")
* proceso
msginfo(lImprime,"lImprime")
msginfo(lImpDos,"lImpDos")
msginfo(IMPF00,"IMPF00")
msginfo(cLptDoc,"cLptDoc")
msginfo(nLinDoc,"nLinDoc")
IF lImprime
IF lImpdos
nVer:=11
nVerSon:=(nVer+nMaxDoc)+1
nRow:=4
? "Voy a Iniciar la Clase TDosPrn"
oPrnCmp:=TDosPrn():New(cLptDoc)
// oPrnCmp:=TDosPrn():New('LPT2')
oPrnCmp:Command( { 27, 64 } )
oPrnCmp:Command( { 27, 67, nLinDoc } )
oPrnCmp:Say( nRow, 70, cDoc+cNro, nCompress )
nRow ++
oPrnCmp:Say( nRow, 05, cCodClt+" "+cNombre, { nBold , nCompress } )
oPrnCmp:Say( nRow, 42, cCancela, nCompress )
nRow ++
oPrnCmp:Say( nRow, 05, cDirClt, nCompress )
// oPrnCmp:Say( nRow, 42, CFECHA(dFecAct,'E'), nCompress )
nRow ++
oPrnCmp:Say( nRow, 05, cNroRuc, nPica )
oPrnCmp:Say( nRow, 26, cPlaca, nPica )
// oPrnCmp:Say( nRow, 26, cCodClt, nPica )
oPrnCmp:Say( nRow, 42, cGrFero, nPica )
nRow ++
oPrnCmp:Say( nRow, 05, CFECHA(dFecAct,'E'), nCompress )
nRow ++
nRow ++
Select("IFacturas")
IF IFacturas->( DbSeek( cCodDoc+cNroSer+'-'+cNroTik ) )
? "Encontre "+cCodDoc+cNroSer+'-'+cNroTik
WHILE IFacturas->CARGO=cCodDoc.and.IFacturas->TIKET=cNroSer+'-'+cNroTik
cCodSer :=IFacturas->CODSER
cCodSur :=IFacturas->SURTIDOR
nCanSer :=IFacturas->CANTIDAD
Select("IItems")
If IItems->( DbSeek( UPPER( cCodSer) ) )
cItmDes:=IItems->DESITM
cItmUnd:=IItems->UNDITM
ELSE
cItmDes:=PADL('NO EXISTE....',50)
cItmUnd:='XXX'
ENDIF
nDctoItem:=IIF(nItmPre>nPrecio,(nItmPre-nPrecio)*nCanSer,0)
Select("IFacturas")
oPrnCmp:Say( nVer, 00, TRANS(IFacturas->CANTIDAD,MA53)+" "+cItmUnd, nCompress )
oPrnCmp:Say( nVer, 10, cCodSer, { nPica,nCompress } )
IF !EMPTY(cCodSur)
oPrnCmp:Say( nVer, 15, cCodSur, nPica )
oPrnCmp:Say( nVer, 18, cItmDes, nPica )
ELSE
oPrnCmp:Say( nVer, 15, cItmDes, nPica )
ENDIF
oPrnCmp:Say( nVer, 56, TRANS(nPrecio,MA52)+" "+IIF(!EMPTY(nDctoItem).AND.IMPIDC,TRANS(nDctoItem/nCanSer,MA34),SPACE(8))+TRANS(IFacturas->IMPORTE,MA72C), nPica )
nVer ++
nTotUnd+=IFacturas->CANTIDAD
nTotDes+=IIF(nDctoItem>0.00.AND.IMPIDC,nDctoItem,0)
nTotIgv+=IFacturas->IGV
nTotFac+=IFacturas->IMPORTE
nTotBse+=IFacturas->BSEIMP
* Continua con otro item
IFacturas->(DbSkip())
END
ENDIF
oPrnCmp:Say( nVerSon, 40, IIF (EMPTY(IMPMS2),' ',IMPMS2),,nCenter )
nVerSon ++
oPrnCmp:Say( nVerSon, 40, IIF (EMPTY(IMPMS3),' ',IMPMS3),,nCenter )
oPrnCmp:End()
ENDIF
ENDIF
Le puse mensajes para ver donde se cuelga y no llega a "Encontre".... le hice cambios
oPrnCmp:Command( "27, 64" )
igual, no pasa nada
O no funciona la TDOSPRN con FH 8.2, en este foro he visto que si, entonces no me explico en que puedo estar fallando
Gracias
Att
Last edited by LuisPonce on Sat Nov 21, 2009 3:10 am, edited 2 times in total.
Luis Ponce
- Armando Picon
- Posts: 446
- Joined: Mon Dec 26, 2005 9:11 pm
- Location: Lima, Peru
Re: PROBLEMAS CON LA TDOSPRN
Si lo que muestras es todo tu código, tus CASE anidados no tienen CIERRE. Si no es todo, te sugiero que muestres codigo suficiente para poder analizarlo.
FWH + BCC582 + WorkShop 4.5 + Resource Hacker + Mingw
Mis nuevas herramientas
Comunicacion via WhatsApp (+51) 957549 665
Comunicación via Correo: apic1002002 at yahoo dot es; apic1002002@gmail.com
Mis nuevas herramientas
Comunicacion via WhatsApp (+51) 957549 665
Comunicación via Correo: apic1002002 at yahoo dot es; apic1002002@gmail.com
Re: PROBLEMAS CON LA TDOSPRN
Ok, Armando ahi va, se cualga al inicio, cuando doy origen al objeto, por que no pasa al siguiente mensaje:
"Encontre "+cCodDoc+cNroSer+'-'+cNroTik
"Encontre "+cCodDoc+cNroSer+'-'+cNroTik
Luis Ponce
- Armando Picon
- Posts: 446
- Joined: Mon Dec 26, 2005 9:11 pm
- Location: Lima, Peru
Re: PROBLEMAS CON LA TDOSPRN
Tal parece que tu rutina va ha imprimir desde uno hasta más pàginas. Lo que noto es que no tiene un oPrnCmp:StartPage() y, por supuesto , tampoco oPrnCmp:EndPage(). Asi que tu rutina no crea NADA (como si te declarases a la imagen de la chica, pero no a la chica).
Este un ejemplito de una pequeña rutina que me funciona desde la versión 2.4 de FW :
FUNCTION PrintOT(cSay5, cSay6, cSay7, cSay8, ;
cVal1, cVal2, cVal3, cVal4, cRecep, mcServi )
local oPrn, Fil := 0
* cabecera
local cSERVICIO := mcServi
local cNUMTRANS := oApp:cNUMTRANS
local dFECRECEP := oApp:dFECRECEP
local cHR_RECEP := oApp:cHR_RECEP
local dFECENTRE := oApp:dFECENTRE
local cHR_ENTRE := oApp:cHR_ENTRE
local nVALFACTU := cVal1
local nVALDSCTO := cVal2
local nCOB_CNTA := cVal3
local nCOB_SALD := cVal4
* cliente
local cID_CLIEN := cSay5
local cNombre := cSay6
local cDIRCLIEN := cSay7
local cTELCLIEN := cSay8
* cuerpo
local nPZ_PRENDA := 0
*
LOCAL nItem := 0
LOCAL cTexto := ""
local cTexto2 := ""
local cTira := "R:Roto,D:Descosido,I:Raido,O:Oxidado,P:Picado,G:Gastado"
local cTira2 := "M:Manchado,C:Descolorido,H:con Hongo"
*
LOCAL lOk := .F.
Local lTwo := .T.
*
SELECT TEMPO1
*
oPrn := TDosPrn():New(pPuerto)
oPrn:Command("27,33,5")
*
oPrn:StartPage()
*
Fil++
oPrn:Say(Fil, 01, "Lavandería ORDEN No."+;
kTienda+"-"+cNUMTRANS+SPACE(12)+;
"Fecha: "+DTOC(dFECRECEP))
IF lTwo
oPrn:Say(Fil, 01+76, "Lavandería ORDEN No."+;
kTienda+"-"+cNUMTRANS+SPACE(12)+;
"Fecha: "+DTOC(dFECRECEP))
ENDIF
Fil++
oPrn:Say(Fil, 00, "GYN Cleaners =================== Hora : "+;
cHR_RECEP)
IF lTwo
oPrn:Say(Fil, 00+76, "GYN Cleaners =================== Hora : "+;
cHR_RECEP)
ENDIF
Fil++
oPrn:Say(Fil, 00, "RUC. 10062044654 -----------------")
IF lTwo
oPrn:Say(Fil, 00+76, "RUC. 10062044654 -----------------")
ENDIF
Fil++
oPrn:Say(Fil, 00, kAddress)
IF lTwo
oPrn:Say(Fil, 00+76, kAddress)
ENDIF
Fil++
oPrn:Say(Fil, 50, "Entre: "+DTOC(dFECENTRE))
IF lTwo
oPrn:Say(Fil, 50+76, "Entre: "+DTOC(dFECENTRE))
ENDIF
Fil++
oPrn:Say(Fil, 00, "Tienda: "+kTienda)
oPrn:Say(Fil, 50, "Hora : "+cHR_ENTRE)
IF lTwo
oPrn:Say(Fil, 00+76, "Tienda: "+kTienda)
oPrn:Say(Fil, 50+76, "Hora : "+cHR_ENTRE)
ENDIF
Fil++
oPrn:Say(Fil, 00, "Cliente : "+cID_CLIEN+SPACE(1)+cNOMBRE)
IF lTwo
oPrn:Say(Fil, 00+76, "Cliente : "+cID_CLIEN+SPACE(1)+cNOMBRE)
ENDIF
Fil++
oPrn:Say(Fil, 00, "Dirección: "+cDIRCLIEN)
IF lTwo
oPrn:Say(Fil, 00+76, "Dirección: "+cDIRCLIEN)
ENDIF
Fil++
oPrn:Say(Fil, 53, "Tel: "+cTELCLIEN)
IF lTwo
oPrn:Say(Fil, 53+76, "Tel: "+cTELCLIEN)
ENDIF
Fil++
oPrn:Say(Fil, 00, "Recepción: "+ cRecep)
IF lTwo
oPrn:Say(Fil, 00+76, "Recepción: "+ cRecep)
ENDIF
Fil++
oPrn:Say(Fil, 00, "SERVICIO : "+cSERVICIO)
IF lTwo
oPrn:Say(Fil, 00+76, "SERVICIO : "+cSERVICIO)
ENDIF
Fil++
oPrn:Say(Fil, 00, "----------------------------------------------------------------------")
IF lTwo
oPrn:Say(Fil, 00+76, "----------------------------------------------------------------------")
ENDIF
Fil++
oPrn:Say(Fil, 00, "Itm Cod. Descripcion Pzas/Kilos IMPORTE ")
*oPrn:Say(Fil, 00, " Color Marca Estado ")
IF lTwo
oPrn:Say(Fil, 00+76, "Itm Cod. Descripcion Pzas/Kilos IMPORTE ")
ENDIF
Fil++
*******
oPrn:Say(Fil, 00, " Color Marca Estado ")
IF lTwo
oPrn:Say(Fil, 00+76, " Color Marca Estado ")
ENDIF
Fil++
*******
oPrn:Say(Fil, 00, "----------------------------------------------------------------------")
IF lTwo
oPrn:Say(Fil, 00+76, "----------------------------------------------------------------------")
ENDIF
Fil++
SELECT TEMPO2
DBGOTOP()
DO WHILE !EOF()
*
nPZ_PRENDA += TEMPO2->PZ_PRENDA
*
cTexto := ""
cTexto += TEMPO2->ID_PRENDA
SELECT PRENDA
DBGOTOP()
IF DBSEEK(cTexto)
cTexto +=SPACE(1)+PADR(PRENDA->DS_PRENDA,30)+SPACE(6)
ELSE
cTexto +=SPACE(1)+PADR("NO REGISTRADO",30)+SPACE(6)
ENDIF
SELECT TEMPO2
cTexto +=TRANSFORM(TEMPO2->CN_PRENDA,"999,999.99")+SPACE(1)
cTexto +=TRANSFORM(((TEMPO2->PU_PRENDA * TEMPO2->CN_PRENDA) +TEMPO2->PC_PRENDA),"999,999.99")
*
* Primera linea
nItem++
oPrn:Say(Fil, 00, STR(nItem,1,0))
oPrn:Say(Fil, 03, cTexto)
IF lTwo
oPrn:Say(Fil, 00+76, STR(nItem,1,0))
oPrn:Say(Fil, 03+76, cTexto)
ENDIF
Fil++
IF SUBS(cSERVICIO,1,2)=="02"
* Segunda linea
cEstado := ""
cEstado += IIF(UPPER(TEMPO2->RT_PRENDA)=="SI","R_","")
cEstado += IIF(UPPER(TEMPO2->DC_PRENDA)=="SI","D_","")
cEstado += IIF(UPPER(TEMPO2->RD_PRENDA)=="SI","I_","")
cEstado += IIF(UPPER(TEMPO2->OX_PRENDA)=="SI","O_","")
cEstado += IIF(UPPER(TEMPO2->PD_PRENDA)=="SI","P_","")
cEstado += IIF(UPPER(TEMPO2->GT_PRENDA)=="SI","G_","")
cEstado += IIF(UPPER(TEMPO2->MH_PRENDA)=="SI","M_","")
cEstado += IIF(UPPER(TEMPO2->DL_PRENDA)=="SI","C_","")
cEstado += IIF(UPPER(TEMPO2->CH_PRENDA)=="SI","H_","")
cESTADO := ALLTRIM(cEstado)
cTexto2:= ""
cTexto2+=IIF(ALLTRIM(TEMPO2->CL_PRENDA)=="NO DEFINE","",PADR(TEMPO2->CL_PRENDA,20)+SPACE(1))
cTexto2+=IIF(ALLTRIM(TEMPO2->MT_PRENDA)=="NO DEFINE","",PADR(TEMPO2->MT_PRENDA,20)+SPACE(1))
*cTexto2+=cESTADO
oPrn:Say(Fil, 07, cTexto2)
oPrn:Say(Fil, 50, IIF(!EMPTY(cESTADO),cESTADO,""))
IF lTwo
oPrn:Say(Fil, 07+76, cTexto2)
oPrn:Say(Fil, 50+76, IIF(!EMPTY(cESTADO),cESTADO,""))
ENDIF
Fil++
ENDIF
SKIP
ENDDO
IF SUBS(cSERVICIO,1,2)=="02"
IF nItem < 4
nItem++
DO WHILE nItem <= 4
oPrn:Say(Fil, 00, STR(nItem,1,0))
IF lTwo
oPrn:Say(Fil, 00+76, STR(nItem,1,0))
ENDIF
Fil++
Fil++
nItem++
ENDDO
ENDIF
ELSE
IF nItem < 8
nItem++
DO WHILE nItem <= 8
oPrn:Say(Fil, 00, STR(nItem,1,0))
IF lTwo
oPrn:Say(Fil, 00+76, STR(nItem,1,0))
ENDIF
Fil++
nItem++
ENDDO
ENDIF
ENDIF
oPrn:Say(Fil, 00,"----------------------------------------------------------------------")
IF lTwo
oPrn:Say(Fil, 00+76,"----------------------------------------------------------------------")
ENDIF
Fil++
*oPrn:Say(Fil , 00,"Tot.OT: ")
*oPrn:Say(Fil , 08,TRANSFORM(nVALFACTU,"999,999.99"))
*oPrn:Say(Fil , 19,"Dcto:")
*oPrn:Say(Fil , 24,TRANSFORM(nVALDSCTO,"999,999.99"))
*oPrn:Say(Fil , 34,"A Cnta:")
*oPrn:Say(Fil , 41,TRANSFORM(nCOB_CNTA,"999,999.99"))
*oPrn:Say(Fil , 51,"Por Cob. ")
*oPrn:Say(Fil , 61,TRANSFORM(nCOB_SALD,"999,999.99"))
oPrn:Say(Fil , 00,"Tot.OT: "+ALLTRIM(STR(nVALFACTU,9,2)))
oPrn:Say(Fil , 19,"Dcto: "+ALLTRIM(STR(nVALDSCTO,9,2)))
oPrn:Say(Fil , 34,"A Cnta : "+ALLTRIM(STR(nCOB_CNTA,9,2)))
oPrn:Say(Fil , 51,"Por Cob.: "+ALLTRIM(STR(nCOB_SALD,9,2)))
IF lTwo
*oPrn:Say(Fil , 00+76,"Tot.OT: ")
*oPrn:Say(Fil , 08+76,TRANSFORM(nVALFACTU,"999,999.99"))
*oPrn:Say(Fil , 19+76,"Dcto:")
*oPrn:Say(Fil , 24+76,TRANSFORM(nVALDSCTO,"999,999.99"))
*oPrn:Say(Fil , 34+76,"A Cnta:")
*oPrn:Say(Fil , 41+76,TRANSFORM(nCOB_CNTA,"999,999.99"))
*oPrn:Say(Fil , 51+76,"Por Cob. ")
*oPrn:Say(Fil , 61+76,TRANSFORM(nCOB_SALD,"999,999.99"))
*
oPrn:Say(Fil , 00+76,"Tot.OT: "+ALLTRIM(STR(nVALFACTU,9,2)))
oPrn:Say(Fil , 19+76,"Dcto: "+ALLTRIM(STR(nVALDSCTO,9,2)))
oPrn:Say(Fil , 34+76,"A Cnta : "+ALLTRIM(STR(nCOB_CNTA,9,2)))
oPrn:Say(Fil , 51+76,"Por Cob.: "+ALLTRIM(STR(nCOB_SALD,9,2)))
*
ENDIF
Fil++
oPrn:Say(Fil, 00,"----------------------------------------------------------------------")
IF lTwo
oPrn:Say(Fil, 00+76,"----------------------------------------------------------------------")
ENDIF
Fil++
oPrn:Say(Fil , 00,"Piezas: ")
oPrn:Say(Fil , 09,TRANSFORM(nPZ_PRENDA,"999"))
IF lTwo
oPrn:Say(Fil , 00+76,"Piezas: ")
oPrn:Say(Fil , 09+76,TRANSFORM(nPZ_PRENDA,"999"))
ENDIF
Fil++
oPrn:Say(Fil, 00,"----------------------------------------------------------------------")
IF lTwo
oPrn:Say(Fil, 00+76,"----------------------------------------------------------------------")
ENDIF
Fil++
oPrn:Say(Fil, 00,cTira)
IF lTwo
oPrn:Say(Fil, 00+76,cTira)
ENDIF
Fil++
oPrn:Say(Fil, 00,cTira2)
IF lTwo
oPrn:Say(Fil, 00+76,cTira2)
ENDIF
SELECT TEMPO1
*
lOk := .T.
oPrn:EndPage()
oPrn:Command("27,80")
RETURN(lOk)
Este un ejemplito de una pequeña rutina que me funciona desde la versión 2.4 de FW :
FUNCTION PrintOT(cSay5, cSay6, cSay7, cSay8, ;
cVal1, cVal2, cVal3, cVal4, cRecep, mcServi )
local oPrn, Fil := 0
* cabecera
local cSERVICIO := mcServi
local cNUMTRANS := oApp:cNUMTRANS
local dFECRECEP := oApp:dFECRECEP
local cHR_RECEP := oApp:cHR_RECEP
local dFECENTRE := oApp:dFECENTRE
local cHR_ENTRE := oApp:cHR_ENTRE
local nVALFACTU := cVal1
local nVALDSCTO := cVal2
local nCOB_CNTA := cVal3
local nCOB_SALD := cVal4
* cliente
local cID_CLIEN := cSay5
local cNombre := cSay6
local cDIRCLIEN := cSay7
local cTELCLIEN := cSay8
* cuerpo
local nPZ_PRENDA := 0
*
LOCAL nItem := 0
LOCAL cTexto := ""
local cTexto2 := ""
local cTira := "R:Roto,D:Descosido,I:Raido,O:Oxidado,P:Picado,G:Gastado"
local cTira2 := "M:Manchado,C:Descolorido,H:con Hongo"
*
LOCAL lOk := .F.
Local lTwo := .T.
*
SELECT TEMPO1
*
oPrn := TDosPrn():New(pPuerto)
oPrn:Command("27,33,5")
*
oPrn:StartPage()
*
Fil++
oPrn:Say(Fil, 01, "Lavandería ORDEN No."+;
kTienda+"-"+cNUMTRANS+SPACE(12)+;
"Fecha: "+DTOC(dFECRECEP))
IF lTwo
oPrn:Say(Fil, 01+76, "Lavandería ORDEN No."+;
kTienda+"-"+cNUMTRANS+SPACE(12)+;
"Fecha: "+DTOC(dFECRECEP))
ENDIF
Fil++
oPrn:Say(Fil, 00, "GYN Cleaners =================== Hora : "+;
cHR_RECEP)
IF lTwo
oPrn:Say(Fil, 00+76, "GYN Cleaners =================== Hora : "+;
cHR_RECEP)
ENDIF
Fil++
oPrn:Say(Fil, 00, "RUC. 10062044654 -----------------")
IF lTwo
oPrn:Say(Fil, 00+76, "RUC. 10062044654 -----------------")
ENDIF
Fil++
oPrn:Say(Fil, 00, kAddress)
IF lTwo
oPrn:Say(Fil, 00+76, kAddress)
ENDIF
Fil++
oPrn:Say(Fil, 50, "Entre: "+DTOC(dFECENTRE))
IF lTwo
oPrn:Say(Fil, 50+76, "Entre: "+DTOC(dFECENTRE))
ENDIF
Fil++
oPrn:Say(Fil, 00, "Tienda: "+kTienda)
oPrn:Say(Fil, 50, "Hora : "+cHR_ENTRE)
IF lTwo
oPrn:Say(Fil, 00+76, "Tienda: "+kTienda)
oPrn:Say(Fil, 50+76, "Hora : "+cHR_ENTRE)
ENDIF
Fil++
oPrn:Say(Fil, 00, "Cliente : "+cID_CLIEN+SPACE(1)+cNOMBRE)
IF lTwo
oPrn:Say(Fil, 00+76, "Cliente : "+cID_CLIEN+SPACE(1)+cNOMBRE)
ENDIF
Fil++
oPrn:Say(Fil, 00, "Dirección: "+cDIRCLIEN)
IF lTwo
oPrn:Say(Fil, 00+76, "Dirección: "+cDIRCLIEN)
ENDIF
Fil++
oPrn:Say(Fil, 53, "Tel: "+cTELCLIEN)
IF lTwo
oPrn:Say(Fil, 53+76, "Tel: "+cTELCLIEN)
ENDIF
Fil++
oPrn:Say(Fil, 00, "Recepción: "+ cRecep)
IF lTwo
oPrn:Say(Fil, 00+76, "Recepción: "+ cRecep)
ENDIF
Fil++
oPrn:Say(Fil, 00, "SERVICIO : "+cSERVICIO)
IF lTwo
oPrn:Say(Fil, 00+76, "SERVICIO : "+cSERVICIO)
ENDIF
Fil++
oPrn:Say(Fil, 00, "----------------------------------------------------------------------")
IF lTwo
oPrn:Say(Fil, 00+76, "----------------------------------------------------------------------")
ENDIF
Fil++
oPrn:Say(Fil, 00, "Itm Cod. Descripcion Pzas/Kilos IMPORTE ")
*oPrn:Say(Fil, 00, " Color Marca Estado ")
IF lTwo
oPrn:Say(Fil, 00+76, "Itm Cod. Descripcion Pzas/Kilos IMPORTE ")
ENDIF
Fil++
*******
oPrn:Say(Fil, 00, " Color Marca Estado ")
IF lTwo
oPrn:Say(Fil, 00+76, " Color Marca Estado ")
ENDIF
Fil++
*******
oPrn:Say(Fil, 00, "----------------------------------------------------------------------")
IF lTwo
oPrn:Say(Fil, 00+76, "----------------------------------------------------------------------")
ENDIF
Fil++
SELECT TEMPO2
DBGOTOP()
DO WHILE !EOF()
*
nPZ_PRENDA += TEMPO2->PZ_PRENDA
*
cTexto := ""
cTexto += TEMPO2->ID_PRENDA
SELECT PRENDA
DBGOTOP()
IF DBSEEK(cTexto)
cTexto +=SPACE(1)+PADR(PRENDA->DS_PRENDA,30)+SPACE(6)
ELSE
cTexto +=SPACE(1)+PADR("NO REGISTRADO",30)+SPACE(6)
ENDIF
SELECT TEMPO2
cTexto +=TRANSFORM(TEMPO2->CN_PRENDA,"999,999.99")+SPACE(1)
cTexto +=TRANSFORM(((TEMPO2->PU_PRENDA * TEMPO2->CN_PRENDA) +TEMPO2->PC_PRENDA),"999,999.99")
*
* Primera linea
nItem++
oPrn:Say(Fil, 00, STR(nItem,1,0))
oPrn:Say(Fil, 03, cTexto)
IF lTwo
oPrn:Say(Fil, 00+76, STR(nItem,1,0))
oPrn:Say(Fil, 03+76, cTexto)
ENDIF
Fil++
IF SUBS(cSERVICIO,1,2)=="02"
* Segunda linea
cEstado := ""
cEstado += IIF(UPPER(TEMPO2->RT_PRENDA)=="SI","R_","")
cEstado += IIF(UPPER(TEMPO2->DC_PRENDA)=="SI","D_","")
cEstado += IIF(UPPER(TEMPO2->RD_PRENDA)=="SI","I_","")
cEstado += IIF(UPPER(TEMPO2->OX_PRENDA)=="SI","O_","")
cEstado += IIF(UPPER(TEMPO2->PD_PRENDA)=="SI","P_","")
cEstado += IIF(UPPER(TEMPO2->GT_PRENDA)=="SI","G_","")
cEstado += IIF(UPPER(TEMPO2->MH_PRENDA)=="SI","M_","")
cEstado += IIF(UPPER(TEMPO2->DL_PRENDA)=="SI","C_","")
cEstado += IIF(UPPER(TEMPO2->CH_PRENDA)=="SI","H_","")
cESTADO := ALLTRIM(cEstado)
cTexto2:= ""
cTexto2+=IIF(ALLTRIM(TEMPO2->CL_PRENDA)=="NO DEFINE","",PADR(TEMPO2->CL_PRENDA,20)+SPACE(1))
cTexto2+=IIF(ALLTRIM(TEMPO2->MT_PRENDA)=="NO DEFINE","",PADR(TEMPO2->MT_PRENDA,20)+SPACE(1))
*cTexto2+=cESTADO
oPrn:Say(Fil, 07, cTexto2)
oPrn:Say(Fil, 50, IIF(!EMPTY(cESTADO),cESTADO,""))
IF lTwo
oPrn:Say(Fil, 07+76, cTexto2)
oPrn:Say(Fil, 50+76, IIF(!EMPTY(cESTADO),cESTADO,""))
ENDIF
Fil++
ENDIF
SKIP
ENDDO
IF SUBS(cSERVICIO,1,2)=="02"
IF nItem < 4
nItem++
DO WHILE nItem <= 4
oPrn:Say(Fil, 00, STR(nItem,1,0))
IF lTwo
oPrn:Say(Fil, 00+76, STR(nItem,1,0))
ENDIF
Fil++
Fil++
nItem++
ENDDO
ENDIF
ELSE
IF nItem < 8
nItem++
DO WHILE nItem <= 8
oPrn:Say(Fil, 00, STR(nItem,1,0))
IF lTwo
oPrn:Say(Fil, 00+76, STR(nItem,1,0))
ENDIF
Fil++
nItem++
ENDDO
ENDIF
ENDIF
oPrn:Say(Fil, 00,"----------------------------------------------------------------------")
IF lTwo
oPrn:Say(Fil, 00+76,"----------------------------------------------------------------------")
ENDIF
Fil++
*oPrn:Say(Fil , 00,"Tot.OT: ")
*oPrn:Say(Fil , 08,TRANSFORM(nVALFACTU,"999,999.99"))
*oPrn:Say(Fil , 19,"Dcto:")
*oPrn:Say(Fil , 24,TRANSFORM(nVALDSCTO,"999,999.99"))
*oPrn:Say(Fil , 34,"A Cnta:")
*oPrn:Say(Fil , 41,TRANSFORM(nCOB_CNTA,"999,999.99"))
*oPrn:Say(Fil , 51,"Por Cob. ")
*oPrn:Say(Fil , 61,TRANSFORM(nCOB_SALD,"999,999.99"))
oPrn:Say(Fil , 00,"Tot.OT: "+ALLTRIM(STR(nVALFACTU,9,2)))
oPrn:Say(Fil , 19,"Dcto: "+ALLTRIM(STR(nVALDSCTO,9,2)))
oPrn:Say(Fil , 34,"A Cnta : "+ALLTRIM(STR(nCOB_CNTA,9,2)))
oPrn:Say(Fil , 51,"Por Cob.: "+ALLTRIM(STR(nCOB_SALD,9,2)))
IF lTwo
*oPrn:Say(Fil , 00+76,"Tot.OT: ")
*oPrn:Say(Fil , 08+76,TRANSFORM(nVALFACTU,"999,999.99"))
*oPrn:Say(Fil , 19+76,"Dcto:")
*oPrn:Say(Fil , 24+76,TRANSFORM(nVALDSCTO,"999,999.99"))
*oPrn:Say(Fil , 34+76,"A Cnta:")
*oPrn:Say(Fil , 41+76,TRANSFORM(nCOB_CNTA,"999,999.99"))
*oPrn:Say(Fil , 51+76,"Por Cob. ")
*oPrn:Say(Fil , 61+76,TRANSFORM(nCOB_SALD,"999,999.99"))
*
oPrn:Say(Fil , 00+76,"Tot.OT: "+ALLTRIM(STR(nVALFACTU,9,2)))
oPrn:Say(Fil , 19+76,"Dcto: "+ALLTRIM(STR(nVALDSCTO,9,2)))
oPrn:Say(Fil , 34+76,"A Cnta : "+ALLTRIM(STR(nCOB_CNTA,9,2)))
oPrn:Say(Fil , 51+76,"Por Cob.: "+ALLTRIM(STR(nCOB_SALD,9,2)))
*
ENDIF
Fil++
oPrn:Say(Fil, 00,"----------------------------------------------------------------------")
IF lTwo
oPrn:Say(Fil, 00+76,"----------------------------------------------------------------------")
ENDIF
Fil++
oPrn:Say(Fil , 00,"Piezas: ")
oPrn:Say(Fil , 09,TRANSFORM(nPZ_PRENDA,"999"))
IF lTwo
oPrn:Say(Fil , 00+76,"Piezas: ")
oPrn:Say(Fil , 09+76,TRANSFORM(nPZ_PRENDA,"999"))
ENDIF
Fil++
oPrn:Say(Fil, 00,"----------------------------------------------------------------------")
IF lTwo
oPrn:Say(Fil, 00+76,"----------------------------------------------------------------------")
ENDIF
Fil++
oPrn:Say(Fil, 00,cTira)
IF lTwo
oPrn:Say(Fil, 00+76,cTira)
ENDIF
Fil++
oPrn:Say(Fil, 00,cTira2)
IF lTwo
oPrn:Say(Fil, 00+76,cTira2)
ENDIF
SELECT TEMPO1
*
lOk := .T.
oPrn:EndPage()
oPrn:Command("27,80")
RETURN(lOk)
FWH + BCC582 + WorkShop 4.5 + Resource Hacker + Mingw
Mis nuevas herramientas
Comunicacion via WhatsApp (+51) 957549 665
Comunicación via Correo: apic1002002 at yahoo dot es; apic1002002@gmail.com
Mis nuevas herramientas
Comunicacion via WhatsApp (+51) 957549 665
Comunicación via Correo: apic1002002 at yahoo dot es; apic1002002@gmail.com
Re: PROBLEMAS CON LA TDOSPRN
Gracias Armando
Probe agregando StartPage() y EndPage() e igual se cuelga, probare el codigo que me pasaste, podrias pasarme la tabla involucrada ?
hice algunos cambios y ya no se cuelga, el problema estaba en :
oPrnCmp:Command( { 27, 64 } )
oPrnCmp:Command( { 27, 67, nLinDoc } )
quite los corchetes y listo
oPrnCmp:Command( 27, 64 )
oPrnCmp:Command( 27, 67, nLinDoc )
Pero, tampoco imprime, me sale un error en el primer say() linea 158
? "Voy a Iniciar la Clase TDosPrn"
oPrnCmp:=TDosPrn():New(cLptDoc)
oPrnCmp:Command( 27, 64 )
oPrnCmp:Command( 27, 67, nLinDoc )
oPrnCmp:StartPage()
oPrnCmp:Say( nRow, 70, cDoc+cNro, nCompress )
nRow ++
oPrnCmp:Say( nRow, 05, cCodClt+" "+cNombre, { nBold , nCompress } )
oPrnCmp:Say( nRow, 42, cCancela, nCompress )
nRow ++
Size: 2,613,760 bytes
Time from start: 0 hours 0 mins 42 secs
Error occurred at: 23/11/2009, 00:51:53
Error description: Error BASE/1066 Argument error: conditional
Args:
[ 1] = N 1
Stack Calls
===========
Called from: TDOSPRN.PRG => (b)TDOSPRN:TDOSPRN(0)
Called from: => TDOSPRN:WRITE(0)
Called from: TDOSPRN.PRG => TDOSPRN:SAY(0)
Called from: GRF0200.PRG => IMPRIMEV(158)
Probe agregando StartPage() y EndPage() e igual se cuelga, probare el codigo que me pasaste, podrias pasarme la tabla involucrada ?
hice algunos cambios y ya no se cuelga, el problema estaba en :
oPrnCmp:Command( { 27, 64 } )
oPrnCmp:Command( { 27, 67, nLinDoc } )
quite los corchetes y listo
oPrnCmp:Command( 27, 64 )
oPrnCmp:Command( 27, 67, nLinDoc )
Pero, tampoco imprime, me sale un error en el primer say() linea 158
? "Voy a Iniciar la Clase TDosPrn"
oPrnCmp:=TDosPrn():New(cLptDoc)
oPrnCmp:Command( 27, 64 )
oPrnCmp:Command( 27, 67, nLinDoc )
oPrnCmp:StartPage()
oPrnCmp:Say( nRow, 70, cDoc+cNro, nCompress )
nRow ++
oPrnCmp:Say( nRow, 05, cCodClt+" "+cNombre, { nBold , nCompress } )
oPrnCmp:Say( nRow, 42, cCancela, nCompress )
nRow ++
Size: 2,613,760 bytes
Time from start: 0 hours 0 mins 42 secs
Error occurred at: 23/11/2009, 00:51:53
Error description: Error BASE/1066 Argument error: conditional
Args:
[ 1] = N 1
Stack Calls
===========
Called from: TDOSPRN.PRG => (b)TDOSPRN:TDOSPRN(0)
Called from: => TDOSPRN:WRITE(0)
Called from: TDOSPRN.PRG => TDOSPRN:SAY(0)
Called from: GRF0200.PRG => IMPRIMEV(158)
Luis Ponce
- Armando Picon
- Posts: 446
- Joined: Mon Dec 26, 2005 9:11 pm
- Location: Lima, Peru
Re: PROBLEMAS CON LA TDOSPRN
Todavia tienes que arreglar todos los oprncmp:command(), la cadena de comandos van entre comillas (fijate el ejemplito). Si con eso no funciona y si tenes a bien, envíame tu codigo a mi correo personal: apic1002002@yahoo.es y a vuelta de correo te devuelvo tu codigo ya probado.
Saludos
Armando
Saludos
Armando
FWH + BCC582 + WorkShop 4.5 + Resource Hacker + Mingw
Mis nuevas herramientas
Comunicacion via WhatsApp (+51) 957549 665
Comunicación via Correo: apic1002002 at yahoo dot es; apic1002002@gmail.com
Mis nuevas herramientas
Comunicacion via WhatsApp (+51) 957549 665
Comunicación via Correo: apic1002002 at yahoo dot es; apic1002002@gmail.com
Re: PROBLEMAS CON LA TDOSPRN
Armando
Y amigos del foro, encontre el problema... la clase que venia utilizando con FW de 16bits, es una TDOSPRN modificada por Giancarlo Sabattino, en Julio del 2001, en la que hace varios magnificos aportes entre ellos :
METHOD Command( aCommands ) ; donde acepta como parametro un array, forma como lo venia usando
METHOD Say( nRow, nCol, xText, nStyle, nPad, lAToO ) CLASS TDosPrn ; donde tiene dos nuevas variables aStyle: Valor entre 1 y 5, o un arreglo con valores en el mismo rango.
Esto permite cambiar los estilos de letras durante la impresión.
1 -> Imprimir a 17 CPI ( Comprimido )
2 -> Imprimir a 12 CPI ( Pica )
3 -> Imprimir a 5 CPI ( Doble Ancho )
4 -> Imprimir en Negrillas
5 -> Imprimir en Italico
Es importante tener en cuenta que se utilizan características que
son nativas de las impresoras matriciales, y por lo tanto, depen-
diendo de la marca y modelo, habrán características que no pueden
ser combinadas (Ej: 17 CPI+Negrillas)
nPad : Valor entre 1 y 3: Alineación con respecto a la columna :nCol.
0 -> Izquierda ( por defecto )
1 -> Derecha
2 -> Centrada
Entonces mi codigo :
oPrnCmp:Say( nRow, 70, cDoc+cNro, nCompress )
nRow ++
oPrnCmp:Say( nRow, 05, cCodClt+" "+cNombre, { nBold , nCompress } )
oPrnCmp:Say( nRow, 42, cCancela, nCompress )
nRow ++
La clase que trae el FWH no contempla estas variaciones, jamas va a funcionar ya que el metodo say() solo tiene 4 parametros y el cuarto es un valor logico, mientras que la anterior contenia 6
METHOD Say( nRow, nCol, cText, lAToO ) CLASS TDosPrn
Ahora me pregunto como imprimo algunas lineas en comprimido, o italico con la actual clase, sera posible combinar ambas ? o ya existe alguna nueva TDOSPRN
Intentare recompilar la Clase con xHarbour
Y amigos del foro, encontre el problema... la clase que venia utilizando con FW de 16bits, es una TDOSPRN modificada por Giancarlo Sabattino, en Julio del 2001, en la que hace varios magnificos aportes entre ellos :
METHOD Command( aCommands ) ; donde acepta como parametro un array, forma como lo venia usando
METHOD Say( nRow, nCol, xText, nStyle, nPad, lAToO ) CLASS TDosPrn ; donde tiene dos nuevas variables aStyle: Valor entre 1 y 5, o un arreglo con valores en el mismo rango.
Esto permite cambiar los estilos de letras durante la impresión.
1 -> Imprimir a 17 CPI ( Comprimido )
2 -> Imprimir a 12 CPI ( Pica )
3 -> Imprimir a 5 CPI ( Doble Ancho )
4 -> Imprimir en Negrillas
5 -> Imprimir en Italico
Es importante tener en cuenta que se utilizan características que
son nativas de las impresoras matriciales, y por lo tanto, depen-
diendo de la marca y modelo, habrán características que no pueden
ser combinadas (Ej: 17 CPI+Negrillas)
nPad : Valor entre 1 y 3: Alineación con respecto a la columna :nCol.
0 -> Izquierda ( por defecto )
1 -> Derecha
2 -> Centrada
Entonces mi codigo :
oPrnCmp:Say( nRow, 70, cDoc+cNro, nCompress )
nRow ++
oPrnCmp:Say( nRow, 05, cCodClt+" "+cNombre, { nBold , nCompress } )
oPrnCmp:Say( nRow, 42, cCancela, nCompress )
nRow ++
La clase que trae el FWH no contempla estas variaciones, jamas va a funcionar ya que el metodo say() solo tiene 4 parametros y el cuarto es un valor logico, mientras que la anterior contenia 6
METHOD Say( nRow, nCol, cText, lAToO ) CLASS TDosPrn
Ahora me pregunto como imprimo algunas lineas en comprimido, o italico con la actual clase, sera posible combinar ambas ? o ya existe alguna nueva TDOSPRN
Intentare recompilar la Clase con xHarbour
Last edited by LuisPonce on Tue Nov 24, 2009 9:03 pm, edited 1 time in total.
Luis Ponce
Re: PROBLEMAS CON LA TDOSPRN
Creo que tenés que hacer esto
oPrn:Saycmp (34,1,"El total de la presente se ajustara al tipo de cambio del dólar libre")
oPrn:Saycmp (35,1,"vigente para el pago de importación de estas mercaderías, a la fecha")
oPrn:Saycmp (36,1,"de su efectiva cancelación")
Luis
oPrn:Saycmp (34,1,"El total de la presente se ajustara al tipo de cambio del dólar libre")
oPrn:Saycmp (35,1,"vigente para el pago de importación de estas mercaderías, a la fecha")
oPrn:Saycmp (36,1,"de su efectiva cancelación")
Luis
Re: PROBLEMAS CON LA TDOSPRN
Me parece que que con command podés cambiar la letra a itálica, tenes que buscar en el manual de la impresora cual es la secuencia que tenés que poner
Ej
oPrn:command( "14")
oPrn:Say(0,0,oemtoansi("Química Mega S.A."))
oPrn:Command("27" + "18")
No me acuerdo que tipo de letra pido pero así funciona (Es una epson lx-300)
Luis
Ej
oPrn:command( "14")
oPrn:Say(0,0,oemtoansi("Química Mega S.A."))
oPrn:Command("27" + "18")
No me acuerdo que tipo de letra pido pero así funciona (Es una epson lx-300)
Luis
Re: PROBLEMAS CON LA TDOSPRN
Luis
Gracias por tus comentarios, es decir para hacer el cambio de letra hay que darle command, cada vez que sea necesario ?
oPrn:command( "14") // para activar comprimido
oPrn:Say(0,0,oemtoansi("Química Mega S.A."))
y para continuar con letra normal
oPrn:Command("27" + "18")
Gracias por tus comentarios, es decir para hacer el cambio de letra hay que darle command, cada vez que sea necesario ?
oPrn:command( "14") // para activar comprimido
oPrn:Say(0,0,oemtoansi("Química Mega S.A."))
y para continuar con letra normal
oPrn:Command("27" + "18")
Luis Ponce
Re: PROBLEMAS CON LA TDOSPRN
Sí así lo tengo implementado para facturas, listados y remitos que se hacen por impresoras matriciales...
Luis
Luis
Re: PROBLEMAS CON LA TDOSPRN
Amigo ahi va un ejempplo completo:
STATIC negra_on :=chr(27)+chr(69) //69
STATIC negra_off:=chr(27)+chr(70) //70
STATIC doble_on :=chr(27)+chr(87)+"1"
STATIC doble_off:=chr(27)+chr(87)+"0"
STATIC FUNCTION Emite_Vale_Venta(aDatos,nNumVale,RutCte,NomCte,DirCte,CiuCte,NomPto,FecPto,oBs1,oBs2,tvale,nCopia)
*--------------------
Local cPuerto:="LPT1"
Local oPrn,fila,copia,pagina,I,linea,nRow,oPen1,oFnt1,oFnt2,oFnt3,oFnt4,oFnt5
Local nTotVenta:=0
Local nLargo:=Len(aDatos)
oPrn:=TDosPrn():New(cPuerto)
oPrn:command( "27","67", "33" )
oPrn:Command( '18' )
oPrn:command( "27","64")
For copia=1 To nCopia
nTotVenta:=0
pagina :=1
linea :=1
fila :=10
oPrn:Say(01,01, "BARRACA Y FERRETERIA")
oPrn:Say(01,55, "Fecha Emision :"+dtoc(date()) )
oPrn:Say(03,20, doble_on+"ORDEN DE COMPRA Nº "+StrZero(nNumVale,8)+"/"+RIGHT(STR(nAnoPro,4),2)+doble_off)
oPrn:Say(05,01, "Cliente .:"+AllTrim(NomCte))
oPrn:Say(06,01, "Direccion:"+AllTrim(DirCte))
oPrn:Say(06,50, "Vendedor.:"+SubStr(NomPto,1,20))
oPrn:Say(07,01, replicate("-",79) )
oPrn:Say(08,02, "Item D e t a l l e Cantidad P.U. Total")
oPrn:Say(09,01, replicate("-",79))
For I:=1 To Len(aDatos)
If aDatos[I,1] # " "
oPrn:Say(fila,02, Coma_Pto(TRANSFORM(I,"99")) )
oPrn:Say(fila,07, SubStr(aDatos[I,2],1,30))
oPrn:Say(fila,50, Coma_Pto(TRANSFORM(aDatos[I,3],"99999.99")) )
oPrn:Say(fila,58, Coma_Pto(TRANSFORM(aDatos[I,4],"9,999,999.99")) )
oPrn:Say(fila,70, Coma_Pto(TRANSFORM(aDatos[I,6],"99,999,999")) )
nTotVenta:=nTotVenta + aDatos[i,6]
fila :=fila + 1
linea:=linea + 1
If linea > 15
oPrn:Say(fila,01, replicate("-",79))
fila++
oPrn:Say(fila,57, "SIGUIENTE HOJA --->" )
oPrn:Say(01,01, "BARRACA Y FERRETERIA")
oPrn:Say(01,55, "Fecha Emision :"+dtoc(date()) )
oPrn:Say(03,20, doble_on+"ORDEN DE COMPRA Nº "+StrZero(nNumVale,8)+"/"+RIGHT(STR(nAnoPro,4),2)+doble_off)
oPrn:Say(05,01, "Cliente .:"+AllTrim(NomCte))
oPrn:Say(06,01, "Direccion:"+AllTrim(DirCte))
oPrn:Say(06,50, "Vendedor.:"+SubStr(NomPto,1,20))
oPrn:Say(07,01, replicate("-",79) )
oPrn:Say(08,02, "Item D e t a l l e Cantidad P.U. Total")
oPrn:Say(09,01, replicate("-",79))
fila :=10
linea:=1
pagina:=pagina+1
Endif
Endif
Next
Next
oPrn:End()
*oPrn:End( .f., .f. )
RETURN NIL
STATIC negra_on :=chr(27)+chr(69) //69
STATIC negra_off:=chr(27)+chr(70) //70
STATIC doble_on :=chr(27)+chr(87)+"1"
STATIC doble_off:=chr(27)+chr(87)+"0"
STATIC FUNCTION Emite_Vale_Venta(aDatos,nNumVale,RutCte,NomCte,DirCte,CiuCte,NomPto,FecPto,oBs1,oBs2,tvale,nCopia)
*--------------------
Local cPuerto:="LPT1"
Local oPrn,fila,copia,pagina,I,linea,nRow,oPen1,oFnt1,oFnt2,oFnt3,oFnt4,oFnt5
Local nTotVenta:=0
Local nLargo:=Len(aDatos)
oPrn:=TDosPrn():New(cPuerto)
oPrn:command( "27","67", "33" )
oPrn:Command( '18' )
oPrn:command( "27","64")
For copia=1 To nCopia
nTotVenta:=0
pagina :=1
linea :=1
fila :=10
oPrn:Say(01,01, "BARRACA Y FERRETERIA")
oPrn:Say(01,55, "Fecha Emision :"+dtoc(date()) )
oPrn:Say(03,20, doble_on+"ORDEN DE COMPRA Nº "+StrZero(nNumVale,8)+"/"+RIGHT(STR(nAnoPro,4),2)+doble_off)
oPrn:Say(05,01, "Cliente .:"+AllTrim(NomCte))
oPrn:Say(06,01, "Direccion:"+AllTrim(DirCte))
oPrn:Say(06,50, "Vendedor.:"+SubStr(NomPto,1,20))
oPrn:Say(07,01, replicate("-",79) )
oPrn:Say(08,02, "Item D e t a l l e Cantidad P.U. Total")
oPrn:Say(09,01, replicate("-",79))
For I:=1 To Len(aDatos)
If aDatos[I,1] # " "
oPrn:Say(fila,02, Coma_Pto(TRANSFORM(I,"99")) )
oPrn:Say(fila,07, SubStr(aDatos[I,2],1,30))
oPrn:Say(fila,50, Coma_Pto(TRANSFORM(aDatos[I,3],"99999.99")) )
oPrn:Say(fila,58, Coma_Pto(TRANSFORM(aDatos[I,4],"9,999,999.99")) )
oPrn:Say(fila,70, Coma_Pto(TRANSFORM(aDatos[I,6],"99,999,999")) )
nTotVenta:=nTotVenta + aDatos[i,6]
fila :=fila + 1
linea:=linea + 1
If linea > 15
oPrn:Say(fila,01, replicate("-",79))
fila++
oPrn:Say(fila,57, "SIGUIENTE HOJA --->" )
oPrn:Say(01,01, "BARRACA Y FERRETERIA")
oPrn:Say(01,55, "Fecha Emision :"+dtoc(date()) )
oPrn:Say(03,20, doble_on+"ORDEN DE COMPRA Nº "+StrZero(nNumVale,8)+"/"+RIGHT(STR(nAnoPro,4),2)+doble_off)
oPrn:Say(05,01, "Cliente .:"+AllTrim(NomCte))
oPrn:Say(06,01, "Direccion:"+AllTrim(DirCte))
oPrn:Say(06,50, "Vendedor.:"+SubStr(NomPto,1,20))
oPrn:Say(07,01, replicate("-",79) )
oPrn:Say(08,02, "Item D e t a l l e Cantidad P.U. Total")
oPrn:Say(09,01, replicate("-",79))
fila :=10
linea:=1
pagina:=pagina+1
Endif
Endif
Next
Next
oPrn:End()
*oPrn:End( .f., .f. )
RETURN NIL
Re: PROBLEMAS CON LA TDOSPRN
Tambien funciona,
oPrn:say( 0,0, chr(15) )
oPren:say(1,1, 'texto comprimido')
saludos...
oPrn:say( 0,0, chr(15) )
oPren:say(1,1, 'texto comprimido')
saludos...
Cesar Cortes Cruz
SysCtrl Software
Mexico
' Sin +- FWH es mejor "
SysCtrl Software
Mexico
' Sin +- FWH es mejor "
Re: PROBLEMAS CON LA TDOSPRN
Gracias colegas por el interes puesto, finalmente tuve que modificar la clase agregando las variaciones de Giancarlo Sabattino, para poder imprimir sin variar mi codigo, felizmente con exito, los ejemplos que me pasaron los compile haciendo las adecuaciones del caso y tambien funcionaron
Att.
Att.
Luis Ponce