Ga naar hoofdinhoud Ga naar aanvullende inhoud

Peek - scriptfunctie

Peek() retourneert de waarde van een veld in een tabel voor een rij die al is geladen of die in het interne geheugen beschikbaar is. Het rijnummmer kan worden opgegeven, net als de tabel.

Syntaxis:  

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

Retourgegevenstypen: dual

Argumenten:  

Argumenten voor peek
Argument Beschrijving
field_name Naam van het veld waarvoor de retourwaarde is vereist.De invoerwaarde moet worden aangegeven als een tekenreeks (bijvoorbeeld literal tussen aanhalingstekens).
row_no

De rij in de tabel die het vereiste veld aangeeft. Kan een uitdrukking zijn, maar moet worden herleid tot een geheel getal. 0 geeft de eerste record aan, 1 de tweede, enzovoort. Negatieve nummers geven de volgorde vanaf het eind van de tabel aan. -1 geeft de laatst gelezen record aan.

Als geen row wordt aangegeven, wordt -1 verondersteld.

table_name Een label voor een tabel zonder dubbele punt aan het eind. Als geen table_name wordt vermeld, wordt de huidige tabel verondersteld. Als de tabelnaam buiten de LOAD-opdracht wordt gebruikt of als de tabelnaam verwijst naar een andere tabel, moet de table_name worden opgenomen.

Beperkingen:  

In de eerste record van een interne tabel retourneert de functie NULL.

Voorbeeld 1:  

Voeg het voorbeeldscript toe aan uw document en voer dit uit. Voeg vervolgens ten minste de velden die in de resultatenkolom staan aan een werkblad in uw document toe om het resultaat te bekijken.

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, omdat Peek(EmployeeCode,0) de eerste waarde retourneert van EmployeeCode in de tabel EmployeeDates.

Als de waarde van het argument row_no wordt vervangen, worden de waarden van de andere rijen in de tabel als volgt geretourneerd:

Peek('EmployeeCode',2) retourneert de derde waarde in de tabel: 103.

Houd er echter rekening mee dat als de tabel niet wordt opgegeven als het derde argument table_no, de functie verwijst naar de huidige (in dit geval interne) tabel. Het resultaat van Peek(EmployeeCode,-2) is meerdere waarden:

Resultaten voorbeeld 1
EmployeeCode EmpCode
101 -
102 -
103 101
104 102
105 103
106 104

Voorbeeld 2:  

FirstEmployee:

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

Resident EmployeeDates;

 

Door het argument table_no op te geven als 'EmployeeDates', retourneert de functie de op één na laatste waarde van EmployeeCode in de tabel EmployeeDates: 105.

Voorbeeld 3:  

De functie Peek() kan worden gebruikt voor referentiegegevens die nog niet zijn geladen.

Voeg het voorbeeldscript toe aan uw document en voer dit uit. Voeg vervolgens ten minste de velden die in de resultatenkolom staan aan een werkblad in uw document toe om het resultaat te bekijken.

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;

 

Maak een tabel in een werkblad in uw document met ID, List en de Waarde als dimensies.

Resultaten voorbeeld 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

De opdracht IF() is samengesteld op basis van de tijdelijke tabel T1.
Peek('ID') verwijst naar het veld ID in de vorige rij in de huidige tabel T2.
Peek('List') verwijst naar het veld List in de vorige rij in de tabel T2 die momenteel wordt samengesteld terwijl de uitdrukking wordt geëvalueerd.

De opdracht wordt als volgt geëvalueerd:
Als de huidige waarde van ID gelijk is aan de vorige waarde van ID, wordt de waarde van Peek('List') aaneengeschakeld met de huidige waarde van Value weggeschreven. Anders wordt alleen de huidige waarde van Value weggeschreven.

Als Peek('List') al een aaneengeschakeld resultaat bevat, wordt het nieuwe resultaat van Peek('List)' hier eveneens mee aaneengeschakeld.

InformatieLet op de Order by-clausule. Deze geeft aan hoe de tabel wordt geordend (op ID in oplopende volgorde). Zonder deze clausule, wordt bij de functie Peek() gebruikgemaakt van de willekeurige volgorde van de interne tabel, hetgeen tot onvoorspelbare resultaten kan leiden.

Was deze pagina nuttig?

Als u problemen ervaart op deze pagina of de inhoud onjuist is – een typfout, een ontbrekende stap of een technische fout – laat het ons weten zodat we dit kunnen verbeteren!

Neem deel aan het Analytics Modernization Program

Remove banner from view

Moderniseer zonder uw waardevolle QlikView-apps op het spel te zetten met het Analytics Modernization Program. Klik hier voor meer informatie of om contact op te nemen: ampquestions@qlik.com