|
HOWTO Accueil
HOWTO développement Sashipa
ValueFormat : les formats des valeurs de colonnes.
Vous souhaitez préciser un format pour votre colonne, tel qu'un format
téléphonique, une année, un email, une url, etc..
Référencer un format prédéfini au niveau du language.
Les formats par défaut sont définis à la fin du fichier de language que vous
utilisez (un fichier <melbalab-home>/src_xml/resources/SashipaXXX.xml).
Il existe un format par défaut pour chaque type de colonne (text, integer,
float, money, boolean, date, time, dateTime). Lorsque vous ne définissez pas
de format pour une colonne, c'est le format par défaut du type de colonne
qui est utilisé.
Certains formats supplémentaires sont de plus définis d'office (dans
l'élément predefinedValueFormatSet de votre fichier de language).
Nous voyons dans cette section comment les référencer.
C'est une information que l'on spécifie dans la déclaration d'une
schemaColumn. Voici le code :
<schemaColumn name='cta_TelPortable' type='text'
maxCharacters='20' notNull='no'>
<physicalName>TelPortable</physicalName>
<singularName>Téléphone portable</singularName>
<shortName>Tél portable</shortName>
<guiConfigSchemaColumn letterCount='20' sort='asc' />
<valueFormatRef valueFormat='text_telephone' />
</schemaColumn≶
|
Remarques :
Un valueFormat est typé. Faites bien attention à ne pas utiliser un
format de type text (comme ici, text_telephone) avec une
colonne de type integer par exemple.
Pour avoir la liste des formats disponibles en standard, il vous
faut éditer votre fichier de language, puis regarder l'élément
predefinedValueFormatSet.
Attention : si vous modifiez votre fichier de language, prenez garde
à utiliser un éditeur qui lit l'UTF8, car c'est l'encodage utilisé pour
ces fichiers. De plus, il n'est vraiment pas recommendé de modifier ces
fichiers car ils sont susceptibles d'être modifiés à chaque nouvelle
version du MelbaLab. Créez-en une copie et travaillez sur la copie.
Créer son propre format.
Vous pouvez définir un format propre à votre colonne en l'incluant
simplement de cette manière là :
<schemaColumn name='cta_TelPortable' type='text'
maxCharacters='20' notNull='no'>
<physicalName>TelPortable</physicalName>
<singularName>Téléphone portable</singularName>
<shortName>Tél portable</shortName>
<guiConfigSchemaColumn letterCount='20' sort='asc' />
<textFormat name='text_telephone'>
<displayTextFormatTelephone actionWhenInvalid='displayWithoutFormat'>
<telephoneFormat>XX.XX.XXX.XXX</telephoneFormat>
<validLetters>,()+0123456789</validLetters>
<ignoredCharacter>.</ignoredCharacter>
<ignoredCharacter> </ignoredCharacter>
</displayTextFormatTelephone>
<exportTextFormatTelephone actionWhenInvalid='exportWithoutFormat'>
<telephoneFormat>XXXXXXXXXX</telephoneFormat>
<validLetters>,()+0123456789</validLetters>
<ignoredCharacter>.</ignoredCharacter>
<ignoredCharacter> </ignoredCharacter>
</exportTextFormatTelephone>
<saveTextFormatTelephone actionWhenInvalid='error'>
<validLetters>,()+0123456789</validLetters>
<ignoredCharacter>.</ignoredCharacter>
<ignoredCharacter> </ignoredCharacter>
</saveTextFormatTelephone>
</textFormat>
</schemaColumn≶
|
Remarques :
Ici j'ai mis en gras ce que j'ai modifié : le format d'affichage et
d'export du téléphone.
Pour connaître les possibilités des formats, prenez exemple sur
votre fichier de language (encore lui :)
Référencer un format prédéfini au niveau du moteur.
Vous pouvez enfin utiliser un des formats fourni par le moteur. Il en
existe deux : predefinedFormat_textUrl et
predefinedFormat_textEmail. Voici un exemple :
<schemaColumn name='cta_Email1' type='text'
maxCharacters='100' notNull='no'>
<physicalName>Email1</physicalName>
<singularName>Email 1</singularName>
<guiConfigSchemaColumn letterCount='20' sort='asc' />
<valueFormatRef valueFormat='predefinedFormat_textEmail' />
</schemaColumn>
|
Ces formats ont un effet sur les textField qui travaillent avec. Il devient
possible d'ouvrir le navigateur ou le messagerie à partir de l'application
générée ; en appuyant simultanément sur la touche CTRL et en cliquant sur
le champ. Ou bien par le menu contextuel du champ.
Mais du coup, il faut définir les commandes pour ouvrir les navigateurs
et clients emails en local. Ceci se fait en fin de fichier dans les
paramètres par défaut. On rajoute les deux paramètres suivants :
<defaultParameterSet>
...
<defaultParameter applyOn='externalCommandList' type='browser'>
<externalCommand>
<commandName>Mozilla (Linux)</commandName>
<commandBegin>mozilla </commandBegin>
<commandEnd />
</externalCommand>
<externalCommand>
<commandName>Mozilla (Windows)</commandName>
<commandBegin>"C:\Program Files\mozilla.org\Mozilla\mozilla" </commandBegin>
<commandEnd />
</externalCommand>
<externalCommand>
<commandName>Internet Explorer</commandName>
<commandBegin>"C:\Program Files\Internet Explorer\IEXPLORE.EXE" </commandBegin>
<commandEnd />
</externalCommand>
</defaultParameter>
<defaultParameter applyOn='externalCommandList' type='emailClient'>
<externalCommand>
<commandName>Mozilla Mail (Linux)</commandName>
<commandBegin>mozilla -mail mailto:</commandBegin>
<commandEnd />
</externalCommand>
<externalCommand>
<commandName>Mozilla Mail (Windows)</commandName>
<commandBegin>"C:\Program Files\mozilla.org\Mozilla\mozilla" -mail mailto:</commandBegin>
<commandEnd />
</externalCommand>
<externalCommand>
<commandName>Outlook Express</commandName>
<commandBegin>"C:\Program Files\Outlook Express\msimn.exe" /mailurl:mailto:</commandBegin>
<commandEnd />
</externalCommand>
</defaultParameter>
</defaultParameterSet>
|
Remarques :
On définit une liste de commandes pour les urls, et de même
pour les emails. Et non pas une unique commande pour chacun.
Lorsque l'utilisateur demandera l'action par défaut (CTRL+Clic dans le
textField), les commandes seront exécutées dans l'ordre, une à une,
jusqu'à ce que l'une d'elle ne renvoie pas d'erreur. Ici on tente d'ouvrir
Mozilla, puis Internet Explorer à défaut.
Le nom de la commande (commandName) sera utilisé dans le menu
contextuel.
Si vous oubliez de définir ces listes de commandes et que vous référencez
un des formats qui les utilisent, vous aurez une erreur à l'exécution.
Top
© 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.
|