Страница 1 из 1

Задать цикл по create view

Добавлено: 03 май 2022, 22:16
Espada
Доброго дня, пишу глобальную функцию, необходимо задать цикл по крейтвьюшке, но способа кроме как через _loop, не нашел. Обычно, когда пишу frm отчёты использую
.{table 'название таблицы'
.}
подскажите пожалуйста, есть ли альтернатива _loop?

Re: Задать цикл по create view

Добавлено: 04 май 2022, 11:26
Irina_
Здравствуйте. А чем Вам не нравится _Loop? В нем тоже указывается имя таблицы, по которой движение. Есть еще:
-цикл с предпроверкой While
-цикл с постпроверкой do...while.
Использовать с GetFirst и GetNext для движения в прямом направлении, GetLast и GetPrev для движения в обратном направлении.

Re: Задать цикл по create view

Добавлено: 04 май 2022, 14:01
Espada
Irina_ писал(а):Здравствуйте. А чем Вам не нравится _Loop? В нем тоже указывается имя таблицы, по которой движение. Есть еще:
когда мы задаём цикл через table, то в цикле можно обращаться к каждой таблице из крейтвьюшки, а с loop, нужно задавать отдельно цикл по каждой из таблиц, как по мне, менее удобно) но видимо ничего не поделаешь, придётся через loop, спасибо)

Re: Задать цикл по create view

Добавлено: 04 май 2022, 14:48
Irina_
нужно задавать отдельно цикл по каждой из таблиц
Не совсем правильно. Все зависит от Вашего Create View. Иногда отдельные циклы по каждой таблице не нужны, достаточно сделать только позиционирование, например, GetFirst.

Re: Задать цикл по create view

Добавлено: 07 май 2022, 10:42
edward_K
1.в loop where можно указывать несколько таблиц,без where таблы с create view будут сами подтягиваться
2, если связи один ко многим и вам лень делать несколько , можете делать цикл по viewtable
3. Getfirst лучше не использовать, isvalid вполне достаточно в loop
4. Эффективность оценивайте sil логе. Если таблы справа привязаны по уникальному индексу, то они будут в основном запросе, если нет, то по ним будет идти отдельный запрос, что медленно. Помочь может только dsql