Accéder au contenu principal Passer au contenu complémentaire

Peek - fonction de script

Peek() recherche la valeur d'un champ dans une table pour une ligne qui a déjà été chargée ou qui existe dans la mémoire interne. Il est possible de spécifier le numéro de ligne et la table.

 

Peek(field_name[, row_no[, table_name ] ] )

double

 

Arguments Peek
Argument Description
field_name Nom du champ pour lequel la valeur de renvoi est requise.La valeur saisie doit être une chaîne (par exemple, un littéral placé entre guillemets).
row_no

Ligne de la table indiquant le champ requis. Il peut s'agir d'une expression, mais le résultat doit correspondre à un entier. 0 renvoie au premier enregistrement, 1 au deuxième et ainsi de suite. Les nombres négatifs indiquent l'ordre des enregistrements à partir de la fin de la table. -1 renvoie ainsi au dernier enregistrement lu.

Si aucun argument row n'est spécifié, -1 est utilisé.

table_name Étiquette de table sans les deux-points finaux. Si aucun argument table_name n'est spécifié, la table active est utilisée. En cas d'utilisation à l'extérieur de l'instruction LOAD ou pour faire référence à une autre table, l'argument table_name doit être inclus.

 

Dans le premier enregistrement d'une table interne, la fonction renvoie NULL.

 

Ajoutez l'exemple de script à votre document et exécutez-le. Ensuite, ajoutez au moins les champs répertoriés dans la colonne des résultats à une feuille de votre document afin de visualiser le résultat.

EmployeeDates:

Load * Inline [

EmployeeCode|StartDate|EndDate

101|02/11/2010|23/06/2012

102|01/11/2011|30/11/2013

103|02/01/2012|

104|02/01/2012|31/03/2012

105|01/04/2012|31/01/2013

106|02/11/2013|

] (delimiter is '|');

 

FirstEmployee:

Load EmployeeCode, Peek('EmployeeCode',0) As EmpCode

Resident EmployeeDates;

 

EmpCode = 101, car Peek(EmployeeCode,0) renvoie la première valeur de EmployeeCode de la table EmployeeDates.

La substitution de la valeur de l'argument row_no renvoie les valeurs des autres lignes de la table, comme suit :

Peek('EmployeeCode',2) renvoie la troisième valeur de la table : 103.

Notez cependant que si vous ne spécifiez pas la table comme troisième argument table_no, la fonction fait référence à la table active (dans ce cas, la table interne). Le résultat de Peek(EmployeeCode,-2) correspond à plusieurs valeurs :

Résultats de l'exemple 1
EmployeeCode EmpCode
101 -
102 -
103 101
104 102
105 103
106 104

 

FirstEmployee:

Load EmployeeCode, Peek('EmployeeCode',-2,'EmployeeDates') As EmpCode

Resident EmployeeDates;

 

En spécifiant l'argument table_no comme 'EmployeeDates', la fonction renvoie l'avant-dernière valeur de EmployeeCode figurant dans la table EmployeeDates : 105.

 

La fonction Peek() peut être utilisée pour référencer des données qui n'ont pas encore été chargées.

Ajoutez l'exemple de script à votre document et exécutez-le. Ensuite, ajoutez au moins les champs répertoriés dans la colonne des résultats à une feuille de votre document afin de visualiser le résultat.

T1:

LOAD * inline [

ID, Value

1|3

1|4

1|6

3|7

3|8

2|1

2|11

5|2

5|78

5|13

] (delimiter is '|');

T2:

LOAD

*,

IF(ID=Peek('ID'), Peek('List')&','&Value,Value) AS List

RESIDENT T1

ORDER BY ID ASC;

DROP TABLE T1;

 

Créez une table sur une feuille de votre document en définissant ID, List et Value comme dimensions.

Résultats de l'exemple 3
ID List Value
1 6 6
1 6,3 3
1 6,3,4 4
2 11 11
2 11,10 10
2 11,10,1 1
3 8 8
3 8,7 7
5 13 13
5 13,2 2
5 13,2,78 78

L'instruction IF() est créée à partir de la table temporaire T1.
Peek('ID') référence le champ ID de la ligne précédente dans la table active T2.
Peek('List') référence le champ List de la ligne précédente dans la table T2, en cours de création pendant l'évaluation de l'expression.

L'instruction est évaluée de la manière suivante :
Si la valeur active d'ID est identique à la valeur précédente d'ID, alors indiquez la valeur de Peek('List') concaténée avec la valeur active de Value. Sinon, indiquez uniquement la valeur active de Value.

Si Peek('List') contient déjà un résultat concaténé, le nouveau résultat de Peek('List)' sera concaténé avec lui.

Note InformationsNotez la clause Order by. Elle spécifie le mode de tri de la table (par ID et selon un ordre croissant). Sans cela, la fonction Peek() utilise n'importe quel ordre arbitraire inclus dans la table interne, ce qui peut aboutir à des résultats imprévisibles.

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – dites-nous comment nous améliorer !

Rejoignez le Programme de modernisation analytique

Remove banner from view

Modernisez votre système sans compromettre vos précieuses applications QlikView grâce au Programme de modernisation analytique. Cliquez ici pour plus d'informations ou contactez : ampquestions@qlik.com