Как стать автором
Обновить

Комментарии 13

Пытался пользоваться слиянием. В итоге перешёл на макросы. Слияние - негибкая вещь, как оказалось. Особенно, если надо что-то менять

Может я что то не понял, но конкретного рецепта я вы так и не увидел. Хотя честно сказать - зашёл чисто из любопытства, так как сам таким давно не пользуюсь, ибо как верно заметили в комментарии, через макросы оно как то и быстрее и надёжнее, как ни странно.

Потому что автозаполнение - бесплатная функция. Бесплатные функции в прайсе не указаны, об этом сказано на странице перед прайсом.

Что только люди не придумают, лишь бы не пользоваться готовым репортингом.

А это как?

Взять готовый инструмент для генерации отчётов, создать шаблоны, привязать данные и экспортировать в нужный формат или сразу на печать.

Спасибо!

Взять готовый инструмент для генерации отчётов

Вы имеете в виду что-то не попсовое, типа слияния Excel с Word?

ActiveReports, Telerik, DevExpress

предложил другую концепцию автозаполнения. Не убедил.

Конечно. Предложить заменить встроенную возможность на сторонний дополнительно устанавливаемый компонент... Меня тоже всё это не убедило.

Больше всего, конечно, выморозило то, что именовать надо ячейку. Не диапазон, не таблицу, а отдельную ячейку... застрелиться! А мне надо получить сотню заполненных форм из таблицы в две сотни строк (отобрав нужную мне сотню фильтрами) и двадцать полей. Что, правда "всё делается в два шага"? угу, ветер в спину. Я уж лучше по старинке.

Спасибо за идею)

Как было отмечено в дисклеймере, существуют две разные задачи: 1) генерация за один раз множества документов простой структуры (мало полей, без таблиц и изображений) и 2) автозаполнение за один раз одного сложного документа → больше 10 - 20 полей, с таблицами и изображениями. Подходы к этим задачам немного различаются.

Поскольку объяснить разницу задач в двух словах не получается, решил добавить в надстройку и решение второй. Чтобы никто не ушел разочарованным)

Как было отмечено в дисклеймере, существуют две разные задачи: 1) генерация за один раз множества документов простой структуры (мало полей, без таблиц и изображений) и 2) автозаполнение за один раз одного сложного документа → больше 10 - 20 полей, с таблицами и изображениями. Подходы к этим задачам немного различаются.

Есть общая задача формирования нескольких однотипных документов по заданному шаблону, с подстановкой в него данных из внешнего источника(ов). И есть частная задача формирования строго одного документа с такой подстановкой, которая просто является упрощённой разновидностью общей задачи и отличается от неё исключительно тем, что не требуется выполнять итерации по источникам данных.

О дисклеймере. Как раз пакетная печать, ну, например, пачки накладных или актов, ну или каких-нибудь частично персонифицированных бланков там - вполне себе обычное действие.

Ну и о том, что источник данных нельзя менять... А попробуйте изменять источник данных, когда файл шаблона НЕ открыт. Потом сохранить и закрыть источник, и лишь затем открывать шаблон. Говорят, получается.

Если "нужно ехать", то берем свободный OpenOffice|LibreOffice, открываем в нем любую таблицу в любом формате и используем как список рассылки/слияния. На выходе - один или несколько docx/odt/pdf(втч гибридных) или несколько отправленных email.

Для более серьезной работы с под-наборами строк из большой таблицы - делаем на базе таблицы любого формата (или внешней БД) - свою базу данных-пустышку формата ODB (OpenOffice|LibreOffice Base) и уже на базе этой таблицы (виртальной) пишем SQL-запрос/view или конструируем пошагово новый список рассылки/подстановки значений в письма счастья, договоры итд.

Если нужно по какому-то значению в БД или выбору пользователея в слитом тексте авто-скрыть/показать определенный текст (букву, слово, предложение, абзац или даже многостраничый раздел с таблицами) - легко, к вашим услугам условыный/скрытый текст/раздел.

Все это существует и работает без макросов в OpenOffice|LibreOffice примерно с 2004 г. практически без изменений, хорошо документировано и не падает на 10k генерируемых доков. Но все это опять же только если нужно "ехать", быстро и бесплатно (в ТЗ на госзакупки и интересные конкурсы эти условия назовут взаимоисключающими).

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории