02 janvier 2007

Pour quelques lignes de code en moins...


Je profite de ce premier billet de l'année 2007 pour souhaiter une excellente année à ceux qui me lisent, régulièrement ou non !


Il n'est pas rare d'empiler des SI ... SINON ... FIN pour des affectations de variables, de paramètres... Il en résulte un "code à rallonge", qui même avec l'enroulé de l'éditeur code reste long à manipuler. Typiquement, l'affectation des paramètres d'une requête, lorsque certains ne doivent pas être pris en compte, exemple :

SI ChampNom <> "" ALORS
Req.ParamNom = ChampNom
SINON
Req.ParamNom = NULL
FIN

SI ChampDNaissance <> "" ALORS
Req.ParamDNais = ChampDNais
SINON
Req.ParamDNais = NULL
FIN

..

HExecuteRequete(Req)
FichierVersTableMémoire(Req, TableSélection)

L'alternative se nomme "instruction conditionnelle monoligne" (cf entrée d'aide "Condition, Instruction ?"). Beaucoup de vocabulaire pour un principe tout simple : affecter une variable par une valeur, ou par une autre, en fonction d'une condition. L'écriture ci-dessus est ainsi simplifiée à l'extrême tout en restant lisible, une fois l'habitude acquise :
Req.ParamNom = ChampNom <> "" ? ChampNom SINON NULL
Req.ParamDNais = ChampDNais <> "" ? ChampDNais SINON NULL
..
HExecuteRequete(Req)
FichierVersTableMémoire(Req, TableSélection)

5 commentaires:

Anonyme a dit…

Ah merci pour cette fonction :)
C'est comme le IIF en Vb.
Pratique et concis


Sinon

Bonne Année 2007, et meilleurs voeux

Anonyme a dit…

Très sympa comme syntaxe :)

Anonyme a dit…

Vraiment très très très pratique cette syntaxe.
Merci encore.
Je ne peux plus m'en passer :)

Jean Philippe a dit…

C'est quand même beau que le SAVOIR

Anonyme a dit…

Great work.