Алгоритм расчетной подчиненной таблицы
Алгоритм отвечает за формирование расчетной подчиненной таблицы. Результатом выполнения алгоритма должно стать формирование таблицы форматированных строк. Ссылка на алгоритм задается в менеджере настроек отображения.
Параметры алгоритма:
ВЫЧИСЛИТЬ(ПЕРЕМ ОПЕР_КОНТЕКСТ: контекст; СТРОКА: вариант; ПЕРЕМ <ТИП>: оп; ПЕРЕМ РАСЧ_ТАБЛИЦА: табл) // ... КОНЕЦ
- контекст - входной параметр. Имя журнала + имя режима настроек.
- вариант - входной параметр. Имя варианта подчиненной таблицы в менеджере настроек отображения.
- оп - входной параметр. Операция, для которой вызывается алгоритм. Вместо идентификатора <ТИП> задается имя типа операции, имя одного из родительских типов или ОПЕРАЦИЯ.
- рез - выходной параметр. Расчетная таблица, переменная типа РАСЧ_ТАБЛИЦА, содержит схему и данные.
- схема - входной и выходной параметр. Схема таблицы.
Пример
Пример иллюстрирует использование алгоритма создания расчетной подчиненной таблицы по данным табличного признака.
В настройке отображения у нужного типа операции создается новая подчиненная таблица с типом данных "Расчетная таблица", после чего в узле "Расчетная таблица" указывается алгоритм ее создания.
ВЫЧИСЛИТЬ(ПЕРЕМ ОПЕР_КОНТЕКСТ: контекст; // вход СТРОКА: вариант; // вход ПЕРЕМ ОПЕРАЦИЯ: оп; // вход ПЕРЕМ РАСЧ_ТАБЛИЦА: табл) // вход/выход ПЕРЕМ ССЫЛКА: ссл, ссл1 табл.схема.столбцы[1].имя = "код ТОВАРА" табл.схема.столбцы[2].имя = "кол" табл.схема.столбцы[3].имя = "цена" ПЕРЕМ ЦЕЛОЕ: кол ЦИКЛ ИНДЕКС(призн = оп.таб_признаки["товары"].ячейки[номер,*]) ссл=оп.таб_признаки["товары"].ячейки[номер,"код"] табл.строки[номер].текст["код ТОВАРА"] = ссл.код табл.строки[номер].текст["кол"] = СТР(оп.таб_признаки["товары"].ячейки[номер,"кол"]) табл.строки[номер].текст["цена"] = СТР(оп.таб_признаки["товары"].ячейки[номер,"цена"]) КОНЕЦ_ЦИКЛА КОНЕЦ