Всем привет!

Как реализовать добавление факсимиле и печати, есть несколько типов договоров и должны быть разные печати)

Нравится

3 комментария
Лучший ответ

Добрый день.

 

Печатные формы Word поддерживают работу с макросами полей типа BLOB.

Нужно факсимиле и печати сохранить в картинки и хранить в базе, например, в детали 'Файлы'. Потом данное поле добавить в список полей печатной формы и уже в самом Word добавить это поле по аналогии с другими макросами для печатной формы.

Добрый день.

 

Печатные формы Word поддерживают работу с макросами полей типа BLOB.

Нужно факсимиле и печати сохранить в картинки и хранить в базе, например, в детали 'Файлы'. Потом данное поле добавить в список полей печатной формы и уже в самом Word добавить это поле по аналогии с другими макросами для печатной формы.

Александр, если их небольшое количество, проще будет создать несколько отчётов с разными картинками и вызывать нужный.

При желании, можно кодом скрыть ненужные пункты меню кнопки с отчётами в зависимости от типа, как тут.

А по совету Аллы подробнее см. тут.

Всем спасибо!

 

Показать все комментарии

Добрый день,друзья!
Мне необходимо добавить в печатную форму отчёта факсимиле, т.е. картинку с подписями разных организаций. Как это можно реализовать в TS? спасибо

Нравится

11 комментариев

Для начала надо в отчете добавить Picture Object.
Если картинка стандартная, то открыть поле и загрузить картинку с диска.
Если же у вас для каждой организации своя подпись и она хранится в датасете, то выделите Picture Object, слева есть Object Inspector, в нем свойства объекта, в свойствах объекта Dataset и DataField выделите нужный вам датасет и поле.

для каждой организации своя подпись. в карточке клиента надо заводить новый реквизит наверное,да?

Да, нужно создать новое поле.
В качестве примера можно посмотреть как организовано фото у контакта.

Александр, Спасибо! а где можно посмотреть данный пример?

А какой версии Terrasoft? В карточке контакта есть страничка "Фото"?

3.4.1.153. да, нашла, вижу

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

Вам в любом случаи надо добавлять поле, которое должно хранить подписи (в отчете картинка из воздуха не возникнет). Оно делается по аналогии с фото. Абсолютно скрытым для всех оно не может быть, ибо кто-то же должен добавить подписи в систему.
Его скрытие или открытие уже является другой задачей, а именно разграничения прав. В разделе администрирования есть страница "Права доступа к полям", выбрав нужную сущность и группу пользователей вы можете запретить видеть и/или редактировать данное поле. Еще как вариант вы можете запретить видеть саму страницу с фото в скрипте, например, не администраторам системы:

if (Connector.CurrentUser.IsAdmin) pPhoto.IsVisible = true;
else pPhoto.IsVisible = false;

Можно все проще сделать.

В Таблице tbl_Invoice создаем новое Булевское поле. К примеру IsVisibleStamp. Данное поле размещаем в SQL запросе, Датасете и на форме Редактирования Счета. Далее...

Все что сейчас будет описано требуется делать в Отчете FastReport. На форме отчета в определенном месте где должны располагаться печати Разместить N-ное количество картинок с печатями (ранее подруженных в отчет). по умолчанию в Свойствах картинок, Свойство Visible установить = false. Т.е в реальности это получиться как Бутерброд картинка на картинке. Каждой Картинки размещенной на форме отчета присвоить Имя. Далее Включение/Отключение картинок выполняем с помощью внутреннего языка Fastreport. к примеру на Паскале. К примеру на последней картинки размещенной на форме отчета по Событию "OnBeforePrint" создаем на языке паскаль процедуру. Язык конечно можно выбрать и C++ и другие из предложенных, на каком будет удобно кодить. Ниже привожу пример Процедуры события "OnBeforePrint" как я включал и отключал картинки. Пример приведен на PascalScript:

procedure Picture2OnBeforePrint(Sender: TfrxComponent);
begin
 
  //если на форме Счета Вкл. реквизит "Отображать печати и подписи", тогда в зависимости от выбранной организации включаем видимость правильной картинки, у остальных картинок видимость отключаем.
  if (<ds_TestDataset."IsVisibleStamp"> = 1) then
  Begin
       case (<ds_TestDataset."SupplierID">) of               
       '{7DCD5B5C-4BA8-4F84-A7D0-50118D75C36C}': - ID Организации Тест1
               begin                   
               Picture1.Visible := false;
               Picture2.Visible := true;
               end;                            
       '{A34D79E9-2D87-4955-8C67-736FFAC309BE}':  - ID Организации Тест2
               begin                   
               Picture1.Visible := true;
               Picture2.Visible := false;
               end;     
       end;
 
  end;

Спасибо,Михаил. так и поступила:smile:

Всегда пожалуйста Татьяна :smile: Обращайтесь всегда буду рад помочь и подсказать путь решения.

Показать все комментарии