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

Программы на Clarion, шаблоны, библиотеки и пр.

Модератор: Дед Пахом

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

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

Сообщение finsoftrz »

В принципе, можно и без промежуточного формата. На современном компьютере создать и зачистить несколько каталогов и файлов времени много не занимает. Распарсить xml тоже быстро, они маленькие у шаблона. С другой стороны, если можно исключить это, почему бы и нет. Опять таки, а как дерево форм быстро вывести, если информация о нем упакована в куче архивов.
Еще есть такой момент. Промежуточный формат работает железобетонно и без сюрпризов. Содержимое xlsx все же "со стороны". Мне кажется разумным разделить генерацию xlsx и визуализацию проектирования бланка через промежуточный слой. Типа компиляции...
В общем, не догма, конечно, скорее дело личных предпочтений и опыта.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7327
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

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

Сообщение Игорь Столяров »

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

В случае OLE нужно тупо открыть нарисованную форму отчёта и расставить данные по указанным полям. Всё, отчёт готов !
А вот при работе через промежуточный файл, Вы сможете "перетащить" в отчёт все красоты, дизайн, стили оформления, графику ?
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4559
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

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

Сообщение finsoftrz »

Ole завязан на ms excel и работает медленно. А также имеет известные ограничния и глюки.
При рассматриваемом подходе вся информация о шрифтах, границах, стилях и т.п. затягивается тривиально и может использоваться при построении отчетов. Я, конечно, беру не все теги, а которые нужны были. В самом бланке можно подыгрывать, используя специальные конструкции. Например, вывод картинок я не подключал, но по аналогии с xls, пишем в ячейке что-то типа карт=<имя>, <параметры> и используем для управляемой вставки.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4559
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

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

Сообщение finsoftrz »

Я бы только еще раз заметил, что заменять всю печать на подобную технологию не целесообразно. Свободные формы быстрее и проще делать другими инструментами.
C6/C11, ШВС, tps/btrieve.
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

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

Сообщение gopstop2007 »

я о целесообразности, чтобы не накалывали вареник вилкой, потом не снимали его с вилки рукой и запихивали в рот :)
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

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

Сообщение kreator »

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

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

Сообщение Игорь Столяров »

kreator писал(а): 26 Январь 2018, 12:16сравнимый с Калком. А это миллионы чел-час!
Вот тоже и оно ! А открыть в Microsoft Excel / Word через OLE и заполнить XLSX или DOCX - проще чем игра в крысу ... ;)
(Для Apache / Libre Calc / Writer эти задачи прекрасно реализует библиотека EasyOpenOffice)
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4559
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

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

Сообщение finsoftrz »

Не, это инструмент прежде всего для себя, а не для конечного пользователя. У нас клиенты не имеют своего штата ит, поэтому им проще заказать отчет. А вот нам надо все сделать быстро. Аналогичный инструмент для xls за много лет зарекомендовал себя великолепно...
Кстати, я видел реализацию табличного дизайнера на кларионе. Там как раз такая концепция и была - рисуем бланк в программе, а выводим в xls excel (конкретнее, biff8 прямым формированием файла). Разработка коммерческая под свои проекты. Если интересно, можете найти сайт Энигмы из Харькова, у них можно было скачать демку, в которой посмотреть настройку бланков. Причем, для свободных форм они тоже используют другой дизайнер.
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4559
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

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

Сообщение finsoftrz »

Игорь Столяров писал(а): 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)
Ну, проще чем Вывести секцию или Присоединить секция я ничего не знаю... Только вначале немного поработать надо, чтобы потом все легко и просто было.
C6/C11, ШВС, tps/btrieve.
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

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

Сообщение Yufil »

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

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

Сообщение BOB »

Вроде нормальная бесплатная библиотека с исходниками для xlsx есть на c# , если интересно могу ссылку дать .
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4559
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

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

Сообщение finsoftrz »

Вот еще пример решения с объединением ячеек и wrap. В ячейку вписываем формулу, указывая, сколько строк и колонок объединять с wrap. Имеется некоторая погрешность в преобразованиях единиц измерения, так до конца и не нашел точного алгоритма. Пришлось сделать с некоторым запасом, поэтому иногда строки могут выводиться с увеличенной высотой. В целом, думаю, вариант приемлемый.
Вложения
merge_and_wrap1.jpg
merge_and_wrap2.jpg
C6/C11, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4559
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

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

Сообщение finsoftrz »

Немного переделал предыдущий пример, теперь используется просто конструкция формв=<выражение>, а объединение ячеек подтягивается из шаблона.
Еще похожая идея, но вместо ресайза высоты строки уменьшается шрифт. В ячейку вписываем формм=<выражение>.
Вложения
merge_and_wrap3.jpg
merge_and_wrap4.jpg
C6/C11, ШВС, tps/btrieve.
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

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

Сообщение gopstop2007 »

хотел спросить, зачем в шаблоне строка с тремя параметрами - формв=1,3,'Наименование' ? О смотрю во втором примере уже без параметров :)
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 4559
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 6 раз
Поблагодарили: 34 раза

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

Сообщение finsoftrz »

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