Voeg het voorbeeldscript toe aan uw app en voer het uit. Voeg vervolgens ten minste de velden die in de resultatenkolom staan aan een werkblad in uw app 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:
retourneert de derde waarde in de tabel: . Peek('EmployeeCode',2) 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:
|
EmployeeCode 101 102 103 104 105 106
|
EmpCode - - 101 102 103 104
|
|
|
FirstEmployee:
Load EmployeeCode, Peek('EmployeeCode',-2,'EmployeeDates') As EmpCode
Resident EmployeeDates;
|
Door het argument op te geven als , retourneert de functie de op één na laatste waarde van in de tabel : .table_no'EmployeeDates'EmployeeCodeEmployeeDates 105. |
De functie Peek() kan worden gebruikt om te verwijzen naar gegevens die nog niet zijn geladen.
Voeg het voorbeeldscript toe aan uw app en voer het uit. Voeg vervolgens ten minste de velden die in de resultatenkolom staan aan een werkblad in uw app 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 app met ID, List en Value als dimensies. |
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.
Opmerking: Let 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.
|
|