Para Antonio Linares.
- Leon Valenzuela
- Posts: 57
- Joined: Tue Nov 04, 2008 2:08 pm
- Location: Santiago - Chile
- Contact:
Para Antonio Linares.
Estimado Antonio, estoy en una situación más o menos incómoda... Necesito abrir una OCX de epson, y la verdad, en el foro, no hay indicio alguno de cómo hacerlo. Esto pertenece al manejo de una impresora fiscal, y necesito obtener resultados en un plazo muy breve, (Antes del 21 de mayo), anteriormente te envié algunas cosas que refieren a otro modelo de otra marca de este tipo de dispositovos, y aun no tengo respuesta alguna. Sólo necesito saber, cómo incrusto la ocx en mi código fuente para invocar las funciones... espero puedas ayudarme... a todo aquel que sepa del manejo de estas máquinas fiscales, le estaré agradecido...
Sin más que decir, un abrazo, Leo.
Sin más que decir, un abrazo, Leo.
Quiero hacer facturación electrónica...
Leon Valenzuela.
Santiago - Chile.
Leon Valenzuela.
Santiago - Chile.
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Para Antonio Linares.
Leon,
Prueba asi (este ejemplo es con el otro OCX que me enviastes):
Prueba asi (este ejemplo es con el otro OCX que me enviastes):
Code: Select all
DEFINE WINDOW oWnd TITLE "Test"
oActiveX = TActiveX():New( oWnd, "OCXSAM350Lib.Ocxsam350" )
oActiveX :init(2)
oActiveX :abrirboleta(0, 0)
oActiveX :agregaitem("Test", 1, 1)
oActiveX :agregapago(0, 200)
oActiveX :cierraboleta(0)
oActiveX :fini()
ACTIVATE WINDOW oWnd
- Leon Valenzuela
- Posts: 57
- Joined: Tue Nov 04, 2008 2:08 pm
- Location: Santiago - Chile
- Contact:
Re: Para Antonio Linares.
Estimado Antonio, primero que nada, gracias por responder, segundo, al poner esta línea "oActiveX = TActiveX():New( oWnd, "OCXSAM350Lib.Ocxsam350" )", el sistema inmediatamente deja de funcionar, por qué? no lo sé.
Trabajo con fivewin 9.08 y xharbour.
Saludos, Leo.
Trabajo con fivewin 9.08 y xharbour.
Saludos, Leo.
Quiero hacer facturación electrónica...
Leon Valenzuela.
Santiago - Chile.
Leon Valenzuela.
Santiago - Chile.
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Para Antonio Linares.
Leo,
Has comprobado en tus ejemplos que esta sea la descripción que usan ("PROGID") ?
"OCXSAM350Lib.Ocxsam350"
Has comprobado en tus ejemplos que esta sea la descripción que usan ("PROGID") ?
"OCXSAM350Lib.Ocxsam350"
- Leon Valenzuela
- Posts: 57
- Joined: Tue Nov 04, 2008 2:08 pm
- Location: Santiago - Chile
- Contact:
Re: Para Antonio Linares.
Estimado Antonio, he probado el abrir la ocx con un redefine en un diálogo, y por supuesto, también creando una ventana, de las dos formas el programa se cuelga.
Un abrazo, Leo.
Un abrazo, Leo.
Quiero hacer facturación electrónica...
Leon Valenzuela.
Santiago - Chile.
Leon Valenzuela.
Santiago - Chile.
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Para Antonio Linares.
Que PROGID estas usando ?
Si no usas el correcto, la aplicación no podrá crear el ActiveX.
Si no usas el correcto, la aplicación no podrá crear el ActiveX.
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Para Antonio Linares.
Leo,
Por lo que te ha comentado Daniel, parece que el PROGID correcto es "EpsonFPHostControlX.EpsonFPHostControl"
Cada ActiveX tiene su propio PROGID que nos permite crearlo. Si se usa un PROGID equivocado, la aplicación no funciona.
Por lo que te ha comentado Daniel, parece que el PROGID correcto es "EpsonFPHostControlX.EpsonFPHostControl"
Cada ActiveX tiene su propio PROGID que nos permite crearlo. Si se usa un PROGID equivocado, la aplicación no funciona.
- Leon Valenzuela
- Posts: 57
- Joined: Tue Nov 04, 2008 2:08 pm
- Location: Santiago - Chile
- Contact:
Re: Para Antonio Linares.
Estimado Antonio, si bien es cierto, Daniel ha dado en el clavo, ahora me he entrampado en otra situación...
Hay algunos comandos que debo enviar a la impresora, éstos son hexadecimal, y no veo forma de enviarlos, pués no sé su equivalencia decimal, y menos aún, de qué forma representarlos con fwh...
Una de las tantas secuencias hexadecimal es la siguiente que está hecha en visual basic:
Por cualquier ayuda, de antemano, gracias.
Un abrazo, Leo.
Hay algunos comandos que debo enviar a la impresora, éstos son hexadecimal, y no veo forma de enviarlos, pués no sé su equivalencia decimal, y menos aún, de qué forma representarlos con fwh...
Una de las tantas secuencias hexadecimal es la siguiente que está hecha en visual basic:
Code: Select all
Private Sub Command5_Click()
' Obtención de las Caracteristicas fiscales'
Me.EpsonFPHostControl1.AddDataField Chr$(&H2) & Chr$(&HA) // Secuencia de comando hexadecimal
Me.EpsonFPHostControl1.AddDataField Chr$(&H0) & Chr$(&H1) // Secuencia de comando hexadecimal
Me.EpsonFPHostControl1.SendCommand
While EpsonFPHostControl1.State = EFP_S_Busy
DoEvents
Wend
MsgBox "Fiscal: " & Hex(Me.EpsonFPHostControl1.FiscalStatus)
MsgBox "Printer: " & Hex(Me.EpsonFPHostControl1.PrinterStatus)
MsgBox "Return Code: " & Hex(Me.EpsonFPHostControl1.ReturnCode)
MsgBox "Nombre de la Versión : " & Me.EpsonFPHostControl1.GetExtraField(1)
MsgBox "ID del País : " & Me.EpsonFPHostControl1.GetExtraField(2)
MsgBox "Versión de Firmware Mayor: " & Me.EpsonFPHostControl1.GetExtraField(3)
MsgBox "Versión de Firmware Menor: " & Me.EpsonFPHostControl1.GetExtraField(4)
MsgBox "Versión de Firmware Compi: " & Me.EpsonFPHostControl1.GetExtraField(5)
MsgBox "ID del mecanismo impresor: " & Me.EpsonFPHostControl1.GetExtraField(6)
MsgBox "Nombre Mecanismo Impresor: " & Me.EpsonFPHostControl1.GetExtraField(7)
MsgBox "Capacidad Memoria fiscal : " & Me.EpsonFPHostControl1.GetExtraField(8)
MsgBox "Capacidad Memoria Transac: " & Me.EpsonFPHostControl1.GetExtraField(9)
MsgBox "Capacidad Memoria Trabajo: " & Me.EpsonFPHostControl1.GetExtraField(10)
MsgBox "Jumper de Servicio Conect: " & Me.EpsonFPHostControl1.GetExtraField(11)
MsgBox "Estado de los dip-switche: " & Me.EpsonFPHostControl1.GetExtraField(12)
End Sub
Un abrazo, Leo.
Quiero hacer facturación electrónica...
Leon Valenzuela.
Santiago - Chile.
Leon Valenzuela.
Santiago - Chile.
Re: Para Antonio Linares.
Leon
EF:CreateObject("EpsonFPHostControlX.EpsonFPHostControl" )
.......
Comando:=Chr(10) + Chr(9)
EF:AddDataField(Comando)
EF:SendCommand()
Cuando necesties enviar mas de 2 caracteres de control debes hacer lo siguiente
Comando:=VtArrayWrapper(VT_UI1,(Chr(0) + Chr(0) + Chr(0) + Chr(0) )
EF:AddDataField(Comando)
EF:SendCommand()
Espero te sirva.
Saludos
Adolfo
EF:CreateObject("EpsonFPHostControlX.EpsonFPHostControl" )
.......
Comando:=Chr(10) + Chr(9)
EF:AddDataField(Comando)
EF:SendCommand()
Cuando necesties enviar mas de 2 caracteres de control debes hacer lo siguiente
Comando:=VtArrayWrapper(VT_UI1,(Chr(0) + Chr(0) + Chr(0) + Chr(0) )
EF:AddDataField(Comando)
EF:SendCommand()
Espero te sirva.
Saludos
Adolfo
Ji,ji,ji... buena la cosa... "all you need is code"
http://www.xdata.cl - Desarrollo Inteligente
----------
Lenovo Legion Y520, 16GB Ram, 1 TB NVME M.2, 1 TB SSD, GTX 1050
http://www.xdata.cl - Desarrollo Inteligente
----------
Lenovo Legion Y520, 16GB Ram, 1 TB NVME M.2, 1 TB SSD, GTX 1050
- Leon Valenzuela
- Posts: 57
- Joined: Tue Nov 04, 2008 2:08 pm
- Location: Santiago - Chile
- Contact:
Re: Para Antonio Linares.
Estimado Antonio, sigo con problemas, pues envíe una cadena hexadecimal a la impresora, y obviamente no logré imprimir, pero si logré generarle un bloqueo por software, alguna pista?
Quiero hacer facturación electrónica...
Leon Valenzuela.
Santiago - Chile.
Leon Valenzuela.
Santiago - Chile.
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: Para Antonio Linares.
Leo,
Esta secuencia:
EpsonFPHostControl1.AddDataField Chr$(&H2) & Chr$(&HA)
es equivalente a:
EF:AddDataField( Chr( 2 ) + Chr( 10 ) )
Esta secuencia:
EpsonFPHostControl1.AddDataField Chr$(&H2) & Chr$(&HA)
es equivalente a:
EF:AddDataField( Chr( 2 ) + Chr( 10 ) )
-
- Posts: 1
- Joined: Wed Oct 26, 2011 2:09 pm
Re: Para Antonio Linares.
Estimado
Uso la ocx "ocxsam350.ocx"
y en "Valor = Fiscal.init(2)" me arroja el siguiente error:
Error catastrófico (Excepción de HRESULT: 0x8000FFFF (E_UNEXPECTED))
Lo he intentado todo pero aun así no obtengo la solución
Ojala me puedan ayudar.
Saludos
Uso la ocx "ocxsam350.ocx"
Code: Select all
Dim Fiscal As OCXSAM350Lib.Ocxsam350
Fiscal = New OCXSAM350Lib.Ocxsam350()
Dim Valor As String
Valor = Fiscal.init(2)
Error catastrófico (Excepción de HRESULT: 0x8000FFFF (E_UNEXPECTED))
Lo he intentado todo pero aun así no obtengo la solución
Ojala me puedan ayudar.
Saludos