Программа для склада, для магазина, для производства |
Vvs "Офис-Склад-Магазин"Редактирование форм документов и отчетов |
П.7. Организация циклов по записям базы данных.
Следует отметить, что циклы возможны только по записям базы данных и зависят от типа документа, который будет формироваться. Для формы счета используется цикл по пунктам этого счета, для накладной - по пунктам накладной.
Начало цикла отмечается символом открытия фигурной скобки, а конец - закрытия фигурной скобки. Фигурные скобки должны стоять в начале строки, после них на этой строке текст не обрабатывается. Перед фигурными скобками может стоять условие.
Формат задания цикла следующий:
{
Строки вывода и(или) подсчета переменных
........................................
}
Для отчетов используются вложенные циклы, например, первый по накладным, второй, вложенный - по пунктам накладных. Таким образом, в отчетах можно обрабатывать список документов и их содержимое.
Формат задания вложенного цикла следующий:
{
....
{
Строки вывода и(или) подсчета переменных
........................................
}
}
Рассмотрим пример для накладной. В ее форме сначала выводятся названия колонок, а затем в цикле пункты накладной. Условные обозначения полей:
DTWR - название товара, FP9 - количество по накладной.
+-------------------------+
| Наименование |Количество|
+-------------------------+
{
|[DTWR ]|[FP9
]|
}
В циклах удобно использовать переменные для подсчета итоговых сумм. Так для накладной в базе данных не фиксируется общая сумма, поэтому она должна быть подсчитана в цикле. Изменим предыдущий пример, учитывая, что поле
FP12 - цена по накладной. В переменной XSUM будем подсчитывать сумму накладной.
+---------------------------------+
| Наименование |Количество|Цена |
+---------------------------------+
{
|[DTWR ]|[FP9
]|[FP12 ]|
@XSUM=XSUM+FP9*FP12
}
Итого сумма: [XSUM ]
Простейший отчет по товарам, который выводит название товара (DTWR) и отпускную цену (DC1) выглядит так:
+---------------------+
| Наименование |Цена |
+---------------------+
{
|[DTWR ]|[DC1 ]|
}
Как уже отмечалось, для отчетов можно использовать вложенный цикл. Цикл первого уровня обрабатывает тот список, для которого предназначен отчет - список товаров, клиентов, накладных или оплат. Вложенный цикл второго уровня в отчетах обрабатывает или пункты заказов, или пункты накладных.
В следующем отчете по накладным используется вложенный цикл. В нем поочередно выводятся все накладные с выданными в них товарами:
Список накладных.
{
Накладная N [EP2x ] дата: [EP3 ]
+-------------------------+
| Наименование |Количество|
+-------------------------+
{
|[DTWR ]|[FP9
]|
}
}