# Peek - skriptfunktion

Peek() hittar värdet av ett fält i en tabell för en rad som redan har laddats eller som finns i internminnet. Radnumret kan anges, liksom tabellen.

Syntax:

Peek(field\_name[, row\_no[, table\_name ] ] )

Returnerad datatyp: dual

Argument:

Peek-argument

| Argument | Beskrivning |
| --- | --- |
| field\_name | Namnet på det fält för vilket returvärdet krävs.Inmatat värde måste anges som en sträng (t ex en litteral inom citationstecken). |
| row\_no | Den rad i tabellen som anger det fält som krävs. Kan vara ett uttryck, men måste lösas till ett heltal. 0 anger första posten, 1 andra posten o.s.v. Negativa tal markerar ordningen från slutet av tabellen.<br><br>Om ingen row angivits, antas -1. |
| table\_name | En tabelletikett utan avslutande kolon. Om inget table\_name har angivits antas den aktuella tabellen. Om det används utanför LOAD-satsen, eller refererar till en annan tabell, måste tabellnamnet table\_name anges. |

Begränsningar:

För den första posten i en intern tabell kommer funktionen att returnera NULL.

Exempel 1:

Lägg till exempelskriptet i dokumentet och kör det. Lägg sedan till åtminstone de fält som listas i resultatkolumnen på ett ark i dokumentet för att se resultatet.

`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, eftersom`  Peek(EmployeeCode,0) ` returnerar det första värdet för EmployeeCode i tabellen EmployeeDates.

Att ersätta värdet på argumentet row\_no returnerar värdena för andra rader i tabellen, enligt följande:

`  Peek('EmployeeCode',2) ` returnerar det tredje värdet i tabellen: 103.

Observera dock att utan att ange tabellen som det tredje argumentet table\_no, refererar funktionen till den aktuella tabellen (i detta fall, internt). Resultatet för `  Peek(EmployeeCode,-2) ` är flera värden:

Resultat för exempel 1

| EmployeeCode | EmpCode |
| --- | --- |
| 101 | - |
| 102 | - |
| 103 | 101 |
| 104 | 102 |
| 105 | 103 |
| 106 | 104 |

Exempel 2:

`FirstEmployee:` `Load EmployeeCode, Peek('EmployeeCode',-2,'EmployeeDates') As EmpCode` `Resident EmployeeDates;` ` `

Genom att ange argumentet table\_no som `'EmployeeDates'`, returnerar funktionen det näst sista värdet för EmployeeCode i tabellen EmployeeDates: 105.

Exempel 3:

Funktionen Peek() kan användas för att referera till data som inte är laddade ännu.

Lägg till exempelskriptet i dokumentet och kör det. Lägg sedan till åtminstone de fält som listas i resultatkolumnen på ett ark i dokumentet för att se resultatet.

`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;` ` `

Skapa en tabell på ett ark i ditt dokument med ID, List och Value som dimensioner.

Resultat för exempel 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 |

Satsen IF() byggs från den tillfälliga tabellen T1.   
`Peek('ID')` hänvisar till fältet ID i föregående rad i aktuell tabell T2.  
`Peek('List')` hänvisar till fältet List i föregående rad i tabellen T2, som byggs då uttrycket utvärderas.

Satsen utvärderas enligt följande:  
Skriv ner värdet av Peek('List') konkatenerat med det aktuella värdet av Value om det aktuella värdet av ID är det samma som det tidigare värdet av ID. Annars skriver du det aktuella värdet av endast Value.

Om Peek('List') redan innehåller ett sammanlänkat resultat, kommer det nya resultatet Peek('List)' sammanlänkas till det.

Anteckning om informationObservera satsen Order by. Detta anger hur tabellen ordnas (genom ID i stigande ordning). Utan detta använder funktionen Peek() godtycklig ordning som den interna tabellen har, vilket kan leda till oförutsägbara resultat.

## Mer information

* [Tabelletiketter](https://help.qlik.com/sv-SE/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/Scripting/table-labels.htm)
* [Previous - skriptfunktion](https://help.qlik.com/sv-SE/qlikview/May2024/Subsystems/Client/Content/QV_QlikView/Scripting/InterRecordFunctions/Previous.htm)