Today

Today représente la date du jour, et peut être utilisé comme une méthode rapide d'indiquer que vous aimeriez chercher toutes les notices qui ont été faites aujourd'hui. Ceci est tout particulièrement utile dans les recherches enregistrées qui ont besoin d'un rafraîchissement régulier, puisque ce sera toujours la date d'aujourd'hui qui sera prise en compte plutôt que la date tapée dans la requête à l'origine. Par exemple,

input.date = today

récupérera toutes les notices qui ont été créées dans la journée. Il est également possible de récupérer les notices qui remontent à un certain intervalle de temps par rapport à aujourd'hui, en soustrayant ou additionnant le nombre de jours voulu. Par exemple :

input.date = today-30

récupérera toutes les notices créées depuis trente jours.

Pour récupérer les notices saisies dans le mois qui vient de s'écouler, tapez :

input.date from today-30 and input.date to today

Notez que bien qu'il puisse être tentant de raccourcir cette formule de recherche en input.date from today-30 (ce qu'Axiell Collections traduira par : input.date >= today-30), cette formule de recherche ne fournit le même résultat que si le champ en question ne peut pas contenir de futures dates. C'est probablement le cas dans l'exemple en cours, mais pas pour des dates de livraison, par exemple. En conséquence, il est plus prudent d'utiliser la formule de recherche combinée, puisqu'elle rend la recherche plus précise. Cela facilite aussi la construction de formules de recherche autres, comme :

venue.date.start from today-15 and venue.date.start to today+21

De toute façon, vous ne pouvez chercher dans un champ avec today que si le champ est un champ date (date au format ISO ou au format européen).

All

All récupérera tout simplement toutes les notices de la source de données interrogée. C'est la seule exception à la règle que toutes les formules de recherche doivent consister en au moins un champ, un opérateur et une valeur.

%0

C'est l'étiquette de champ (tag) pour le numéro de référence primaire d'une notice, le numéro de notice; à la place, vous pouvez aussi utiliser priref. Par exemple, pour récupérer les notices à partir de 50 et jusqu'à 100, tapez :

%0 >= 50 AND %0 <= 100

Les numéros de notice des notices peuvent être rendus visibles dans l'affichage en liste du résultat de recherche en ajoutant le champ priref à la liste des colonnes de champ à afficher. Utilisez les Paramétrages de la liste résultat pour gérer les colonnes de champ.

ACSettingsIcon

Elargir

L'opérateur/option Elargir pour la recherche standard et la recherche avancée, peut être utilisé afin de récupérer les notices pour lesquelles la notice elle-même ou une notice parent (ou grand-parent, etc.) comporte la clé de recherche tout en excluant les notices pour lesquelles la notice elle-même ou une notice parent (ou grand-parent, etc.) comporte une valeur différente dans le champ sur lequel porte la recherche. En d'autres termes : si un champ dans une notice parent de niveau supérieur contient une valeur x et une valeur y à un niveau inférieur de la hiérarchie, en cas de recherche élargie portant sur x, ne seront alors pas pris en compte dans le résultat de recherche les notices contenant la valeur y ainsi que les notices situées à un niveau inférieur de la hiérarchie.

La syntaxe d'une recherche élargie est la suivante :

expand(<formule de recherche>)

La recherche étendue peut se combiner avec une recherche normale (et avec une autre recherche étendue, éventuellement).

L'utilisation de l'option Elargir pour la recherche, à la fois pour la recherche Avancée et pour la recherche Standard, est particulièrement utile pour la récupération de notices enfant dont le contenu comporte des champs héritables (bien que l'héritage des champs ne soit pas indispensable au fonctionnement de l'option Elargir) puisque le contenu hérité des notices enfant est seulement mis en mémoire dans l'une des notices parent de la hiérarchie dans laquelle elles se trouvent (notices d'où le contenu en question provient) : une recherche portant sur des contenus hérités ne peut s'effectuer autrement. Par exemple : supposons que nous ayons une base de données cinématographique permettant d'enregistrer les informations concernant des films sur quatre niveaux de description possibles : oeuvre, variante, manifestation et item. L'une des notices d'oeuvre a pour titre Men from Mars. Pour éviter des contenus en doublon dans les notices enfant, le champ titre a été conçu comme un champ hérité, de telles sorte que les variantes, leurs manifestations et leurs items affichent le même titre au moment où on ouvre les notices, alors qu'en fait le titre n'est pas mis en mémoire dans chacune des notices enfant concernées. Toutefois, en ce qui concerne l'une des variantes, le titre a été transformé en Creatures from Mars. Supposons également que cette hiérarchie est constituée de dix notices, liées hiérarchiquement entre elles comme suit :

ACexpandhierarchydiagram2

(inh. signifie que les données sont héritées et ne sont pas mises en mémoire dans la notice elle-même.)

Pour trouver les notices suivantes, que ce soit par le moyen de la recherche Avancée ou par le moyen de la recherche Standard (dans ce dernier cas, nous supposons que nous avons deux points d'accès dédiés, l'un pour le niveau et l'un pour le titre, et que l'option Et a été cochée) :

1, 3, 7, 8 et 9 à 10 soit exécutent la formule de recherche avancée : expand(title = 'Men from Mars'), soit effectuent une recherche Standard élargie (en cochant l'option Elargir) sur le titre (Egal) Men from Mars (parce que seules ces notices ont une notice parent ou grand-parent qui comporte ce titre, ou bien le contiennent elles-mêmes, et parce qu'elles ne comportent pas de titre différent);
2, 4, 5, 6 et 10 soit exécutent la formule de recherche avancée : expand(title = 'Creatures from Mars') soit effectuent une recherche Standard élargie sur le titre Creatures from Mars (parce qu'elles ont toutes une notice parent ou grand-parent qui comporte ce titre, ou bien le contiennent elles-mêmes);
10 soit exécute la formule de recherche avancée : description_level = item and expand(title = 'Creatures from Mars') soit effectue une recherche Standard élargie sur le niveau item Et sur le titre Creatures from Mars (parce que c'est le seul item ayant une notice grand-parent qui comporte ce titre);
8, et 9 soit exécutent la formule de recherche avancée : description_level = item and expand(title = 'Men from Mars') soit effectue une recherche Standard élargie sur le niveau item Et sur le titre Men from Mars (parce que seules ces notices ont une notice grand-parent comportant ce titre);
7 soit exécute la formule de recherche avancée : description_level = manifestation and expand(title = 'Men from Mars') soit exécute une Recherche Standard élargie portant sur le niveau manifestation Et le titre Men from Mars (parce que c'est la seule manifestation qui a une notice grand-parent comportant ce titre).

Notez que les résultats de recherche auraient été les mêmes si le champ titre n'avait pas été un champ hérité et s'il avait été laissé vide dans les notices 3, 4, 5, 6, 7, 8, 9 et 10, puisque la recherche n'aurait pris en compte que les champs remplis, cette fonctionnalité s'exerçant dans un contexte où un champ comportant des données héritées est équivalent à un champ vide. Seules les notices 1 et 2 comportent un titre véritablement enregistré.

Notes complémentaires :

L'utilisation de Ou (avec Elargir) pour combiner entre elles des requêtes singulières n'est la plupart du temps pas judicieux parce que cela occasionne un trop grand nombre de notices en résultat. Par exemple, une recherche élargie sur le niveau manifestation OU le titre Creatures from Mars (formule de recherche avancée : expand(description_level = manifestation) or expand(title = 'Creatures from Mars')) récupérerait les notices 2, 4, 5, 6, 7, 10 ainsi que toutes les notices de niveau manifestation que contient la base de données...
L'option Elargir dans la recherche standard s'applique à toutes les clés de recherche avant que l'opérateur booléen Et soit mis en application. Ainsi, pour certains exemples ci-dessus, l'élargissement de la recherche aurait pu porter sur le niveau item ou sur le niveau manifestation, mais cela n'aurait eu aucun impact négatif sur le résultat de recherche, parce qu'il s'agit d'un champ jamais dépourvu de contenu et systématiquement rempli avec une valeur donnée.
L'opérateur/option Elargir ne nécessite pas un index sur l'étiquette des champs liés pour que l'élargissement de la recherche puisse s'effectuer, c'est pourquoi un grand nombre d'applications s'en passent. Toutefois, si vous exécutez une formule de recherche avec Elargir et qu'un message d'erreur évoquant un index lacunaire vous arrête dans votre élan, c'est sans doute de cela qu'il s'agit. Si vous pouvez utiliser Axiell Designer, vous pouvez facilement résoudre le problème en créant l'index qui fait défaut. Le message d'erreur vous met sur la piste en indiquant l'étiquette du champ dépourvu d'index.