Добрый день,друзья!
Мне необходимо добавить в печатную форму отчёта факсимиле, т.е. картинку с подписями разных организаций. Как это можно реализовать в TS? спасибо
Нравится
Для начала надо в отчете добавить Picture Object.
Если картинка стандартная, то открыть поле и загрузить картинку с диска.
Если же у вас для каждой организации своя подпись и она хранится в датасете, то выделите Picture Object, слева есть Object Inspector, в нем свойства объекта, в свойствах объекта Dataset и DataField выделите нужный вам датасет и поле.
для каждой организации своя подпись. в карточке клиента надо заводить новый реквизит наверное,да?
Да, нужно создать новое поле.
В качестве примера можно посмотреть как организовано фото у контакта.
Александр, Спасибо! а где можно посмотреть данный пример?
А какой версии Terrasoft? В карточке контакта есть страничка "Фото"?
тут по аналогии с фото в карточке контакта не пройдет. ибо это скрытая информация должна быть по идее.
Вам в любом случаи надо добавлять поле, которое должно хранить подписи (в отчете картинка из воздуха не возникнет). Оно делается по аналогии с фото. Абсолютно скрытым для всех оно не может быть, ибо кто-то же должен добавить подписи в систему.
Его скрытие или открытие уже является другой задачей, а именно разграничения прав. В разделе администрирования есть страница "Права доступа к полям", выбрав нужную сущность и группу пользователей вы можете запретить видеть и/или редактировать данное поле. Еще как вариант вы можете запретить видеть саму страницу с фото в скрипте, например, не администраторам системы:
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: Обращайтесь всегда буду рад помочь и подсказать путь решения.