4
« on: October 27, 2022, 02:57:44 pm »
Subst,
Вот база для SQLite mydb.db.
Будет правда всего 4 столбца (даже 3).
Чтобы подключить, нужно создать два источника данных:
main SELECT * FROM main;
caption SELECT * FROM caption;
Попробовал на винде (до этого был на линуксе) и с дргуим источником данных (SQLite, до этого был postgres), проблема остается.
И даже еще появилась новая проблема (при малом количестве столбцов заметил): столбцы стали меняться местами (должны идти в порядке (1, 2, 24), а идут (2, 24, 1).
Информация по БД:
CREATE TABLE main (fio varchar(20), c1 varchar(8), c2 varchar(8), c24 varchar(8));
INSERT INTO main VALUES('Ivanov','22:33:44','33:55"11','33:55:12');
.
.
.
INSERT INTO main VALUES('Ivanov13','22:33:44','33:55"11','33:55:12');
CREATE TABLE caption (c1 varchar(2), c2 varchar(2), c24 varchar(2), zc1 integer, zc0 integer);
INSERT INTO caption VALUES('1','2','24',2,1);
В таблице main данные для основной части отчета.
В таблице caption данные об именах столбцов и их количестве.
В шаблоне столбцы: фамилия, всего и еще от 0 до 30 столбцов с однообразными данными. Эти 30 столбцов в двух группах (Группа А и группа Б). В группу А могут входить столбцы с 1 по 23. В группу Б с 24 по 30.
В данном случае в таблице main 2 столбца из группы А c1 varchar(8 ), c2 varchar(8 ) и один столбец из группы Б c24 varchar(8 ).
В таблице caption столбец zc1 integer содержит информацию о том, сколько в данном случае столбцов в группе А (в данном случае 2), а столбец zc0 integer ту же информацию, но о группе Б (в данном случае 1). Ориентируясь на значения zc1 и zc0, шаблон скрывает лишние столбцы, изменяет размеры заголовков с названиями групп, и изменяет ширину данных из reportheader. (Вот тут еще появилась ошибка при маленьком количестве столбцов, они меняются местами).
Также в caption хранятся названия столбцов:
c1 varchar(2), c2 varchar(2), c24 varchar(2).