Добрый день!
Есть следующая задача
На основе договоров необходимо формировать несколько документов.
Общая картина:
Есть договор, у него установлен атрибут Объект строительства.
При печати мне необходимо взять этот договор и все остальные с таким же объектом строительства.
По каждому договору надо сформировать, допустим, один документ.
Теперь о самих документах:
Есть шаблон
В нем 17 полей для заполнения.
Из них 7 полей я могу заполнить из Галактики (названия контрагентов, адреса и т.д.)
Остальные 10 будут различны (например, указывается место проведения собрания, ответственные и т.д.)
То есть получается, что необходимо сначала дать пользователю возможность дозаполнить шаблон, после этого у нас будет готовый шаблон для тиражирования.
И после этого - сформировать документ по каждому договору.
Я пока смотрю в сторону Fast Report`a
Можно ли дать пользователю дозаполнить шаблон, чтобы он его сохранил, и после этого - сформировать на его основе готовый отчет
При этом возникают вопросы эргономики:
1. можно ли оставить пользователю для заполнения только часть поля?
2. или, например, чтобы пользователь заполнил в отдельном окне FastReport переменные, и они подставились в текст?
Может быть вы знаете решение похожей задачи в стандартном галактическом функционале?
Методологический вопрос (возможно по FastReport)
- larin
- топ-софт
- Сообщения: 228
- Зарегистрирован: Пн, 10/09/2007 12:13
- Имя Фамилия: Михаил Ларин
- Откуда: ТопCофт
- Контактная информация:
Способ первый: В стандартном окне выбора отчета FastReport есть кнопка F4 редактировать отчет в дизайнере. Доступна если у пользователя есть лицензия. С ее помощью пользователь может отредактировать форму отчета и сохранить ее под новым именем. Форма сохраняется в текущий рабочий ресурс пользователя (имя файла ресурса задается параметром Compilers.OutputResourceName в galnet.cfg, также форму можно сохранить в файл на диске). После закрытия дизайнера пользователь может использовать модифицированную форму для печати. Можно также защитить выбранные элементы отчета от случайных модификаций в дизайнере, см. свойство Restrictions у элементов отчета. Этот способ подойдет если обилие кнопочек в дизайнере FR не напугает пользователя :)
Второй способ: FastReport позволяет программировать не только печатные страницы, но и простейшие окна для вода данных (см функцию "Новая форма"). Вы можете запрограммировать для договора такой отчет с формой и полями для ввода. Форма ввода будет автоматически открываться перед печатью. Значения введенные в форму можно использовать при печати. Форму можно запрограммировать на FastScript таким образом, чтобы однажды введенные пользователем значения сохранялись куда ни будь в файл и или в реестр Windows и использовались при повторной печати. (см. методы LoadFromFile, SaveToFile и др. объектов TStringList, TIniFile, TMemIniFile)
Второй способ: FastReport позволяет программировать не только печатные страницы, но и простейшие окна для вода данных (см функцию "Новая форма"). Вы можете запрограммировать для договора такой отчет с формой и полями для ввода. Форма ввода будет автоматически открываться перед печатью. Значения введенные в форму можно использовать при печати. Форму можно запрограммировать на FastScript таким образом, чтобы однажды введенные пользователем значения сохранялись куда ни будь в файл и или в реестр Windows и использовались при повторной печати. (см. методы LoadFromFile, SaveToFile и др. объектов TStringList, TIniFile, TMemIniFile)
-
- топ-софт
- Сообщения: 65
- Зарегистрирован: Пт, 07/09/2007 11:57
- Имя Фамилия: Александр Крахотко
- Откуда: ТопСофт
- Контактная информация:
Третий способ: Добавить в договор несколько внешних атрибутов - в них пользователь и будет заполнять эти дополнительные 10 полей. вывести с помощью конфигуратора их на анкетную форму договора. в этом случае Вам понадобится всего один шаблон. Наверное это все же удобнее чем связывать расширенные поля договора с самим договором через шаблон отчета:)
-
- партнер
- Сообщения: 82
- Зарегистрирован: Ср, 19/09/2007 08:35
- Имя Фамилия: Максим Шагубаков
- Откуда: Галактика-Урал
- Контактная информация:
Спасибо за ответы.
Я пока склоняюсь ко второму способу
Кратко о причинах:
1. Маловероятно, что данные, введенные при подготовке шаблона будут использоваться повторно
2. У нас уже внешних атрибутов и так немало
3. Не хотелось бы давать пользователю доступ к шаблону фаст-репорт, сломает что-нибудь
Нашел файл FRuser.chm
Там вроде что-то есть про создание диалоговых окон.
Я пока склоняюсь ко второму способу
Кратко о причинах:
1. Маловероятно, что данные, введенные при подготовке шаблона будут использоваться повторно
2. У нас уже внешних атрибутов и так немало
3. Не хотелось бы давать пользователю доступ к шаблону фаст-репорт, сломает что-нибудь
Нашел файл FRuser.chm
Там вроде что-то есть про создание диалоговых окон.
-
- партнер
- Сообщения: 82
- Зарегистрирован: Ср, 19/09/2007 08:35
- Имя Фамилия: Максим Шагубаков
- Откуда: Галактика-Урал
- Контактная информация:
Всем спасибо за помощь
Получилось очень даже неплохо
Я сделал интерфейс, формирующий два потока (в зависимости от того, нужно печатать документы по всем договорам объекта строительства или только по одному договору)
И сделал по тестовой форме для каждого потока.
Теперь мы можем передать их АСУ, чтобы они утрясали вопросы с полями.
Если поле из Галактики - добавим его в поток
Если должно вводится - в форме фаст-репорт АСУ добавляет его в диалог для данной формы.
Получилось очень даже неплохо
Я сделал интерфейс, формирующий два потока (в зависимости от того, нужно печатать документы по всем договорам объекта строительства или только по одному договору)
И сделал по тестовой форме для каждого потока.
Теперь мы можем передать их АСУ, чтобы они утрясали вопросы с полями.
Если поле из Галактики - добавим его в поток
Если должно вводится - в форме фаст-репорт АСУ добавляет его в диалог для данной формы.