Hola Fabio,
La Forma de uso del OPOS/ADKs es un standard para retail.
La forma de uso por lo general es la siguiente:
Obviamente primero debes instanciar Los Activex siguiendo estos pasos
(Selecciona Herramientas, Opciones, Controles, Controles Activex)
Busca en la lista algo como:
Para la Balanza (OPOS Scale Control 1.5.101 [Public, by CRM/RCS-
Dayton])
Para el Scanner (OPOS Scanner Control 1.5.101 [Public, by CRM/RCS-
Dayton])
Selecciónalos y das click en aceptar, después de esto te aparecerán
disponibles en la barra de Controles Activex.
Arrastra ambos a tu form y utiliza el siguiente código.
** Esto en el Init del Form
_VFP.AutoYield = .F.
With Thisform
.DataScanner.Open("DL_SC_RS232Scanner")
If .DataScanner.Resultcode <> 0
=Messagebox('Scanner No Disponible')
.DataScanner.Enabled = .F.
Else
.DataScanner.ClaimDevice( 0 )
.DataScanner.DeviceEnabled = .T.
.DataScanner.AutoDisable = .F.
.DataScanner.DataEventEnabled = .T.
.DataScanner.DecodeData = .T.
Endif
Endwith
** En el Destroy
If Thisform.DataScanner.Enabled = .T.
With Thisform
.DataScanner.DeviceEnabled = .F.
If .DataScanner.ResultCode <> 0
Messagebox("Fallo la desactivacion del Scanner")
Endif
If .DataScanner.ReleaseDevice <> 0
Messagebox("Fallo la liberación del Scanner")
Endif
If .DataScanner.Close <> 0
Messagebox("Fallo Cierre del Scanner")
Endif
Endwith
Endif
** En el DataEvent del Control ActiveX del Scanner**
LPARAMETERS STATUS
IF ThisForm.DataScanner.ENABLED = .T.
WITH THISFORM
ThisForm.TxtcArticulo.VALUE = .DataScanner.ScanDataLabel
.DataScanner.DataEventEnabled = .T.
KEYBOARD '{ENTER}'
ENDWITH
ENDIF
** En el DataEvent del Control ActiveX de la balanza**
With Thisform
WAIT WINDOW "Peso = " +STR(.DataScale.ScaleLiveWeight,10,2)
.DataScale.DataEventEnabled = .T.
Keyboard '{ENTER}'
Endwith
Espero te sirva de algo.
Saludos
Alex A. Vargas