¿Puedo incluir una rutina VB en una fuente xHarbour?
- Leon Valenzuela
- Posts: 57
- Joined: Tue Nov 04, 2008 2:08 pm
- Location: Santiago - Chile
- Contact:
¿Puedo incluir una rutina VB en una fuente xHarbour?
¿Puedo incluir una rutina VB en una fuente xHarbour?
Tengo problemas para programar con una ocx que no se como abrir...
Ayuda please...
Tengo problemas para programar con una ocx que no se como abrir...
Ayuda please...
Quiero hacer facturación electrónica...
Leon Valenzuela.
Santiago - Chile.
Leon Valenzuela.
Santiago - Chile.
- Daniel Garcia-Gil
- Posts: 2365
- Joined: Wed Nov 02, 2005 11:46 pm
- Location: Isla de Margarita
- Contact:
Re: ¿Puedo incluir una rutina VB en una fuente xHarbour?
Leon
saludos, enviame el ocx a mi correo a ver que puedo ayudar, o puedes comunicarte conmigo por chat gmail: danielgarciagil@gmail.com o msn: danielgarciagil@cantv.net
saludos, enviame el ocx a mi correo a ver que puedo ayudar, o puedes comunicarte conmigo por chat gmail: danielgarciagil@gmail.com o msn: danielgarciagil@cantv.net
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
- Leon Valenzuela
- Posts: 57
- Joined: Tue Nov 04, 2008 2:08 pm
- Location: Santiago - Chile
- Contact:
Re: ¿Puedo incluir una rutina VB en una fuente xHarbour?
Daniel, gracias por responder, he puesto un mail para ti.
De antemano, gracias.
De antemano, gracias.
Quiero hacer facturación electrónica...
Leon Valenzuela.
Santiago - Chile.
Leon Valenzuela.
Santiago - Chile.
- Daniel Garcia-Gil
- Posts: 2365
- Joined: Wed Nov 02, 2005 11:46 pm
- Location: Isla de Margarita
- Contact:
Re: ¿Puedo incluir una rutina VB en una fuente xHarbour?
Leon...
esto es un pequeño ejemplo con el ocx que me enviaste, espero te sirva de punto de partida
esto es un pequeño ejemplo con el ocx que me enviaste, espero te sirva de punto de partida
Code: Select all
#include "FiveWin.ch"
//TxBaundRate
#define TXBR1200 0
#define TXBR2400 1
#define TXBR4800 2
#define TXBR9600 3
#define TXBR19200 4
#define TXBR38400 5
//TxCommPort
#define TXCOM1 0
#define TXCOM2 1
#define TXCOM3 2
#define TXCOM4 3
//TxErrorType
#define EFP_Success 0
#define EFP_E_ComInUse 1
#define EFP_E_InvalidCom 2
#define EFP_E_ComAlreadyOpen 3
#define EFP_E_ComAlreadyClose 4
#define EFP_E_BadInitialization 5
#define EFP_E_ComClose 6
#define EFP_E_MaxDataLengthReached 7
#define EFP_E_InvalidDataInField 8
#define EFP_E_OperationInProgress 9
#define EFP_E_WriteError 10
#define EFP_E_ReadTimeOut 11
#define EFP_E_NackReceived 12
#define EFP_E_InvalidIndex 13
//TxFiscalState
#define EFP_S_Close 0
#define EFP_S_Idle 1
#define EFP_S_Busy 2
//TxProtocolType
#define protocol_Compatible 0
#define protocol_Extended 1
function Main()
local oWnd, oEpson
DEFINE WINDOW oWnd TITLE "Epson Activex"
oEpson = TEpsonFPHostControl():New( oWnd ) //TActiveX():New( oWnd, "EpsonFPHostControlX.EpsonFPHostControl" )//
oEpson:bOnOpen = {|| Msginfo( "Port Opened" ) }
oEpson:bOnClose = {|| Msginfo( "Port Closed" ) }
oEpson:bOnError = {|| MsgInfo( oEpson:LastError ) }
oEpson:OpenPort()
? "BaudRate ANTES", oEpson:BaudRate
oEpson:BaudRate = TXBR19200
? "BaudRate DESPUES", oEpson:BaudRate
? "CommPort", oEpson:CommPort
? "ExtraFieldsCount", oEpson:ExtraFieldsCount
? "FiscalStatus", oEpson:FiscalStatus
? "LastError", oEpson:LastError
? "PrinterStatus", oEpson:PrinterStatus
? "ProtocolType", oEpson:ProtocolType
? "ReturnCode", oEpson:ReturnCode
? "State", oEpson:State
oEpson:ClosePort()
ACTIVATE WINDOW oWnd
return nil
CLASS TEpsonFPHostControl FROM TActiveX
DATA oActiveX
DATA oWnd
DATA bOnOpen
DATA bOnAck
DATA bOnClose
DATA bOnError
DATA bOnFinalAnswer
DATA bOnIntermediateAnswer
DATA bOnNack
DATA bOnRead
DATA bOnWrite
METHOD New( oWnd )
METHOD HandleEpsonEvent( event, aParams, pParams )
ENDCLASS
METHOD New( oWnd ) CLASS TEpsonFPHostControl
::oWnd = oWnd
Super:New( oWnd, "EpsonFPHostControlX.EpsonFPHostControl" )
::bOnEvent = { | event, aParams, pParams | ::HandleEpsonEvent( event, aParams, pParams ) }
RETURN Self
//-------
METHOD HandleEpsonEvent( event, aParams, pParams ) CLASS TEpsonFPHostControl
LOCAL cEvent := UPPER( event )
SWITCH cEvent
CASE "ONOPEN"
IF ::bOnOpen != NIL .AND. ValType( ::bOnOpen ) == "B"
Eval( ::bOnOpen, aParams )
ENDIF
EXIT
CASE "ONACK"
IF ::bOnAck != NIL .AND. ValType( ::bOnAck ) == "B"
Eval( ::bOnAck, aParams )
ENDIF
EXIT
CASE "ONCLOSE"
IF ::bOnClose != NIL .AND. ValType( ::bOnClose ) == "B"
Eval( ::bOnClose, aParams )
ENDIF
EXIT
CASE "ONERROR"
IF ::bOnError != NIL .AND. ValType( ::bOnError ) == "B"
Eval( ::bOnError, aParams )
ENDIF
EXIT
CASE "ONFINALANSWER"
IF ::bOnFinalAnswer != NIL .AND. ValType( ::bOnFinalAnswer ) == "B"
Eval( ::bOnFinalAnswer, aParams )
ENDIF
EXIT
CASE "ONINTERMEDIATEANSWER"
IF ::bOnIntermediateAnswer != NIL .AND. ValType( ::bOnIntermediateAnswer ) == "B"
Eval( ::bOnIntermediateAnswer, aParams )
ENDIF
EXIT
CASE "ONNACK"
IF ::bOnNack != NIL .AND. ValType( ::bOnNack ) == "B"
Eval( ::bOnNack, aParams )
ENDIF
EXIT
CASE "ONREAD"
IF ::bOnRead != NIL .AND. ValType( ::bOnRead ) == "B"
Eval( ::bOnRead, aParams )
ENDIF
EXIT
CASE "ONWRITE"
IF ::bOnWrite != NIL .AND. ValType( ::bOnWrite ) == "B"
Eval( ::bOnWrite(), aParams )
ENDIF
EXIT
ENDSWITCH
RETURN NIL
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
- Leon Valenzuela
- Posts: 57
- Joined: Tue Nov 04, 2008 2:08 pm
- Location: Santiago - Chile
- Contact:
Re: ¿Puedo incluir una rutina VB en una fuente xHarbour?
Daniel, muchas gracias por lo gráfico de tu ejemplo, lo he copiado tal cual en una prg llamada EpsonOCX.prg, y al compilarla con FiveWin 9.08 y xHarbour, me arroja los siguientes errores:
Agradecería una orientación, puesto que los bucles SWITCH no los manejo, de antemano, gracias.
Un abrazo, Leo.
Code: Select all
xHarbour Compiler build 1.2.1 (SimpLex) (Rev. 6406)
Copyright 1999-2009, http://www.xharbour.org http://www.harbour-project.org/
Compiling 'epsonocx.prg' and generating preprocessed output to 'epsonocx.ppo'...
epsonocx.prg(109) Error E0059 Invalid SWITCH Constant 'ONOPEN'.
epsonocx.prg(114) Error E0059 Invalid SWITCH Constant 'ONACK'.
epsonocx.prg(119) Error E0059 Invalid SWITCH Constant 'ONCLOSE'.
epsonocx.prg(124) Error E0059 Invalid SWITCH Constant 'ONERROR'.
epsonocx.prg(129) Error E0059 Invalid SWITCH Constant 'ONFINALANSWER'.
epsonocx.prg(134) Error E0059 Invalid SWITCH Constant 'ONINTERMEDIATEANSWER'.
epsonocx.prg(139) Error E0059 Invalid SWITCH Constant 'ONNACK'.
epsonocx.prg(144) Error E0059 Invalid SWITCH Constant 'ONREAD'.
epsonocx.prg(149) Error E0059 Invalid SWITCH Constant 'ONWRITE'.
9 errors
No code generated
Un abrazo, Leo.
Quiero hacer facturación electrónica...
Leon Valenzuela.
Santiago - Chile.
Leon Valenzuela.
Santiago - Chile.
- Daniel Garcia-Gil
- Posts: 2365
- Joined: Wed Nov 02, 2005 11:46 pm
- Location: Isla de Margarita
- Contact:
Re: ¿Puedo incluir una rutina VB en una fuente xHarbour?
Leon
Cambia el SWITCH por DO CASE
ejemplo
elimina los EXIT
Cambia el SWITCH por DO CASE
ejemplo
Code: Select all
DO CASE
CASE cEvent == "ONOPEN"
...
CASE cEvent == "ONCLOSE"
...
ENDCASE
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
- Leon Valenzuela
- Posts: 57
- Joined: Tue Nov 04, 2008 2:08 pm
- Location: Santiago - Chile
- Contact:
Re: ¿Puedo incluir una rutina VB en una fuente xHarbour?
Daniel, gracias otra vez, por intuición lo hice, y funcionó, ahora, la pregunta es, ¿cómo uso la función "AddDataField" de la ocx? tengo que definirla?
Un abrazo, Leo.
Un abrazo, Leo.
Quiero hacer facturación electrónica...
Leon Valenzuela.
Santiago - Chile.
Leon Valenzuela.
Santiago - Chile.
Re: ¿Puedo incluir una rutina VB en una fuente xHarbour?
Hola,
Disculpen que me intrometa, pero si no me equivoco deberias llamarlo asi :
Saludos,
Lautaro Moreira
Disculpen que me intrometa, pero si no me equivoco deberias llamarlo asi :
Code: Select all
...
oEpson:AddDataField(....) //<-- No olvidar poner los parametros correctos
...
...
Lautaro Moreira
- Leon Valenzuela
- Posts: 57
- Joined: Tue Nov 04, 2008 2:08 pm
- Location: Santiago - Chile
- Contact:
Re: ¿Puedo incluir una rutina VB en una fuente xHarbour?
Daniel, tu class ha sido muy valiosa para mi desarrollo, y estoy seguro que será de mucha utilidad para varios en el foro. Te cuento, incluí éstas líneas de código, y supongo que por la respuesta están bien...
A ambas la respuesta es .T., intuyo que ha añadido la venta a la memoria fiscal de impresora.
Saludos, Leo.
Code: Select all
? "Añadiendo venta", oEpson:AddDataField("hola")
? "Añadiendo venta", oEpson:AddDataField("Holanda")
Saludos, Leo.
Quiero hacer facturación electrónica...
Leon Valenzuela.
Santiago - Chile.
Leon Valenzuela.
Santiago - Chile.
- Leon Valenzuela
- Posts: 57
- Joined: Tue Nov 04, 2008 2:08 pm
- Location: Santiago - Chile
- Contact:
Re: ¿Puedo incluir una rutina VB en una fuente xHarbour?
Lautaro, muchas gracias por tu aporte... creo que la cosa funcionará...
al menos, eso espero...
Un abrazo, Leo.
al menos, eso espero...
Un abrazo, Leo.
Quiero hacer facturación electrónica...
Leon Valenzuela.
Santiago - Chile.
Leon Valenzuela.
Santiago - Chile.
- Leon Valenzuela
- Posts: 57
- Joined: Tue Nov 04, 2008 2:08 pm
- Location: Santiago - Chile
- Contact:
Re: ¿Puedo incluir una rutina VB en una fuente xHarbour?
Help! Cómo envío las cadenas hexadecimales, como la siguiente línea de comando en visual basic?
De antemano, gracias.
Code: Select all
Me.EpsonFPHostControl1.AddDataField Chr$(&H2) & Chr$(&HA)
Me.EpsonFPHostControl1.AddDataField Chr$(&H0) & Chr$(&H1)
Quiero hacer facturación electrónica...
Leon Valenzuela.
Santiago - Chile.
Leon Valenzuela.
Santiago - Chile.
Re: ¿Puedo incluir una rutina VB en una fuente xHarbour?
saludos
amigo leon, pudistes por fin grabar la venta, tengo el mismo problema ahora y quizas me puedas ayudar, como vi tu ultima pregunta sin responder no se si al fin lo pudistes hacer
amigo leon, pudistes por fin grabar la venta, tengo el mismo problema ahora y quizas me puedas ayudar, como vi tu ultima pregunta sin responder no se si al fin lo pudistes hacer
Software especializado para oficinas contables con grandes volumenes de Informacion
Impresion de todos los formularios del Seniat, Dian
alex_patino74@hotmail.com
whatsapp 57+3214777217
Impresion de todos los formularios del Seniat, Dian
alex_patino74@hotmail.com
whatsapp 57+3214777217
Re: ¿Puedo incluir una rutina VB en una fuente xHarbour?
QAZWSX2K, Leon
Haganlo asi...
Ejemplos
//--------------------------------------------
Comando:=Chr(5) + Chr(1)
lRes:=EF:AddDataField(Comando)
Extension:=VtArrayWrapper(VT_UI1,( Chr(0) + Chr(0) + Chr(0) + Chr(0) ) )
lRes:=EF:AddDataField(Extension)
lRes:=SendCommand()
//---------------------------------------------
En el cuerpo de la Boleta, cada linea de productos, hacer esto.
//---------------------------------------------
Comando:=Chr(10) + Chr(6)
lRes:=EF:AddDataField(Comando)
Extension:=VtArrayWrapper(VT_UI1,( Chr(0) + Chr(0) + Chr(1) + Chr(0) ) )
EF:AddDataField(Extension)
EF:AddDataField("")
EF:AddDataField("")
EF:AddDataField("")
EF:AddDataField("")
EF:AddDataField("")
EF:AddDataField( Substr(cProducto,1,30))
EF:AddDataField( nCantidad )
EF:AddDataField( nValorUnidad )
EF:AddDataField( 1900 )
lRes:=SendCommand()
//---------------------------------------------
Cualquier avance o duda, posteenla..
Saludos
Desde Chile
Adolfo
Haganlo asi...
Ejemplos
//--------------------------------------------
Comando:=Chr(5) + Chr(1)
lRes:=EF:AddDataField(Comando)
Extension:=VtArrayWrapper(VT_UI1,( Chr(0) + Chr(0) + Chr(0) + Chr(0) ) )
lRes:=EF:AddDataField(Extension)
lRes:=SendCommand()
//---------------------------------------------
En el cuerpo de la Boleta, cada linea de productos, hacer esto.
//---------------------------------------------
Comando:=Chr(10) + Chr(6)
lRes:=EF:AddDataField(Comando)
Extension:=VtArrayWrapper(VT_UI1,( Chr(0) + Chr(0) + Chr(1) + Chr(0) ) )
EF:AddDataField(Extension)
EF:AddDataField("")
EF:AddDataField("")
EF:AddDataField("")
EF:AddDataField("")
EF:AddDataField("")
EF:AddDataField( Substr(cProducto,1,30))
EF:AddDataField( nCantidad )
EF:AddDataField( nValorUnidad )
EF:AddDataField( 1900 )
lRes:=SendCommand()
//---------------------------------------------
Cualquier avance o duda, posteenla..
Saludos
Desde Chile
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