Визуализация работы с xlsx

Программы на Clarion, шаблоны, библиотеки и пр.
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
finsoftrz
Ветеран
Сообщения: 1010
Зарегистрирован: 06 Ноябрь 2014, 12:48

Визуализация работы с xlsx

Сообщение finsoftrz » 26 Январь 2018, 10:42

В принципе, можно и без промежуточного формата. На современном компьютере создать и зачистить несколько каталогов и файлов времени много не занимает. Распарсить xml тоже быстро, они маленькие у шаблона. С другой стороны, если можно исключить это, почему бы и нет. Опять таки, а как дерево форм быстро вывести, если информация о нем упакована в куче архивов.
Еще есть такой момент. Промежуточный формат работает железобетонно и без сюрпризов. Содержимое xlsx все же "со стороны". Мне кажется разумным разделить генерацию xlsx и визуализацию проектирования бланка через промежуточный слой. Типа компиляции...
В общем, не догма, конечно, скорее дело личных предпочтений и опыта.
Рязань решает.

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3852
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

Визуализация работы с xlsx

Сообщение Игорь Столяров » 26 Январь 2018, 11:22

Как я понимаю: здесь Microsoft Excel (Apache Calc) - это среда для рисования отчёта.
Это оправданно, потому что возможности даже бесплатного офисного пакета по оформлению отчётов превосходят
специализированные системы отчётности вроде List&Label и FastReport, не говоря уже о самопальных поделках.

В случае OLE нужно тупо открыть нарисованную форму отчёта и расставить данные по указанным полям. Всё, отчёт готов !
А вот при работе через промежуточный файл, Вы сможете "перетащить" в отчёт все красоты, дизайн, стили оформления, графику ?
«V» значит Вендетта !

Аватара пользователя
finsoftrz
Ветеран
Сообщения: 1010
Зарегистрирован: 06 Ноябрь 2014, 12:48

Визуализация работы с xlsx

Сообщение finsoftrz » 26 Январь 2018, 11:49

Ole завязан на ms excel и работает медленно. А также имеет известные ограничния и глюки.
При рассматриваемом подходе вся информация о шрифтах, границах, стилях и т.п. затягивается тривиально и может использоваться при построении отчетов. Я, конечно, беру не все теги, а которые нужны были. В самом бланке можно подыгрывать, используя специальные конструкции. Например, вывод картинок я не подключал, но по аналогии с xls, пишем в ячейке что-то типа карт=<имя>, <параметры> и используем для управляемой вставки.
Рязань решает.

Аватара пользователя
finsoftrz
Ветеран
Сообщения: 1010
Зарегистрирован: 06 Ноябрь 2014, 12:48

Визуализация работы с xlsx

Сообщение finsoftrz » 26 Январь 2018, 11:53

Я бы только еще раз заметил, что заменять всю печать на подобную технологию не целесообразно. Свободные формы быстрее и проще делать другими инструментами.
Рязань решает.

gopstop2007
Ветеран
Сообщения: 1179
Зарегистрирован: 25 Март 2009, 21:55

Визуализация работы с xlsx

Сообщение gopstop2007 » 26 Январь 2018, 12:06

я о целесообразности, чтобы не накалывали вареник вилкой, потом не снимали его с вилки рукой и запихивали в рот :)
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп

kreator
Ветеран
Сообщения: 3074
Зарегистрирован: 28 Май 2009, 14:54
Откуда: Москва

Визуализация работы с xlsx

Сообщение kreator » 26 Январь 2018, 12:16

Игорь Столяров писал(а):
26 Январь 2018, 11:22
Как я понимаю: здесь Microsoft Excel (Apache Calc) - это среда для рисования отчёта.
Это оправданно, потому что возможности даже бесплатного офисного пакета по оформлению отчётов превосходят
специализированные системы отчётности вроде List&Label и FastReport, не говоря уже о самопальных поделках.
Не уверен, что это оправданно. Заставите клиента пользоваться Калком? По-хорошему нужен свой дизайнер, в котором есть возможность подкачать шаблон из Калка, из чего-то ещё. С другой стороны, если приведённые средства слабее того же Калка, то и импорт из Калка не актуален. Т.е. сначала нужно написать дизайнер отчёта, сравнимый с Калком. А это миллионы чел-час!
We are hard at work… for you. :)

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 3852
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-Дону

Визуализация работы с xlsx

Сообщение Игорь Столяров » 26 Январь 2018, 12:37

kreator писал(а):
26 Январь 2018, 12:16
сравнимый с Калком. А это миллионы чел-час!
Вот тоже и оно ! А открыть в Microsoft Excel / Word через OLE и заполнить XLSX или DOCX - проще чем игра в крысу ... ;)
(Для Apache / Libre Calc / Writer эти задачи прекрасно реализует библиотека EasyOpenOffice)
«V» значит Вендетта !

Аватара пользователя
finsoftrz
Ветеран
Сообщения: 1010
Зарегистрирован: 06 Ноябрь 2014, 12:48

Визуализация работы с xlsx

Сообщение finsoftrz » 26 Январь 2018, 12:39

Не, это инструмент прежде всего для себя, а не для конечного пользователя. У нас клиенты не имеют своего штата ит, поэтому им проще заказать отчет. А вот нам надо все сделать быстро. Аналогичный инструмент для xls за много лет зарекомендовал себя великолепно...
Кстати, я видел реализацию табличного дизайнера на кларионе. Там как раз такая концепция и была - рисуем бланк в программе, а выводим в xls excel (конкретнее, biff8 прямым формированием файла). Разработка коммерческая под свои проекты. Если интересно, можете найти сайт Энигмы из Харькова, у них можно было скачать демку, в которой посмотреть настройку бланков. Причем, для свободных форм они тоже используют другой дизайнер.
Рязань решает.

Аватара пользователя
finsoftrz
Ветеран
Сообщения: 1010
Зарегистрирован: 06 Ноябрь 2014, 12:48

Визуализация работы с xlsx

Сообщение finsoftrz » 26 Январь 2018, 12:42

Игорь Столяров писал(а):
26 Январь 2018, 12:37
kreator писал(а):
26 Январь 2018, 12:16
сравнимый с Калком. А это миллионы чел-час!
Вот тоже и оно ! А открыть в Microsoft Excel / Word через OLE и заполнить XLSX или DOCX - проще чем игра в крысу ... ;)
(Для Apache / Libre Calc / Writer эти задачи прекрасно реализует библиотека EasyOpenOffice)
Игорь Столяров писал(а):
26 Январь 2018, 12:37
kreator писал(а):
26 Январь 2018, 12:16
сравнимый с Калком. А это миллионы чел-час!
Вот тоже и оно ! А открыть в Microsoft Excel / Word через OLE и заполнить XLSX или DOCX - проще чем игра в крысу ... ;)
(Для Apache / Libre Calc / Writer эти задачи прекрасно реализует библиотека EasyOpenOffice)
Ну, проще чем Вывести секцию или Присоединить секция я ничего не знаю... Только вначале немного поработать надо, чтобы потом все легко и просто было.
Рязань решает.

Yufil
Ветеран движения
Сообщения: 1072
Зарегистрирован: 16 Май 2006, 13:34
Контактная информация:

Визуализация работы с xlsx

Сообщение Yufil » 26 Январь 2018, 14:37

Игорь Столяров писал(а):
26 Январь 2018, 11:22
Как я понимаю: здесь Microsoft Excel (Apache Calc) - это среда для рисования отчёта.
Это оправданно, потому что возможности даже бесплатного офисного пакета по оформлению отчётов превосходят
специализированные системы отчётности вроде List&Label и FastReport, не говоря уже о самопальных поделках.
Зря это вы, батенька... Что может быть лучше хорошего генератора отчётов? Лучше только ... эх, да ничего нет лучше! :D

BOB
Ветеран
Сообщения: 334
Зарегистрирован: 17 Июль 2005, 4:43

Визуализация работы с xlsx

Сообщение BOB » 26 Январь 2018, 15:20

Вроде нормальная бесплатная библиотека с исходниками для xlsx есть на c# , если интересно могу ссылку дать .

Аватара пользователя
finsoftrz
Ветеран
Сообщения: 1010
Зарегистрирован: 06 Ноябрь 2014, 12:48

Визуализация работы с xlsx

Сообщение finsoftrz » 03 Февраль 2018, 0:56

Вот еще пример решения с объединением ячеек и wrap. В ячейку вписываем формулу, указывая, сколько строк и колонок объединять с wrap. Имеется некоторая погрешность в преобразованиях единиц измерения, так до конца и не нашел точного алгоритма. Пришлось сделать с некоторым запасом, поэтому иногда строки могут выводиться с увеличенной высотой. В целом, думаю, вариант приемлемый.
Вложения
merge_and_wrap1.jpg
merge_and_wrap2.jpg
Рязань решает.

Аватара пользователя
finsoftrz
Ветеран
Сообщения: 1010
Зарегистрирован: 06 Ноябрь 2014, 12:48

Визуализация работы с xlsx

Сообщение finsoftrz » 03 Февраль 2018, 14:00

Немного переделал предыдущий пример, теперь используется просто конструкция формв=<выражение>, а объединение ячеек подтягивается из шаблона.
Еще похожая идея, но вместо ресайза высоты строки уменьшается шрифт. В ячейку вписываем формм=<выражение>.
Вложения
merge_and_wrap3.jpg
merge_and_wrap4.jpg
Рязань решает.

gopstop2007
Ветеран
Сообщения: 1179
Зарегистрирован: 25 Март 2009, 21:55

Визуализация работы с xlsx

Сообщение gopstop2007 » 03 Февраль 2018, 19:24

хотел спросить, зачем в шаблоне строка с тремя параметрами - формв=1,3,'Наименование' ? О смотрю во втором примере уже без параметров :)
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп

Аватара пользователя
finsoftrz
Ветеран
Сообщения: 1010
Зарегистрирован: 06 Ноябрь 2014, 12:48

Визуализация работы с xlsx

Сообщение finsoftrz » 03 Февраль 2018, 19:44

На момент создания первого примера еще не было чтения объединений из шаблона. Потом появились, написал про это. Сейчас, как в последнем примере. Можно просто делать объединения для надписей, как в заголовке второй колонки, можно специальные формулы формв= и формм=, при которых выполняется либо ресайз последней строки в объединении, либо уменьшение размера шрифта. Аналогично это можно использовать и для одной ячейки.
Рязань решает.

Ответить