# Peek — funkcja skryptu

Funkcja Peek() wyszukuje wartość pola w tabeli dotyczącą wiersza, który został załadowany lub który istnieje w pamięci wewnętrznej. Numer wiersza może być określony, podobnie jak tabela.

Składnia:

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

Typ zwracanych danych: podwójny

Argumenty:

Argumenty Peek

| Argument | Opis |
| --- | --- |
| field\_name | Nazwa pola, dla którego wymagana jest wartość zwracana.Wartość wejściowa musi być podana jako ciąg znaków (np. jako literał w cudzysłowie). |
| row\_no | Wiersz w tabeli określający wymagane pole. Może być wyrażeniem, ale musi dawać w wyniku liczbę całkowitą. 0 oznacza pierwszy rekord, 1 drugi rekord itd. Liczby ujemne określają kolejność od końca tabeli. –1 oznacza ostatni wczytany rekord.<br><br>Jeśli argument row nie zostanie podany, przyjmowana jest wartość –1. |
| table\_name | Etykieta tabeli bez końcowego dwukropka. Jeśli argument table\_name nie zostanie podany, przyjmowana jest bieżąca tabela. Wartość table\_name musi być podana w przypadku użycia poza instrukcją LOAD lub odnoszenia się do innej tabeli. |

Ograniczenia:

W przypadku pierwszego rekordu tabeli wewnętrznej funkcja zwraca wartość NULL.

Przykład 1:

Dodaj przykładowy skrypt do dokumentu i uruchom go. Następnie dodaj do arkusza w swoim dokumencie co najmniej pola wyszczególnione w kolumnie wyników, aby wyświetlić wynik.

`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, ponieważ `  Peek(EmployeeCode,0) ` zwraca pierwszą wartość EmployeeCode w tabeli EmployeeDates.

Podstawienie wartości argumentu row\_no zwraca wartości innych wierszy w tabeli w następujący sposób:

`  Peek('EmployeeCode',2) ` zwraca trzecią wartość w tabeli: 103.

Należy jednak pamiętać, że bez określenia tabeli jako trzeciego argumentu table\_no funkcja odwołuje się do bieżącej tabeli (w tym przypadku — wewnętrznej). Wynikiem `  Peek(EmployeeCode,-2) ` jest kilka wartości:

Wyniki przykładu 1

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

Przykład 2:

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

Określając argument table\_no jako `'EmployeeDates'`, funkcja zwraca przedostatnią wartość EmployeeCode w tabeli EmployeeDates: 105.

Przykład 3:

Funkcja Peek() może służyć do odwoływania się do danych, które nie zostały jeszcze załadowane.

Dodaj przykładowy skrypt do dokumentu i uruchom go. Następnie dodaj do arkusza w swoim dokumencie co najmniej pola wyszczególnione w kolumnie wyników, aby wyświetlić wynik.

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

Utwórz tabelę w arkuszu w dokumencie z parametrami ID, List i Value jako wymiarami.

Wyniki przykładu 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 |

Instrukcja IF() jest tworzona z tabeli tymczasowej T1.   
`Peek('ID')` odwołuje się do pola ID w poprzednim wierszu w bieżącej tabeli T2.  
`Peek('List')` odwołuje się do pola List w poprzednim wierszu w tabeli T2, która obecnie jest tworzona podczas oceny wyrażenia.

Instrukcja jest oceniana w następujący sposób:  
Jeśli bieżąca wartość ID jest taka sama, jak poprzednia wartość ID, wówczas wartość Peek('List') należy zapisać skonkatenowaną z bieżącą wartością Value. W przeciwnym wypadku należy zapisać tylko bieżącą wartość Value.

Jeśli funkcja Peek('List') już zawiera skonkatenowany wynik, nowy wynik Peek('List)' będzie z nim skonkatenowany.

InformacjaWarto zwrócić uwagę na klauzulę Order by. Określa ona sposób porządkowania tabeli (rosnąco według ID). Bez niej funkcja Peek() użyje dowolnego porządkowania zawartego w tabeli wewnętrznej, co może prowadzić do nieprzewidywalnych wyników.

## Dowiedz się więcej

* [Etykiety tabeli](https://help.qlik.com/pl-PL/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/table-labels.htm)
* [Previous — funkcja skryptu](https://help.qlik.com/pl-PL/qlikview/September2025/Subsystems/Client/Content/QV_QlikView/Scripting/InterRecordFunctions/Previous.htm)