HOWTO développement Sashipa

 Champs affichant une valeur calculée.

Vous souhaitez ajouter un champ dans votre fiche (cardForm), mais ce champ aurait une valeur calculée à la volée, à titre indicatif. Il ne correspond pas à une colonne de la base de données.

Prenons une base exemple nous avons des Lots de Produits. Voici le script SQL des tables (ici avec la syntaxe pour HSQL) :

  CREATE TABLE Lot (
    Id_Lot integer not null primary key,
    Nom_Lot varchar(100) not null
  );
  CREATE TABLE Produit (
    Id_Personne integer not null primary key,
    Ref_Lot integer not null,
    Libelle_Produit varchar(100) not null,
    Prix integer,
    FOREIGN KEY (Ref_Lot) REFERENCES Lot (Id_Lot)
  );

Dans la fiche du lot, nous souhaitons avoir un champ qui indique la somme des prix des produits du lot. On remplace l'élément schemaColumnRef par une selectedValue qui contient en fait une selectQueryBuilder. Voici un exemple :

  <cardForm db='dbExemple'>
    <title>Fiche d'un Lot</title>
    <location x='10' y='10' />
    <cardSchemaTableRef schemaTable='tblLot' updateAfterInsert='no' 
                        multipleInsert='yes' queries='sudi' />
    <fieldContainer>
      <textField>
        <schemaColumnRef schemaColumn='tblLot_NomLot' />
      </textField>

      <!-- Champ calculé -->
      <textField readOnly='yes' save='no'>
        <label>Prix cumulés</label>
        <selectedValue>
          <selectQueryBuilder>
            <castFilterSet stuckWhenNoFilter='yes' />
            <selectStatementBuilder>
              <instanceColumnList>
                <agregatInstanceColumn type='sum' schemaColumn='tblProduit_Prix' />
              </instanceColumnList>
            </selectStatementBuilder>
            <fromStatementBuilder>
              <mainInstanceTable schemaTable='tblProduit' />
            </fromStatementBuilder>
          </selectQueryBuilder>
        </selectedValue>
      </textField>
      
    </fieldContainer>
  </cardForm>

Remarques :

© 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.