forked from CITKParus/P8-Panels
БД: P8PDataGrid - встроена уникальность в алгоритм добавления групп для строк данных
This commit is contained in:
parent
de9248b8fc
commit
1f89838f16
@ -951,17 +951,35 @@ text="Формат data_grid и gant как в chart"
|
|||||||
BCLEAR in boolean := false -- Флаг очистки коллекции (false - не очищать, true - очистить коллекцию перед добавлением)
|
BCLEAR in boolean := false -- Флаг очистки коллекции (false - не очищать, true - очистить коллекцию перед добавлением)
|
||||||
)
|
)
|
||||||
is
|
is
|
||||||
|
BFND boolean := false; -- Флаг наличия группы в коллекции
|
||||||
begin
|
begin
|
||||||
/* Инициализируем коллекцию если необходимо */
|
/* Инициализируем коллекцию если необходимо */
|
||||||
if ((RGROUPS is null) or (BCLEAR)) then
|
if ((RGROUPS is null) or (BCLEAR)) then
|
||||||
RGROUPS := TGROUPS();
|
RGROUPS := TGROUPS();
|
||||||
end if;
|
end if;
|
||||||
/* Добавляем элемент */
|
/* Проверим наличие */
|
||||||
RGROUPS.EXTEND();
|
if (RGROUPS.COUNT > 0) then
|
||||||
RGROUPS(RGROUPS.LAST) := TGROUP_MAKE(SNAME => SNAME,
|
for I in RGROUPS.FIRST .. RGROUPS.LAST
|
||||||
SCAPTION => SCAPTION,
|
loop
|
||||||
BEXPANDABLE => BEXPANDABLE,
|
if (RGROUPS(I).SNAME = SNAME) then
|
||||||
BEXPANDED => BEXPANDED);
|
/* Элемент найден - обновим */
|
||||||
|
BFND := true;
|
||||||
|
RGROUPS(I) := TGROUP_MAKE(SNAME => SNAME,
|
||||||
|
SCAPTION => SCAPTION,
|
||||||
|
BEXPANDABLE => BEXPANDABLE,
|
||||||
|
BEXPANDED => BEXPANDED);
|
||||||
|
exit;
|
||||||
|
end if;
|
||||||
|
end loop;
|
||||||
|
end if;
|
||||||
|
/* Добавляем элемент если такого нет */
|
||||||
|
if (not BFND) then
|
||||||
|
RGROUPS.EXTEND();
|
||||||
|
RGROUPS(RGROUPS.LAST) := TGROUP_MAKE(SNAME => SNAME,
|
||||||
|
SCAPTION => SCAPTION,
|
||||||
|
BEXPANDABLE => BEXPANDABLE,
|
||||||
|
BEXPANDED => BEXPANDED);
|
||||||
|
end if;
|
||||||
end TGROUPS_ADD;
|
end TGROUPS_ADD;
|
||||||
|
|
||||||
/* Сериализация описания групп таблицы данных */
|
/* Сериализация описания групп таблицы данных */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user