Неофициальный форум пользователей Qlik Sense & Qlikview

Для разработчиков => Вопросы по Qlik Sense & QlikView => Тема начата: asvas от 14 января 2017, 06:24:26

Название: Использование / применение функции peek
Отправлено: asvas от 14 января 2017, 06:24:26
Господа, я дико извиняюсь за такой простой вопрос,
но я никак не могу понять функционал этой функции.
Т.е я разобрался в примере из документации.
Но в контексте данного кода не могу разобраться - Что именно она делает? :
tmp1:
LOAD min(Date(Date#(dt,'YYYYMMDD'))) as 'DateStart',  max(Date(Date#(dt,'YYYYMMDD'))) as 'DateEnd' Resident GOODS_MOVEMENT;

LET Date_Start = peek('DateStart',0,'tmp1');
LET Date_End = peek('DateEnd',0,'tmp1');
LET vStart = floor(Date_Start);       
LET vEnd = floor(Date_End);
LET vNumOfDays = vEnd - vStart + 1;
//DROP Table tmp1;
Название: Re: Использование / применение функции peek
Отправлено: admin от 15 января 2017, 07:39:48
Привет.
Согласно описанию и своему предназначению peek('DateStart',0,'tmp1') возвращает значение переменной DateStart из первой строки/записи ( 0 обозначает первую запись) таблицы с именем tmp1.
Описание функции (http://help.qlik.com/ru-RU/sense/3.1/Subsystems/Hub/Content/Scripting/InterRecordFunctions/Peek.htm)
Название: Re: Использование / применение функции peek
Отправлено: asvas от 15 января 2017, 10:12:45
Как вы наверное поняли, что контекст в коде - календарный.
Я уже видел примеры использования peek - относительно обоснованные.
Хоть и запутанные, но таблица tmp1 из кода состоит всего из двух значений.
почему нельзя было просто написать?

LOAD ДАТА
Resident GOODS_MOVEMENT //таблица откуда берем данные;

LET Date_Start = min(Date(Date#(dt,'YYYYMMDD'))) ;


Или у данных типы разные?
Название: Re: Использование / применение функции peek
Отправлено: admin от 15 января 2017, 01:56:08
Ну потому что так не сработает.
min() используется в скрипте в операторе загрузки.
Для  присвоения переменной минимального значения из числового ряда используется RangeMin().
Для чтения значений в скрипте из загруженных таблиц используется Peek().
Все на своих местах.
Название: Re: Использование / применение функции peek
Отправлено: asvas от 15 января 2017, 03:38:13
Понял.
Значит просто принять как данность.
спасибо