Добрый день!
Судя по публикация в сообществе, данный вопрос уже поднимался. Как выгрузить записи в один файл? Т.е. выделить несколько записей и "собрать" их в один pdf или word документ, что бы не сохранять большое количество файлов?
Конкретно у меня задача следующая:
выделить или отфильтровать в объекте записи и сгенерировать печатную форму. Но это должен быть 1 файл, где каждый лист (или каждых 2-3) - это новый документ, т.е. если бы я печатал по одной записи.
Идея озвучивалась здесь https://community.terrasoft.ua/ideas/pecatnaa-forma-s-vygruzkoi-v-odin-fail , вроде как она было одобрена, но я так и не понял, разработан ли данный функционал?
Кое-что обсуждалось здесь https://community.terrasoft.ua/questions/massovaa-pecat-izmenit-logiku , но сохранение списка файлов в одной папке по умолчанию не подходит.
https://community.terrasoft.ru/forum/topic/9434 пост, увы, удален, поэтому не знаю, придумали ли какое-нибудь решение.
Больше информации я не нашел. Если есть какие-то решения, мысли, идеи, то просьба поделиться. Буду очень благодарен, если подскажете, в какую сторону двигатья, что искать и как закрыть эту задачу.
Нравится
Андрей Корень,
Для on-site вы можете использовать сторонии dll на
c# например: itextsharp или уже упомянутый выше PDFSharp для объединения нескольких pdf в один или аналогичные для docx формата (Например openXML)
Те вам нужно получить ваши печатные формы (docx/pdf файлы)
При формировании печатных форм вызывается ReportService который сохраняет сформированый отчет во временной сессии UserConnection по ключу. Вам нужно сэмулировать вызов сервиса отчетов, получить ключ отчета в сесионном сторадже и затем забрать из стораджа готовые отчеты (файлы) по полученому ключу
Как то так:
object reportObj = UserConnection.SessionData[key]; var report = (ReportData)reportObj; var reportStream = new MemoryStream(report.Data);
Получив файлы вам остается лишь погуглить как объеденить несколько файлов в один.
В общем технически все решаемо.
Для такого рода вопросов желательно чтобы вы уточняли хотя бы версию вашего crm и способ размещения On-Site или On-Demand?
Указанную тему (https://community.terrasoft.ru/forum/topic/9434 ) можно найти по этой ссылке, если вам это поможет https://community.terrasoft.ru/questions/problema-s-propuskom-masterdata-headera-i-footera-v-seredine-otceta
Андрей Корень,
Для on-site вы можете использовать сторонии dll на
c# например: itextsharp или уже упомянутый выше PDFSharp для объединения нескольких pdf в один или аналогичные для docx формата (Например openXML)
Те вам нужно получить ваши печатные формы (docx/pdf файлы)
При формировании печатных форм вызывается ReportService который сохраняет сформированый отчет во временной сессии UserConnection по ключу. Вам нужно сэмулировать вызов сервиса отчетов, получить ключ отчета в сесионном сторадже и затем забрать из стораджа готовые отчеты (файлы) по полученому ключу
Как то так:
object reportObj = UserConnection.SessionData[key]; var report = (ReportData)reportObj; var reportStream = new MemoryStream(report.Data);
Получив файлы вам остается лишь погуглить как объеденить несколько файлов в один.
В общем технически все решаемо.
Коллеги, всем спасибо за помощь. После решения задачи отпишусь, как в итоге решили все сделать.
Последняя ссылка не подойдёт, там для 3.Х.
В случае автора вопроса, насколько понимаю, нужно просто построить по выбранным или отфильтрованным записям отчёт определённого вида, вроде такого:
Можно сделать как в стандартных отчётах в разделе, которые вызываются из режима итогов, например, «Data entry compliance» в разделе контрагентов. Для построения отчёта в реестре фильтруют или помечают галочками нужные записи, переключаются в итоги, выбирают этот отчёт, а потом строят по выделенным, по отфильтрованным или по всем:
Схема этого отчёта AccountDataCompletenessReport, привязка таких отчётов к разделам задаётся в таблице SysModuleAnalyticsReport. Для выбора вариантов формирования используется страница BaseReportParameterInModulePageFilter.
Такой отчёт нужно создавать и настраивать все его схемы для каждого раздела отдельно. Постраничность уже предусматривать на уровне дизайнера отчёта.
Андрей Корень,
Добрый день. Проблема как-то решилась, если да, то не подскажите как?