FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Para Antonio Linares.
Posts: 57
Joined: Tue Nov 04, 2008 02:08 PM
Para Antonio Linares.
Posted: Mon May 17, 2010 03:07 PM

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.

Quiero hacer facturaci贸n electr贸nica...



Leon Valenzuela.

Santiago - Chile.
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Para Antonio Linares.
Posted: Mon May 17, 2010 06:23 PM
Leon,

Prueba asi (este ejemplo es con el otro OCX que me enviastes):
Code (fw): Select all Collapse
聽 聽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
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 57
Joined: Tue Nov 04, 2008 02:08 PM
Re: Para Antonio Linares.
Posted: Mon May 17, 2010 10:07 PM

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.

Quiero hacer facturaci贸n electr贸nica...



Leon Valenzuela.

Santiago - Chile.
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Para Antonio Linares.
Posted: Tue May 18, 2010 07:42 AM

Leo,

Has comprobado en tus ejemplos que esta sea la descripci贸n que usan ("PROGID") ?

"OCXSAM350Lib.Ocxsam350"

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 57
Joined: Tue Nov 04, 2008 02:08 PM
Re: Para Antonio Linares.
Posted: Tue May 18, 2010 03:21 PM

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.

Quiero hacer facturaci贸n electr贸nica...



Leon Valenzuela.

Santiago - Chile.
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Para Antonio Linares.
Posted: Tue May 18, 2010 04:54 PM

Que PROGID estas usando ?

Si no usas el correcto, la aplicaci贸n no podr谩 crear el ActiveX.

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Para Antonio Linares.
Posted: Tue May 18, 2010 05:25 PM

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.

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 57
Joined: Tue Nov 04, 2008 02:08 PM
Re: Para Antonio Linares.
Posted: Wed May 19, 2010 02:48 PM
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:

Code (fw): Select all Collapse
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

Por cualquier ayuda, de antemano, gracias.

Un abrazo, Leo.
Quiero hacer facturaci贸n electr贸nica...



Leon Valenzuela.

Santiago - Chile.
Posts: 883
Joined: Tue Oct 11, 2005 11:57 AM
Re: Para Antonio Linares.
Posted: Wed May 19, 2010 04:43 PM

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

;-) Ji,ji,ji... buena la cosa... "all you need is code"

http://www.xdata.cl - Desarrollo Inteligente
----------
Asus TUF F15, 32GB Ram, 2 * 1 TB NVME M.2, GTX 1650
Posts: 57
Joined: Tue Nov 04, 2008 02:08 PM
Re: Para Antonio Linares.
Posted: Thu May 20, 2010 08:41 PM

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.
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Para Antonio Linares.
Posted: Thu May 20, 2010 10:12 PM

Leo,

Esta secuencia:
EpsonFPHostControl1.AddDataField Chr$(&H2) & Chr$(&HA)

es equivalente a:
EF:AddDataField( Chr( 2 ) + Chr( 10 ) )

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1
Joined: Wed Oct 26, 2011 02:09 PM
Re: Para Antonio Linares.
Posted: Wed Nov 16, 2011 07:15 PM
Estimado

Uso la ocx "ocxsam350.ocx"

Code (fw): Select all Collapse
 聽 聽 聽
聽 聽 聽 聽 Dim Fiscal As OCXSAM350Lib.Ocxsam350
聽 聽 聽 聽 Fiscal = New OCXSAM350Lib.Ocxsam350()

聽 聽 聽 聽 Dim Valor As String

聽 聽 聽 聽 Valor = Fiscal.init(2)


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

Continue the discussion