Champ sélecteur multiple SQL

Présentation générale

L’objectif de ce sélecteur SQL multiple est de :

  • permettre la sélection de données externes, issues d’une base de données relationnelle, sans les monter en mémoire
  • permettre leur affichage sous forme de vue (liste, grille, liens).

Cette page regroupe l’ensemble des informations nécessaires à la personnalisation de ce sélecteur.

Utilisation

Pour mettre en place la personnalisation, il suffit d’ajouter le champ sélecteur SQL multiple dans un formulaire à l’aide Studio et créer une propriété de type Blob.

Il suffit ensuite de sélectionner une source de données (créée depuis l’administration ou d’utiliser le Gestionnaire de requêtes), de saisir :

  • la requête SQL (elle doit être assez simple, sinon passer par une vue SQL) ;
  • les paramètres en entrée ;
  • les paramètres en sortie ;
  • la colonne de filtre ;
  • la colonne de tri ;
  • et sélectionner les colonnes masquées.

Différents paramétrages générés peuvent être modifiés dans la zone Eléments XML fils de configuration.

Exemple d’Eléments XML fils de configuration généré

Pour un ordre SQL simple de ce type

select id, login, firstName, lastName, fullName from vdoc_user

La zone d’Eléments XML fils de configuration affichera

<selector>
  <links>
    <link default="true" label="LG_DEFAULT_VIEW" name="defaultView">
      <view exportable="true" filterable="true" globalFilterColumns="login" name="Personnes" paginable="true" provider="com.vdoc.kit.ui.providers.selectors.ExtendedQuerySelectorProvider" selectable="true" sortable="true">
        <column displaylabel="true" label="LG_PERSONNES_ID" name="id" zone="description" />
        <column displaylabel="true" label="LG_PERSONNES_LOGIN" name="login" zone="title" />
        <column displaylabel="true" label="LG_PERSONNES_FIRSTNAME" name="firstName" zone="description" />
        <column displaylabel="true" label="LG_PERSONNES_LASTNAME" name="lastName" zone="description" />
        <column displaylabel="true" label="LG_PERSONNES_FULLNAME" name="fullName" zone="description" />
      </view>
    </link>
  </links>
</selector>

Utilisation dans le contexte d’une vue

Pour afficher un champ de type Sélecteur SQL multiple dans une vue, il suffit d’ajouter une colonne virtuelle et d’utiliser la fonction @VERSRESSOURCES (@TORESOURCES).

@VERSRESSOURCES(iResource; "Personnes"; "fullName")

Utilisation dans un contexte de script

Exemple de mise à jour des champs d’un document à partir de données récupérées depuis la requête SQL.

function onFieldChanged( field )
{
  if ( field.getName().equals("Field_DBMultiple") ) // type Blob
  {
    var resources = Packages.com.vdoc.kit.utils.ConverterUtils.toResources(field.getValue());
	for( var it=resources.iterator(); it.hasNext(); )
	{
		var resource = it.next();
		iWorkflowInstance.setValue("Field1",resource.getValue("colonneX"));
		iWorkflowInstance.setValue("Field2",resource.getValue("colonneY"));
	}
  }
}

Gestionnaire de requêtes SQL

L’objectif du gestionnaire de requêtes SQL est de permettre la mise en place d’une bibliothèque de requêtes SQL pouvant être utilisées par les concepteurs d’applications.

Pour créer des requêtes SQL dans la bibliothèque, aller dans l’application Studio VDoc Kit Application en cliquant sur le bouton Gérer (à la racine du Studio).

Articles complémentaires