On a vu la définition des invites dans le rapport, mais on peut aussi les créer directement dans l’univers, pour pouvoir les utiliser dans les requêtes et pour assurer la cohérence des noms des invites du parc des documents d’entreprise.
La syntaxe est donnée comme d’habitude dans l’aide, mais on peut récupérer facilement la formule définitive en visualisant le sql généré dans l’éditeur de requête. Bizarrement les 2 clients donnent des résultats différents, deski génère un
@variable('Entrez une date :')
Alors que webi lui écrit un
@prompt('Entrez une date :','D',,Mono,Free,Persistent,,User:0)
Les 2 fonctions sont acceptées, mais il vaut mieux utiliser la fonction @prompt qui est plus restrictive et apporte plus d’options que @variable.
La syntaxe de @prompt est la suivante :
@Prompt('message','type',[{'value1'[,'value2',...]},class_nameobject_name'],mono/multi,free/constrained [,Persistent/Not_Persistent,[{'value1'[,'value2',...]} [, [User:#] [, Optional ]] ] )
Les paramètres sont :
- message / libellé de l’invite
- type de donnée : A=Alpha, D=Date, N=Numérique
- valeurs affichées : on peut prendre celles d’un objet de l’univers ( LOV ) en donnant le nom complet de l’objet ou les lister en les enclosant entre accolades
- mono/multi : mono si on ne peut prendre qu’une seule valeur, multi si on peut en prendre plusieurs ( pour l’opérateur « dans liste » )
- free/constrained : free si l’utilisateur peut saisir ce qu’il veut, constrained s’il ne peut choisir que dans les valeurs affichées.
Les paramètres suivants ne sont pas documentés dans l’aide BO :
- Persistent/Not_Persistent : Persistent garde la dernière valeur sélectionnée lors de l’affichage de l’invite, Not_Persistent non. Par défaut c’est Not_Persistent
- Valeur par défaut : si ce paramètre est laissé à vide aucune valeur par défaut n’est utilisée, si on a plusieurs valeurs il faut les encadrer par des { } et séparer par des ,
Attention, il faut que la valeur existe dans les valeurs affichées ( 3ème paramètre ) - User:#: Ordre de l’invite dans l’affichage, pour éviter de préfixer les invites par 1), 2), 3) …
- Optional : indique si l’invite est facultative ( à partir de XI r3 )
Exemples :
@Prompt(‘Entrez le code pays’,'A’,'Zones\Code Pays’,mono,free)
Invite de type Caractère ne permettant de sélectionner qu’une valeur, saisie possible
@Prompt(‘Entrez le code pays’,'A’,'Zones\Code Pays’,multi,constrained,Not_Persistent,{‘US’,'FR’},User:1)
Invite de type Caractère ne permettant de sélectionner plusieurs valeurs, saisie impossible., ne sélectionne pas par défaut les dernières valeurs choisies mais prend US et FR, affichage en 1ère position.