Ticketera STAR SP-700 al revés

HMG en Español

Moderator: Rathinagiri

Post Reply
User avatar
edufloriv
Posts: 240
Joined: Thu Nov 08, 2012 3:42 am
DBs Used: DBF, MariaDB, MySQL, MSSQL, MariaDB
Location: PERU

Ticketera STAR SP-700 al revés

Post by edufloriv »

Saludos distinguidos colegas,

Se me ha presentado este caso extraño, cuando configuro mi sistema no tengo ningún problema con las impresoras EPSON ya que uso códigos ESC estandar, pero justo ayer me tope con un cliente con una impresora STAR SP-700 y así es como sale el ticket:

[img]
TICKET-AL-REVES.jpg
TICKET-AL-REVES.jpg (27.49 KiB) Viewed 3004 times
[/img]

El orden de impresión es de arriba a abajo, asi como está en la foto es como está orientado a la hora que el ticket va saliendo. Pero como verán las líneas de texto salen de derecha a izquierda y de cabeza. :cry:

Mis códigos de impresión que uso son estos:

Code: Select all

PUBLIC BOLDON   := CHR(27)+'E'
PUBLIC BOLDOF   := CHR(27)+'F'
PUBLIC LITTLON  := CHR(15)
PUBLIC LITTLOF  := CHR(18)
PUBLIC PFF      := CHR(12)
PUBLIC PLF      := CHR(10)+CHR(13)
PUBLIC PCR      := CHR(13)
PUBLIC INIPRINT := CHR(27)+CHR(67)+CHR(0)
PUBLIC ENDPRINT := CHR(27)+CHR(105)  // Corte de papel Tiketeras EPSON CHR(27)+CHR(109) = Corte parcial
Y esta es la rutina de impresión que uso, que como les repito, trabaja perfectamente con ticketeras EPSON y cualquier impresora de tinta inclusive:

Code: Select all

// APERTURA DE LA TABLA CON EL CONTENIDO DEL DOCUMENTO FORMXXXX

   SELE 0
   USE &cFormaDbf ALIAS FORMH SHARED READONLY VIA 'DBFCDX'
   IF .NOT. FILE(cFormaCdx)
      INDEX ON FRM_SECC TAG FormxSecc TO &cFormaCdx
   ENDIF
   SET INDEX TO &cFormaCdx
   DBGOTOP()

   SET PRINTER TO c:\infofarma\tmp\sending.prn
   SET PRINTER ON

      ? LITTLON+BOLDOF
      DO WHILE FRM_SECC = 1
         ?  &(ALLTRIM(FRM_VAR))
         SKIP
      ENDDO

      aDetas := {}
      DO WHILE FRM_SECC = 2
         AADD( aDetas , ALLTRIM(FRM_VAR) )
         SKIP
      ENDDO
      VItemTope := if( VFormItms = 99 , LEN( aFormItems ) , VFormItms )
      FOR nItem = 1 TO VItemTope
         IF nItem <= LEN( aFormItems )
            ITM_NUM := aFormItems[nItem,1]
            ITM_COD := aFormItems[nItem,2]
            ITM_NOM := aFormItems[nItem,3]
            ITM_LAB := aFormItems[nItem,4]
            ITM_VVF := aFormItems[nItem,5]
            ITM_IGV := aFormItems[nItem,6]
            ITM_PVF := aFormItems[nItem,7]
            ITM_UNI := aFormItems[nItem,8]
            ITM_FRA := aFormItems[nItem,9]
            DO CASE
               CASE ITM_UNI > 0 .AND. ITM_FRA > 0
                  ITM_UF  := ALLTRIM(STR(ITM_UNI,6))+'-'+ALLTRIM(STR(ITM_FRA,6))
               CASE ITM_UNI > 0 .AND. ITM_FRA = 0
                  ITM_UF  := ALLTRIM(STR(ITM_UNI,6))
               CASE ITM_UNI = 0 .AND. ITM_FRA > 0
                  ITM_UF  := ALLTRIM(STR(ITM_FRA,6))
            ENDCASE
            ITM_PRU := aFormItems[nItem,10]
            ITM_PRF := aFormItems[nItem,11]
            ITM_TSB := aFormItems[nItem,12]
            ITM_TIG := aFormItems[nItem,13]
            ITM_TTL := aFormItems[nItem,14]
            ITM_LOT := aFormItems[nItem,15]
            ITM_VEN := aFormItems[nItem,16]
            ITM_PRX := IF( ITM_PRF > 0 , ITM_PRF , ITM_PRU )
            FOR nDeta = 1 TO LEN( aDetas )
               cItem := aDetas[nDeta]
               ?  &cItem
            NEXT
         ELSE
            ?  ' '
         ENDIF
      NEXT

      DO WHILE FRM_SECC = 3
         ?  &(ALLTRIM(FRM_VAR))
         SKIP
      ENDDO

      IF VFormItms = 99
         ? ENDPRINT
      ENDIF

   SET PRINTER OFF
   SET PRINTER TO

   WIN_PRINTFILERAW( VImprDest , "c:\infofarma\tmp\sending.prn" , "documento venta infofarma" )

   lPrintOk := .T.
   CLOSE FORMH

RETURN( lPrintOk )
Mucho agradeceré una ayuda de aquellos que han tenido este mismo problema y me den una mano para resolverlo.


De antemano muy agradecido y reciban todos mis cordiales saludos.

Eduardo Flores Rivas


LIMA - PERU
User avatar
danielmaximiliano
Posts: 2625
Joined: Fri Apr 09, 2010 4:53 pm
Location: Argentina
Contact:

Re: Ticketera STAR SP-700 al revés

Post by danielmaximiliano »

Utiliza el aplicativo de pruebas para esa tiquetera y de esa forma discriminas exactamente el error que produce el POS al imprimir

http://www.starmicronics.com.mx/absolut ... ?faqid=225
*´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´. (¸.·` *
.·`. Harbour/HMG : It's magic !
(¸.·``··*

Saludos / Regards
DaNiElMaXiMiLiAnO

Whatsapp. := +54901169026142
Telegram Name := DaNiElMaXiMiLiAnO
User avatar
danielmaximiliano
Posts: 2625
Joined: Fri Apr 09, 2010 4:53 pm
Location: Argentina
Contact:

Re: Ticketera STAR SP-700 al revés

Post by danielmaximiliano »

Tambien lee el manual de la impresora pagina 94 comandos ESC "E"
http://www.touchpos.net/docs/star/sp700sm.pdf
*´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´. (¸.·` *
.·`. Harbour/HMG : It's magic !
(¸.·``··*

Saludos / Regards
DaNiElMaXiMiLiAnO

Whatsapp. := +54901169026142
Telegram Name := DaNiElMaXiMiLiAnO
User avatar
edufloriv
Posts: 240
Joined: Thu Nov 08, 2012 3:42 am
DBs Used: DBF, MariaDB, MySQL, MSSQL, MariaDB
Location: PERU

Re: Ticketera STAR SP-700 al revés

Post by edufloriv »

Daniel,

Mil gracias, voy a probar el aplicativo que me enviaste y a revisar el manual. Te estaré informando.

Un gran abrazo.

Eduardo Flores Rivas


LIMA - PERU
Post Reply