HOWTO développement Sashipa

 

 ResearchForm avancé : Ajouter des champs d'une table liée.

Vous avez un formulaire de recherche qui contient les champs de la table de recherche et vous souhaitez ajouter dans les critères de recherche, des champs de tables liées.

 

L'astuce consiste à ajouter les tables concernées dans la requête SQL de la liste résultat.

Voici un exemple de recherche dans la table ContactAdresse de la base DemoContact. On ajoute deux champs de la table Contact dans les recherches d'adresses.

  <researchForm>
    <title>Recherche avancées des adresses de contacts</title>
    <location x='10' y='10' />
    <fieldContainer>
      <textField>
        <schemaColumnRef schemaColumn='adr_ContactAdresseLabel' />
      </textField>
      <textField>
        <schemaColumnRef schemaColumn='adr_AdresseCP' />
      </textField>
      <textField>
        <label>Nom du contact</label>
        <schemaColumnRef schemaColumn='cta_ContactNom' />
      </textField>
      <textField>
        <label>Prénom du contact</label>
        <schemaColumnRef schemaColumn='cta_ContactPrenom' />
      </textField>
    </fieldContainer>
    <listFormRef listForm='FLContactAdresse'>
      <redefineBounds x='0' y='85' w='200' h='411' />
      <selectQueryBuilder>
        <fromStatementBuilder>
          <fkJoin join='inner'><instanceFk schemaFk='fk_adr_Contact'/></fkJoin>
        </fromStatementBuilder>
      </selectQueryBuilder>
    </listFormRef>
    <researchFormCriteriaBuilder mode='and' defaultSubEmptyAction='ignore' 
                                 emptyAction='stuck' />
  </researchForm>

Remarque : pour une meilleure lisibilité, un label spécifique - reprécisant la table concernée - est défini pour les champs des tables liés.

NB : Il est possible qu'à l'exécution vous ayez une erreur comme quoi la jointure a déjà été faite. Ceci signifie que la liste incluse contient déjà la jointure que vous souhaitez définir ici. Dans ce cas, vous n'avez qu'à supprimer l'élément selectQueryBuilder de votre listFormRef.

 

© Copyright 2003 Sashipa-Melba Team. Ce document de la technologie Sashipa-Melba est sous licence GNU FDL Vous pouvez le copier et modifier librement les copies tant que cette mention apparaît clairement.