HOWTO développement Sashipa

 

 Définir une valeur par défaut en Sashipa.

Vous souhaitez définir une valeur qui s'affichera par défaut dans votre fiche en mode ajout. Et / ou vous souhaitez qu'une valeur soit ré-enregistrée à chaque modification de la fiche.

 

FkFields

Pour les fkField, c'est avec une liste d'internationalValues :

  <comboBoxFkField>
    <schemaFkRef .... />
    <defaultInternationalValueList>
      <internationalValue>1</internationalValue>
    </defaultInternationalValueList>
  </comboBoxFkField>

On précise autant d'internationalValue que de colonne dans la clef étrangère. Ici on a une clef étrangère composée d'une colonne (comme c'est le cas le plus souvent). Et la valeur par défaut est la ligne qui correspond à la valeur de clef primaire 1. Remarque: la valeur par défaut est un identifiant, et non un libellé.

 

Fields simples

Pour les fields simples, c'est avec une seule internationalValue :

  <textField>
    <schemaColumnRef .... />
    <defaultInternationalValue>Ma valeur par défaut</defaultInternationalValue>
  </textField>

Ici avec une colonne de type texte. Par contre, notez que pour un nombre réel il faut utiliser un point à la place d'une virgule, et pas d'espaces. Et pour une date, le format est AAAA-MM-JJ. Ou bien AAAA-MM-JJ HH-MIN-SS.

 

Fields simples : valeurs prédéfinies en mode ajout.

Les valeurs prédéfinies disponibles sont : currentDateTime, currentDate.

Pour qu'une valeur prédéfinie soit enregistrée une fois, lors de l'ajout, voici le code :

    <cardForm db='dbContact'>
      <!-- ... -->

      <fieldContainer>
        <textField readOnly='no' save='yes'>
          <schemaColumnRef schemaColumn='cta_DateAjout' />
          <defaultPredefinedValue data='currentDateTime' />
        </textField>
      </fieldContainer>
    </cardForm>

Remarques :

  • Vous pouvez spécifier readOnly='yes' si vous souhaitez que l'utilisateur ne puisse pas modifier la valeur.
  • La valeur par défaut sera sauvegardée lors de l'ajout telle qu'elle est affichée (et non pas recalculée lors de l'enregistrement).
  • La valeur affichée est celle récupérée dans le SGBD. (Ici c'est la date système du SGBD)

 

Fields simples : valeurs prédéfinies ré-enregistrées à chaque modification.

Les valeurs prédéfinies disponibles sont : currentDateTime, currentDate.

Pour qu'une valeur soit ré-enregistrée à chaque modification, voici le code :

    <cardForm db='dbContact'>
      <!-- ... -->

      <fieldContainer>
        <textField readOnly='yes' save='no'>
          <schemaColumnRef schemaColumn='cta_DateDerniereModif' />
          <defaultPredefinedValue data='currentDateTime' />
        </textField>
      </fieldContainer>

      <hiddenSchemaValueSet>
        <hiddenSchemaValue schemaColumn='cta_DateDerniereModif' data='currentDateTime' />
      </hiddenSchemaValueSet>
    </cardForm>

Remarques :

  • Il vaut mieux que le champ soit en lecture seule, puisque ici on n'enregistre pas sa valeur (save='no'). Donc rien ne sert de la modifier.
  • La valeur sauvegardée est celle de l'élément <hiddenSchemaValue>. Elle est sauvegardée lors de l'ajout, puis re-sauvegardée à chaque modification de la fiche.
  • La valeur enregistrée est celle récupérée dans le SGBD. (Ici c'est la date système du SGBD)
  • La valeur enregistrée n'est pas celle affichée ! La valeur par défaut affichée lors de l'ouverture en mode ajout est donc uniquement à titre informatif. Et peut différer un peu de celle effectivement enregistrée.

 

Fields simples : valeurs calculées par défaut lors de l'ajout.

Il est possible de définir une requête d'agrégat, qui sera exécutée à chaque affichage de la fiche en mode ajout. La valeur renvoyée sera affichée dans le champ lors de l'ajout. Cette requête se définit dans un élément defaultSelectedValue :

  <textField>
    <schemaColumnRef .... />
    <defaultSelectedValue>
      <selectQueryBuilder> ... </selectQueryBuilder>
    </defaultSelectedValue>
  </textField>

Pour voir un exemple de requête selectQueryBuilder, reportez-vous à la FAQ sur l'élément selectValue.

 

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