Eventos Nexus: V7 versus V8

Maestro, maestro, los otros novicios dicen que oculto mi cobardía tras la disciplina de la contemplación del devenir, que con tanto esmero me habéis enseñado.

Nexus es devenir, pequeño saltamontes, y el devenir lleva al Nexus. Te aparta de aberraciones como el VB6 y te ilumina con la marcha de los cuatro. Pero recuerda siempre que te hablen de valor ¿es más cobarde el jabalí o el tigre…? Dooong. Pero… ¿a dónde vas?… Si solo me traen una escupidera de bronce que compré en “ivai”…

En el primer y cuarto artículo de la serie que nos introducía a la programación de dlls de terceros en Nexus…

…hablemos ahora de las diferencias entre la versión 7 y la nueva 8 de Nexus en lo referente a las dlls de terceros.

Principalmente tenemos diferencias en dos apartados, Maestros e Impresión.

Maestros

En versión 7

La signatura de los eventos (la signatura en C# la podéis encontrar en el artículo original) es la siguiente:

 AntesDeGuardarMaestro: function(Tabla: String; Datos: Variant): Boolean; stdcall;
 AntesDeGuardarMaestroV2: function(Tabla: String; Datos: Variant; Estado:Integer): Boolean; stdcall;
 DespuesDeGuardarMaestro: procedure(Tabla: String; Datos: Variant); stdcall;
 DespuesDeGuardarMaestroV2: procedure(Tabla: String; Datos: Variant; Estado:Integer); stdcall;

Aquí hubo una omisión en su día. Aunque están definidos los eventos AntesDeGuardarMaestroV2 y DespuesDeGuardarMaestroV2, estos NO se llaman.

Y recordemos que el parámetro Datos, en ambos casos, es de tipo Registro.

En versión 8

 AntesDeGuardarMaestro: function(Tabla: String; Datos: Variant): Boolean; stdcall;
 AntesDeGuardarMaestroV2: function(Tabla: String; var Datos: Variant; Estado:Integer): Boolean; stdcall;
 DespuesDeGuardarMaestro: procedure(Tabla: String; Datos: Variant); stdcall;
 DespuesDeGuardarMaestroV2: procedure(Tabla: String; Datos: Variant; Estado:Integer); stdcall;

Diferencias con la versión 7

  • En el caso de los eventos AntesDeGuardarMaestro yAntesDeGuardarMaestroV2, Datos recoge un Dataset (con un único registro), mientras que anteriormente era un Registro.
  • Al contrario de lo que pasa en versión 7, los eventos AntesDeGuardarMaestroV2 y DespuesDeGuardarMaestroV2, SÍ se llaman.
  • Y finalmente, el evento AntesDeGuardarMaestroV2 permite la modificación de los valores del maestro que se guarda. Nota, al usar este evento se penaliza ligeramente el guardado de los maestros, ya que Nexus debe comprobar si se han producido cambios en los datos pasados a la dll para aplicarlos a los campos correspondientes del maestro que trata de grabar.

Impresión

En el artículo Impresión: Men at work hablamos de un par de eventos que permitían interceptar la llamada a los informes de nexus para lanzar los nuestros (o realizar formateos diligentes de máquinas rebeldes). Se comentó que solo estaban disponibles para Delphi (o lenguajes que generen dlls en código nativo win32).

Por fin, el equipo de desarrollo ha ampliado la implementación de ambas llamadas para permitir su uso desde lenguajes que generen objetos COM (.NET [C#, VB.NET], VB6, etc…).

La signatura en .NET es la siguiente (ejemplo en C#):

bool EsListadoExterno(string IdListado); bool HacerListado(string IdListado, object Parametros);

El comportamiento y los parámetros, como se comentaron en dicho artículo. Solo recordar que en Parametros recibimos una estructura (similar al Registro), pero con la composición que allí se indicaba.
Esto será a partir de la versión 7.0.0I en adelante (8 inclusive, claro, o builds posteriores para los impacientes).

Y eso es todo, por el momento. V8, como si de un formula uno se tratara, está en continuo desarrollo y esto puede traer nuevas mejoras que nos ayuden en nuestros desarrollos a medida.

Pequeño saltamontes, deja de espantar moscas en esa obscura esquina y ven a mi habitación. Te voy a mostrar un truco muy interesante que te va a dar gustirrinín con una cuerda de nailon y un armario

P.D. Este artículo se escribió cuando era joven. El OWI ha tardado en revisarlo.

Advertisement

Acerca de El monstruo de Caerbannog

Temible guardián de la gruta que esconde un temible y obscuro secreto...

Publicado el julio 29, 2009 en Desarrolladores, Distribuidores y etiquetado en , , , . Guarda el enlace permanente. Dejar un comentario.

Deja un comentario

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s

Seguir

Get every new post delivered to your Inbox.

Únete a otros 97 seguidores