Accéder au contenu principal
Peek - fonction de script

SUR CETTE PAGE

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.

Syntax:  

Peek(

field_name

[, row_no[, table_name ] ])

Return data type: double

Arguments:  

Arguments
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.

Limitations:  

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

Example:  

Ajoutez l'exemple de script à votre application et exécutez-le. Ensuite, ajoutez au moins les champs répertoriés dans la colonne des résultats à une feuille de votre application 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 :

Table des résultats
Code d'employé EmpCode

101

-
102 -
103 101
104 102
105 103
106 104

Example:  

FirstEmployee:

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

Resident EmployeeDates;

 

By specifying the argument table_no as 'EmployeeDates', the function returns the second-to-last value of EmployeeCode in the table EmployeeDates: 105.

Example:  

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 application et exécutez-le. Ensuite, ajoutez au moins les champs répertoriés dans la colonne des résultats à une feuille de votre application 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;

 

Create a table in a sheet in your app with ID, List, and Value as the dimensions.

Table des résultats
ID Liste Valeur
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.

Example:  

LOAD A, B, numsum( B, Peek( 'Bsum' ) ) as Bsum...;

Crée une accumulation de B dans Bsum.