Aprende a utilizar el subindexador y el localizador subindexado

Hay veces que en nuestras aplicaciones, necesitamos introducir un dato en un campo en función del valor que el usuario haya introducido en otro campo o simplemente seleccionar un registro de un determinado tipo.

Por ejemplo:

  • Seleccionar un artículo de una determinada familia
  • Un artículo de un determinado proveedor
  • Si usamos una única tabla de entidades, seleccionar en un campo aquellos que son de tipo proveedor, o cliente

Vamos a ver como conseguir nuestro objetivo mediante el uso del subindexador y del localizador subindexado.

Ejemplo 1: Seleccionar un registro de un determinado tipo

Vamos a tomar como ejemplo la plantilla vErp de Velneo.

En este caso vamos a seleccionar el formulario “ART_PRV_G” para dar de alta artículos de un determinado proveedor:

Art_Prv

Lo que nos interesa en este formulario es seleccionar en el campo “Proveedor”, aquellas entidades que sean de este tipo. En la plantilla se usa una única tabla de entidades para dar de alta proveedores, clientes, vendedores, contactos, etc. Además queremos seleccionar los registros por nombre.

Pasos a seguir

  • 1.- Dar de alta el índice correspondiente en la tabla: En la tabla de entidades tenemos una campos booleanos que nos indican el tipo de la entidad. Por lo tanto podemos seleccionar estos campos para condicionar los índices.

    Indice_1

  • 2. Subindexar el campo enlazado: Una vez creado el índice tenemos que subindexar el campo enlazado al maestro de proveedores. Para ello vamos al panel de subobjetos del control y pulsando en el botón +, creamos el “Subindexador”

    Subindexador_1
    En la propiedad “Índice”, seleccionamos el índice creado en el paso anterior. Con estos dos pasos ya hemos conseguido que en el control de edición sólo aparezcan aquellos registros que sean de tipo “Proveedor”

  • 3.- Creando los índices para los localizadores: En este caso mas que subindexar el localizador, lo que vamos a realizar son distintos localizadores para cada uno de los tipos de entidad. Tendremos un localizador para las entidades de tipo cliente, otro para las de tipo proveedor, otro para las entidades de tipo vendedor… etc.

    Lo primero que tendremos que crear son los índices correspondientes para cada uno de los tipos

    Indices_2

    Cada uno de los índices irá condicionado por el campo correspondiente: #ES_PRV; #ES_CLT; #ES_CMR … etc.

  • 4.- Crear el localizador subindexado: Por último sólo nos faltará crear los localizadores para cada uno de los tipos y añadirle los índices correspondientes

    Indices_Loc

    Este localizador ya lo podemos llamar desde una acción que insertaremos en un menú que lanzaremos desde la propiedad “Menú de botón” del propio campo.

Ejemplo 2: Seleccionar un registro en función del contenido de otro campo

En este segundo ejemplo lo que vamos a conseguir es que en función de una “Familia” que introduzca el usuario, seleccionar en un formulario los artículos que pertenezcan a esa familia.

lin psto

Pasos a seguir

  • 1.- Crear una variable global en memoria: En esta ocasión vamos a necesitar una variable global en memoria para “pasarle” al localizador el valor del campo “Familia” que haya seleccionado el usuario. En el proyecto de datos creamos una variable del mismo tipo del Id de la tabla (en este caso como la tabla “Familias” es arbolada… la variable será de tipo “Alfabético”. La llamamos por ejemplo $VAR_FAMILIA

    VAR_FAMILIA

  • 2.- Dar de alta el índice correspondiente en la tabla de artículos: Tendremos que crear un índice en la tabla de “Artículos” con dos partes: el campo “Familia” y el campo “Nombre”. Este índice será el que utilizaremos en el subindexador y en el localizador subindexado. Si queremos buscar también por la “Referencia” del artículo, tendremos que crear otro índice en la tabla con las partes “Familia” + “Referencia”.

    Ind_Fam_Nom

  • 3. Subindexar el campo enlazado (en este caso el “Nombre” del artículo): Una vez creado el índice tenemos que subindexar el campo enlazado al maestro de artículos. Para ello vamos al panel de subobjetos del control y pulsando en el botón +, creamos el “Subindexador”

    Sub_Fam

    Al crear el subindexador, tendremos que seleccionar el índice creado en el punto anterior y si os fijáis, en la propiedad “Resolución de partes del índice”, tendremos que resolver la parte correspondiente al campo “Familia”. ¿Cómo?…. Asignándole la variable global en memoria creada en el punto 1 ($VAR_FAMILIA).

  • 4.- Asignarle valor a la variable global en memoria: Tenemos que conseguir que cada vez que el usuario seleccione una familia, se asigne a la variable global en memoria $VAR_FAMILIA. Para ello vamos a crear un manejador de evento que se lanzará con la señal “Pierde foco” del campo “Familia” y que asignará el ID de la familia a la variable global.

    manejador_var_familia

  • 5.- Crear el localizador subindexado: Por último sólo nos faltará crear el localizador correspondiente de artículos (obviamente subindexado por el valor de la familia.

    ind_loc_sub

    Tendremos que resolver también la parte del índice de la familia de la misma forma que hemos resuelto la parte del subindexador: asignándole el valor de la variable global en memoria $VAR_FAMILIA. Este localizador ya lo podemos llamar desde una acción que insertaremos en un menú que lanzaremos desde la propiedad “Menú de botón” del propio campo.

Esto es todo lo que necesitas para utilizar el subindexador y el localizador subindexado en tus aplicaciones velneo V7.

Si te ha servido de ayuda, déjame tu opinión mas abajo en los comentarios.

Además si te ha parecido interesante este artículo puedes suscribirte al blog y al canal de youtube y sobre todo… no dudes en compartirlo por las redes sociales.

Francisco José Vila Martín
ayudavelneo@ayudavelneo.com

Francisco José Vila es programador certificado y formador en la plataforma de desarrollo de aplicaciones empresariales Velneo V7. Es autor del blog Ayudavelneo desde donde ayuda a desarrolladores que se están iniciando en Velneo V7 a acortar su curva de aprendizaje para que obtengan beneficios y sean rentables desde el minuto 1. Ampliar información

No Comments

Post A Comment

Pin It on Pinterest