Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-04-2005
Avatar de adebonis
adebonis adebonis is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona
Posts: 145
Poder: 21
adebonis Va por buen camino
¿Somos los parias de la programación?

Hola.

Os expongo el caso, para mí incomprensible.

La Agencia Tributaria española tiene un ActiveX en un archivo .dll para realizar factura electrónicas (firmar digitalmente una factura) y al instalarlo Delphi me devuelve el mensaje de "Interfaz no compatible", en las Faqs de la Agencia Tributaria ya informa de este mensaje e indica que el ActiveX debe instalarse por REFERENCIA. Yo, la verdad, no sé cómo se instala por referencia en Delphi.

El caso es que envío un correo a la Agencia Tributaria pidiendo información y me contestan literalmente.

"Desconocemos Delphi, y el programador del ActiveX también, de todas formas el ActiveX debe funcionar por Referencia."

He quedado atónito. Desconocen Delphi!!!!, y tal como responden me quedaré sin poder utilizar el control ActiveX, y el caso es que lo necesito incorporar en mi aplicación, si no, adiós dinero.

Bueno. Si alguien es capaz de ayudarme, aunque sea pagando, se lo agradeceré.

Un saludo a todos.
Adolfo de Bonis Mora
Responder Con Cita
  #2  
Antiguo 20-04-2005
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Delphi no es el lenguaje mas conocido... eso es cierto. Pero lo de parias me parece exagerado. Por otro lado, yo desconozco a Ruby, TCL, Python y practicamente todo lo que me huela a C

Si miras en https://sourceforge.net/softwaremap/...p?form_cat=160 veras que hasta hoy, hay inscritos 1761 proyectos. Teniendo en cuenta que son proyectos open source y se supone que PHP, C++, Java sobre plataforma Linux deberia ser casi lo unico, es un numero impresionante, y esta MUY por encima de Visual Basic.NET y Visual FoxPro y otros y sourceforge es *nix a la lata (Obviamente hay que tener en cuenta que en todo sourceforge hay varios proyectos muertos y que esto no es una estadistica de certeza absoluta, pero una buena indicacion)

Lo de instalarce por referencia? Prueba:

- Registra la dll con RegSvr32 que se encuentra en Windows\System32
- Dale un IMport de activeX. Si asi no funciona:
- Dale un import Type Library. Debe funcionar asi.

De todas maneras todo control activex se puede crear usando CreateOleObject (en tiempo de ejecucion) pero asi no tienes soporte a programacion tipada, mejor dicho, toca programar como si fuera un lenguaje de script.
__________________
El malabarista.
Responder Con Cita
  #3  
Antiguo 20-04-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.278
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por adebonis
... y al instalarlo Delphi me devuelve el mensaje de "Interfaz no compatible", en las Faqs de la Agencia Tributaria ya informa de este mensaje e indica que el ActiveX debe instalarse por REFERENCIA. Yo, la verdad, no sé cómo se instala por referencia en Delphi.
Antes de nada debes registrar el componente con la siguiente línea de comandos:
regsvr32 AEATFACT.dll

Otra cosa, ¿No te deja instalarlo? o ¿No te deja colocar en un Form? Si es el segundo como me imagino, intenta crear el componnente por código sin arrastrarlo en diseño.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 20-04-2005
Avatar de adebonis
adebonis adebonis is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona
Posts: 145
Poder: 21
adebonis Va por buen camino
Hola.

Ok. Ya tenía registrada la dll.

Tienes razón. Me deja instalar el ActiveX pero no me deja colorcarlo en un Form.

El Caso es que incorporo el archivo tlb creado en mi aplicación y me es imposible acceder a sus métodos. Utilizo el siguiente código

procedure FacturaDigital;
var
MiFactura: Variant;
begin
MiFactura := CreateOleObject('TAeatFactCtl'); // Aquí me da el error
try
MiFactura.Firma('archivofactura, Nif, Facturadestino);
finally
MiFactura.Unassigned;
end;
end;

De aquí no paso. No sé mas. Si me das alguna idea lo agradeceré.

Gracias.
Adolfo Bonis Mora
Responder Con Cita
  #5  
Antiguo 20-04-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Seguramente 'TAeatFactCtl' no es el nombre correcto del control. En la documentación o el servicio técnico debieran informarte cuál es el nombre correcto. Si no, posiblemente una búsqueda en el registro de Windows por el término AeatFactCtl te lleve al nombre adecuado.

Y por cierto, nada de parias. Que haya personas que consideren otros lenguajes como mejores que Delphi o incluso que consideren que Delphi es malo, es normal, todos tienen un punto de vista distinto. Pero si el programador del control ActiveX afirma que desconoce Delphi, entonces es simplemente que se trata de un soberbio, incapaz además, de dar el soporte requerido.

// Saludos
Responder Con Cita
  #6  
Antiguo 21-04-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.278
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por adebonis
De aquí no paso. No sé mas. Si me das alguna idea lo agradeceré.
Tal vez "meo fuera de tiesto", pero en el fichero TLB debes tener una declaración de la clase similar a ésta:

Código Delphi [-]
 TAeatFactCtl = class(TOleControl)
   private
     FIntf: IAeatFactCtl;
     function  GetControlInterface: IAeatFactCtl;
   protected
     procedure CreateControl;
     procedure InitControlData; override;
   public
     function FIRMA(const rutaOrigen: WideString; const certificado: WideString; 
                    const rutaDestino: WideString): WideString;
     function VERIFICA(const rutaOrigen: WideString; const rutaDestino: WideString): WideString;
     property  ControlInterface: IAeatFactCtl read GetControlInterface;
     property  DefaultInterface: IAeatFactCtl read GetControlInterface;
   published
   end;

¿Has probado a utilizarla de la forma estándard? TOLeControl (de la que deriva) posee el método create:

Código Delphi [-]
 constructor Create(AOwner: TComponent); override;

¿Has probado?

Código Delphi [-]
 var
   Fact:TAeatFactCtl ;
 begin
   Fact := TAeatFactCtl.Create(Self);
   try
     Fact.FIRMA(....
     Fact.VERIFICA(...
   finally
     Fact.Free;
   end;
   ...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #7  
Antiguo 21-04-2005
Avatar de adebonis
adebonis adebonis is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona
Posts: 145
Poder: 21
adebonis Va por buen camino
Hola.

Si, ya he hecho lo que indicas, pero al ejecutar el programa y en el momento en que se ejecuta el método create muestra el mensaje "Interfaz no compatible" y adiós.

Lo de parias todavía creo que lo somos. Una cosa es que un programador no sepa qué es Delphi, pero otra cosa es que la Agencia Tributaria española no tenga en cuenta otro lenguaje de programación que no sea Visual basic, y encima me digan nue !!No lo conocen!!. Otra cosa sería que lo conocen pero que no han puesto ejemplos de utilización o que no tienen ganas de hacerlo.

En definitiva, sigo sin conseguir utilizar el componente.

Gracias.
Adolfo Bonis Mora
Responder Con Cita
  #8  
Antiguo 25-04-2005
Avatar de adebonis
adebonis adebonis is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona
Posts: 145
Poder: 21
adebonis Va por buen camino
Hola.

Por fin he dado con el tema.

El código sería tal como este:

Factura := CreateOleObject('AeatFact.AeatFactCtl');
try
Salida := Factura.FIRMA(Inicio, Nif, Final);
finally
Factura := Unassigned;
end;


Gracias a todos.
Adolfo Bonis Mora
Barcelona
Responder Con Cita
  #9  
Antiguo 25-04-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.278
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por adebonis
...
Factura := CreateOleObject('AeatFact.AeatFactCtl');
...
Una pregunta. ¿Cómo llegaste a ésta línea?
En concreto de dónde sale ésto (simple curiosidad): 'AeatFact.AeatFactCtl'
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #10  
Antiguo 25-04-2005
Avatar de adebonis
adebonis adebonis is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona
Posts: 145
Poder: 21
adebonis Va por buen camino
Hola.

Bueno, me metí otra vez en las Faqs de la Agencia Tributaria y ví una en la que daba un ejemplo de utilización del componente en Visual basic en la que utilizaba la misma función "CreateOleObject" con el parámtero "AeatFact.AeatFactCtl". Así que lo probé y funcionó.

Un saludo
Adolfo Bonis Mora
Barcelona
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 01:30:19.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi