La famille XData

Aujourd’hui, j’aimerais présenter la nouvelle famille de fonction XData. Quoique ces fonctions seront perfectionnées et utilisées plus tard dans certain outils de haut niveau, elles peuvent être mises à profit immédiatement par les utilisateurs avancés pour retrouver n’importe qu’elle données de la base de données.

XData, XDataLookup et XDataCondition ont été introduite dans la version 2.9.9 de XLGL. XData est utilisée pour retrouver des données d’une table de la base de données. Par exemple:

=XData("tCustomr", "sName", 1)

retournera le nom du premier client de la base de données. Le nom du champ peut être remplacé par un expression, comme:

=XData("tCustomr", "SUBSTRING(sName, 1, 5)+'.'", 1)

qui retournera les 5 premiers caractères du nom du client suivit d’un point (.). Les fonctions d’agrégat peuvent aussi être utilisées. Par exemple:

=XData("tCustomr", "COUNT(sName)")

retournera le number de client dans la table.

Vous avez sans doute remarqué que le troisième argument de la fonction correspond à l’index de l’enregistrement de la table que nous voulons accéder. La plupart du temps, nous ne connaissons pas l’index de la ligne désirée. C’est ici que XDataLookup et XDataCondition entrent en jeu.

=XDataLookup("tCustomr", "sName", "Ashburton Reinforcing")

retournera l’index du client nommé Ashburton Reinforcing, qui peut ensuite être utilise dans la function XData pour retrouver d’autres informations sur ce client:

=XData("tCustomr", "sCity", XDataLookup("tCustomr", "sName", "Ashburton Reinforcing"))

Évidemment, vous pouvez placer chaque fonction dans sa propre cellule et référer aux cellules désirées.

Parfois XDataLookup retournera plus d’un index. Par exemple:

=XDataLookup("tCustomr", "sCity", "Richmond")

retournera les index de tous les clients qui demeurent à Richmond. Il est possible d’en obtenir le nombre en utilisant:

=XData("tCustomr", "COUNT(sName)", XDataLookup("tCustomr", "sCity", "Richmond"))

XDataCondition retourne les index de la même manière mais en utilisant une condition sur mesure. Par exemple:

=XDataCondition("tCustomr", "sName LIKE 'A*'")

retournera les index de tous les clients don’t le nom commence par A.

Dans un billet futur, nous regarderons comment utiliser les fonctions de la famille XData pour créer vos propres fonctions.

Répondre