Oracle-activeX

Soy de argentina, y necesito hacer un programa de facturación que usa impresoras fiscales Hasar, y utilizan para windows un control (fiscal.ocx) y una librería, quería saber como lo tengo que poner en el form, como invocarlo, trabajarlo en fin, como interactura con ese control, si alguien me puede ayudar o pasar algo similar desde ya

1 Respuesta

Respuesta
1
El funcionamiento de los controles OCX sobre Developer, es bastante rudimentario y da muchos fallos innecesarios, especialmente si ese control es muy complejo, pero si tienes que usarlo aquí va como hacerlo.
Para introducir ese control sobre tu Bloque de datos, debes hacer click sobre un botón que pone OCX y dibujarlo sobre el Lienzo (Canvas).
Pulsas con el botón derecho del ratón y elijes el control que desees incluir. Para usarlo dentro del código del programa debes usar el built-in OLE2 de la siguiente forma:
Si quieres dar valor a alguna propiedad del control sera de la siguiente manera:
Declare
OBJETO OLEOBJ;
BEGIN
OBJETO:=:ITEM('BLOQUE.NB_OBJETO').INTERFACE;
OLE2.SET_PROPERTY(OBJETO,'PROPIEDAD',VALOR);
END;
Te explico, declaras una variable de tipo OLEOBJ que no va a ser otra cosa que una referencia (especie de puntero) al objeto Active-X y usas la fucion SET_PROPERTY para establecer la propiedad.
Para extraer el valor de la propiedad del control:
DECLARE
OBJETO OLEOBJ;
VARIABLE NUMBER(2);
BEGIN
OBJETO:=:ITEM('ALTAS.FECHA').INTERFACE;
VARIABLE:=OLE2.GET_NUM_PROPERTY(OBJETO,'NB_PROPIEDAD');
END;
Como puedes ver la filosofía es muy parecida, defines la variable de tipo OLEOBJ y usas la función GET_NUM_PROPERTY en caso de recuperar un valor numérico (para otros valores hay GET_BOOL_PROPERTY, GET_CHAR_PROPERTY, etc...).
En caso de tener que llamar a Métodos del control, puedes usar la función INVOKE de forma parecida.
Espero que te haya ayudado algo, si te queda alguna duda, consulta la ayuda de Developer o dímelo y si quieres te envío un Módulo de ejemplo que te ayude a hacerlo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas