Respuesta propuesta abrir cajon monedero

  • martes, 11 de diciembre de 2007 15:50
     
     

    hola a todos soy nuevo en esto y astoy doseñando un soft para inventario y puntp de venta (POS) la cuestion es que no se como hacer para que abra ewl cajon monedero al momento de imprimin tenia entendido que com enviar una sirie de caracteres a la impresora (TM-U220) QUE ESTA CONECTADA POR RJ12 AL CAJON MONEDERO (AQ-4000/7000 Series) esta enviaria la orden de abrir el cajon monedero pero hasta ahora lo unico que hace es imprimir la cadena de caracteres y ya.

    Nota:  la cadena de caracteres la mando a imprimir de igual manera que mando a impromir el sticker y la cadena es:                                                                                                                                   #1, CHR$(&H1B);"P";CHR$(0);CHR$(100);CHR$(250)   

     

    ESTA CADENA SEGUN EL MANUAL DE EL CAJON MONEDERO ES PARA QBASIC USANDO LA SENTENCIA PRINTER.

     

    DE ANTEMANO LES AGRADESCO SU AYUDA.

Todas las respuestas

  • martes, 11 de diciembre de 2007 19:12
     
     

    Que tal

     

    Tenemos un programa de Punto de Venta y encontramos también ese problema, probamos diferentes soluciones, puedes encontrar un programa de muestra en:

     

    http://www.planetsourcecode.com/vb/scripts/ShowCode.asp?txtCodeId=69491&lngWId=1

     

    Una aclaración pertinente, esto fue desarrollado en VB6, la lógica es la misma, y me parece que te puede ser de utilidad.

     

    Saludos,

     

    JCP

     

  • miércoles, 12 de diciembre de 2007 14:58
     
     

    BUENOS DIAS.

     

    VOY A ESCUDRIÑAR ESTE PROGRAMA PARA TRATAR DE SACAR LA MAXIMA UTILIDAD, AUNQUE SEGUN EN EL EJEMPLO, PARESE SER QUE ES PARA CAJONES MONEDEROS CONECTADOS DIRECTAMENTE AL ORDENADOR POR EL PUERTO SERIAL COM Y EN MI CASO ESTA LA IMPRESORA CONECTADA EL CAJON MONEDERO POR RJ12 Y ESTA ES LA QUE MANDA LA SEÑAL (SOLENOID) PARA SU APERTURA.

     

    DE TODAS FORMAS ESPERO ENCINTRAR LO QUE BUSCO ACA.

     

    MUCHISIMAS GRACIAS POR LA AYUDA.  LUEGO TE CUENTO COMO ME FUE.

     

    BYE...

     

     

  • miércoles, 03 de septiembre de 2008 15:43
     
     

    Hola;

     

    Necesito me colaboren con lo siguiente:

    Se esta desarrollando un aplicativo para manejo de  caja menor... en .net. Resulta que se requiere un Cajon monedero, NO SE VA a utilizar Impresora.. Necesito que al pulsar una tecla salga el cajon. automaticaamente.. No se como se puede hacer esto????????

     Garciasssssss

  • miércoles, 03 de septiembre de 2008 16:23
    Moderador
     
     
    hola!!!...

    yo tengo una aplicación hecha en VFP para lo que es facturación y punto de venta... es la que estoy reescribiendo a C#. yo baje un archivo de la pagina de Epson ya hace mucho tiempo atras, este archivo se copia al puerto LPT1 y abre la caja ya sea luego de imprimir o solo para abrir la caja... si les interesa se los puedo pasar por correo.

    Saludos,
  • jueves, 04 de septiembre de 2008 21:39
     
     Respuesta propuesta

    si claro,,,,

    es que estoy super perdida en esto....... nunca he manejado esos puertos el del cajon es serial ... y estoy manejando access y .net.

    Cualquier cosa que me puedan ayudar.....

     meryluna43@hotmail.com

    Gracias

     

     

     

     

    • Propuesto como respuesta petovelez lunes, 14 de septiembre de 2009 1:05
    •  
  • viernes, 14 de noviembre de 2008 22:46
     
     
    Hola... mira yo tengo todo trabajando bien .. el problema es que al abrir el cajón monedero, me hace un Feed en la impresora, lo que me genera un desperdicio de papel que ya está molestando a algunos de mis clientes.

    Esto me sucede tanto en impresoras samsung como Epson ya sean térmicas o de matriz de punto


    cualquier ayuda te la agradeceria mucho

    Marvin  si me puedes colaborar enviandome el programa en VFP que tienes te lo agradeceria mucho... de pronto me puede dar una luz. para solucionar mi problema

    jupagose@hotmail.com
  • lunes, 19 de enero de 2009 21:50
     
     

    YA CHECASTE LAS PROPÍEDADES DE LA IMPRESORA

     

    EN ELLAS VIENE LA OPCION DE QUE SE ABRA EL CAJON AL MOMENTO DE QUE SE IMPRIMA EL DOCUMENTO

     

  • lunes, 19 de enero de 2009 23:57
     
     

    Hola,

     

    La cadena correcta sería:

     

    Chr(27) & "p0dd"

     

    o bien

     

    Chr(27) & "p1dd"

     

    "0" o "1" (no es lo mismo, pero funciona igual que Chr(0) y Chr(1)), te permiten especificar a que pin del conector se enviará el voltaje. "dd" indican la duración del pulso y el intervalo entre dos pulsos sucesivos. La "p" es minúscula.´

     

    No puedes usar las funciones de impresión de Windows, que intentará "pintar" el texto y eliminará -aun cuando usesun driver de solo texto para el printer- los caracteres de control. Sin el ESC al comienzo, la cadena deja de ser un comando y se convierte en "p0dd" mostrado en el printer.

     

    Para enviar el texto hacia la impresora, puedes usar esta función, propuesta por "Tristan" (Juan Carlos Badiola) en 2004:

     

    Const GENERIC_WRITE As Int32 = &H40000000
    Const OPEN_EXISTING As Int32 = 3

    Public Declare Auto Function CreateFile
    Lib "kernel32.dll" (ByVal lpFileName As String, ByVal
    dwDesiredAccess As Integer, ByVal dwShareMode As Integer,
    ByVal lpSecurityAttributes As IntPtr, ByVal
    dwCreationDisposition As Integer, ByVal
    dwFlagsAndAttributes As Integer, ByVal hTemplateFile As
    IntPtr) As IntPtr

    Public Function GetStreamWriter(ByVal port As String) As
    StreamWriter
        Dim hFich As IntPtr = CreateFile(port, GENERIC_WRITE, _
               0, IntPtr.Zero, OPEN_EXISTING, 0, IntPtr.Zero)
        Dim stream As New FileStream(hFich, FileAccess.Write)
        Dim writer As New StreamWriter(stream)
        Return writer
    End Function

    De manera que, para abrir una gaveta, escribirías (suponiendo que la tal gaveta está conectada a un printer EPSON conectado a LPT1):

     

    Sub AbrirGaveta()

    Dim p As System.IO.StreamWriter = GetStreamWriter("LPT1")

    p.Write(Chr(27) & "p0dd")

    End Sub

    ' no p.WriteLine, que causaría el avance de una linea en el printer.

     

     

    Salud!

     

  • lunes, 22 de junio de 2009 23:29
     
     

    Hola,

     

    La cadena correcta sería:

     

    Chr(27) & "p0dd"

     

    o bien

     

    Chr(27) & "p1dd"

     

    "0" o "1" (no es lo mismo, pero funciona igual que Chr(0) y Chr(1)), te permiten especificar a que pin del conector se enviará el voltaje. "dd" indican la duración del pulso y el intervalo entre dos pulsos sucesivos. La "p" es minúscula.´

     

    No puedes usar las funciones de impresión de Windows, que intentará "pintar" el texto y eliminará -aun cuando usesun driver de solo texto para el printer- los caracteres de control. Sin el ESC al comienzo, la cadena deja de ser un comando y se convierte en "p0dd" mostrado en el printer.

     

    Para enviar el texto hacia la impresora, puedes usar esta función, propuesta por "Tristan" (Juan Carlos Badiola) en 2004:

     

    Const GENERIC_WRITE As Int32 = &H40000000
    Const OPEN_EXISTING As Int32 = 3

    Public Declare Auto Function CreateFile
    Lib "kernel32.dll" (ByVal lpFileName As String, ByVal
    dwDesiredAccess As Integer, ByVal dwShareMode As Integer,
    ByVal lpSecurityAttributes As IntPtr, ByVal
    dwCreationDisposition As Integer, ByVal
    dwFlagsAndAttributes As Integer, ByVal hTemplateFile As
    IntPtr) As IntPtr

    Public Function GetStreamWriter(ByVal port As String) As
    StreamWriter
        Dim hFich As IntPtr = CreateFile(port, GENERIC_WRITE, _
               0, IntPtr.Zero, OPEN_EXISTING, 0, IntPtr.Zero)
        Dim stream As New FileStream(hFich, FileAccess.Write)
        Dim writer As New StreamWriter(stream)
        Return writer
    End Function

     

    De manera que, para abrir una gaveta, escribirías (suponiendo que la tal gaveta está conectada a un printer EPSON conectado a LPT1):

     

    Sub AbrirGaveta()

    Dim p As System.IO.StreamWriter = GetStreamWriter("LPT1")

    p.Write(Chr(27) & "p0dd")

    End Sub

    ' no p.WriteLine, que causaría el avance de una linea en el printer.

     

     

    Salud!

     

    POR FAVOR NECESITO AYUDA ESTOY HACIENDO UN PROGRAMA EN VFP 6.0

    Y TENGO UNA CAJON DINAPLUS INTERFACE, LE COLOCO LOS COMANDOS QUE TRAE EL MANUAL Y NADA DESPUES DE LA SENTENCIA PRINT Y NO ME FUNCIONA

    GRACIAS ATTE. JUAN VICENTE ANGEL
    e-mail: juanjo230900@hotmail.com


  • lunes, 14 de septiembre de 2009 1:10
     
     Respuesta propuesta

    básicamente tienes que incluir el siguiente código para que al imprimir el reporte la impresora abra el cajón monedero.  El código se registra en el reporte en el pie de página al dar formato o al imprimir.  una vez ejecutado el reporte se abre el cajón


    Private Sub PieDelInforme_Print(Cancel As Integer, PrintCount As Integer)

     Open "lpt1" For Output As #1
     Print #1, Chr(27) + Chr(112) + Chr(48)
     Close #1
    End Sub


    Este codigo funciona si la impresora esta conectada en un puerto serial.

    En este momento mi problema esta en que la impresora esta conectada el el puerto USB y el comando no funciona.
    • Propuesto como respuesta viviserrano martes, 15 de septiembre de 2009 19:42
    •  
  • martes, 15 de septiembre de 2009 19:44
     
     
    hola, peto velez, lo  que sucde es q no se en donde coloco ese comando q tu dices me podrias porfavor  explicar mejor

    gracias...
  • martes, 15 de septiembre de 2009 19:54
     
     
    - Abra el reporte que imprime (tiquete, recibo, informe, etc.)
    - Seleccione la sección de pie de pagina
    - registre en propiedades
    - Eventos  "al imprimir" o "al dar formato"
    registre el codigo antes descrito  el cual debe quedar completo asi:


    Private Sub PieDelInforme_Print(Cancel As Integer, PrintCount As Integer)
      Open "Lpt1" For Output As #1
      Print #1, Chr(27) + Chr(112) + Chr(48)
      Close #1
    End Sub

    Cuando se ejecuta una impresión se abre el cajon.

    Esto funciona si la impresora esta conectada al puerto "Lpt1".

    SI ALGUIEN SABE COMO SE HACE PARA QUE FUNCIONE EN UN PUERTO USB   ............. AAAYYYYYYYUUUUUUDDDDDDAAAAAA 

    carlosavelezm@hotmail.com
  • martes, 06 de octubre de 2009 19:01
     
     
    Hola Marvin me podrias enviar la aplicacion por correo, una pregunta funciona con un cajon monedero generico y con cualquier programa, la impresora es un aepson tmu-220
  • domingo, 20 de diciembre de 2009 1:09
    Moderador
     
     
    Hola!!!...

    no habia vuelto a ver esta pregunta... jejeje, se me olvido, bueno si aun les interesa les puedo enviar el archivo que abre la caja, bueno a mi funciona en C# pero la impresora esta conectada al LPT1, nunca lo he probado al Serial o USB.

    pero estaba buscando como hacerlo de una manera mas eficiente y mejor, como utilizo una Epson TM-U220 he encontrado un driver para USB, Serial y Paralelo y tiene una dll para .Net para abrir el cajon monedero ya sea en USB, Serial y Paralelo y tienes ejemplos y todo lo que necesitas.

    http://www.restaurantplus.com/free-epson-print-drivers.htm

    este es el link donde lo pueden bajar, no es el mismo de donde lo baje pero es el mismo archivo.... esta excelente para .Net

    Saludos, espero les sirva

  • martes, 06 de abril de 2010 17:24
     
     
    Marvin ando buscando el codigo para abrir en cajo que esta conectado a una miniprinter epson tm-u220 por lpt1 y lei que tienes una libreria para hacerlo, hoja y pudieras ayudarme, de antemano gracias mi correo mikepek@hotmail.com
  • miércoles, 18 de agosto de 2010 22:47
     
     

    Que tal amigo, me parecio muy importante tu aporte referenta al codigo para realizar la apertura de cajon por impresora sin generar el avance de papel de la misma

    Hay manera de contactarme con usted para un tema relacionado con lo mismo, y me cobras por tu conocimiento, gracias

  • martes, 28 de diciembre de 2010 18:51
     
     
    hola marvin se que el tema es viejo pero me interesa ese driver para abrir rl cajon conectado a usb pero no logro encontrarlo podrias postiar el link de descarga te gradezco