Стоит такая задача. В разделе создается кнопочка Фото, при нажатие на которую загружается карточка редактирования с фото. Имя фото = имя колонки R_ID.jpg. Создала карточку редактирования с компонентой ImageDataControl, подключила нужную таблицу, в разделе создала кнопку. На обработчик прописала:
function ButtonOnClick(Control) {
var EditWindow = Services.GetNewItemByUSI('wnd_AttedanceJobEdit');
EditWindow.Prepare();
EditWindow.Show();
}
function wnd_AttendanceJobEditOnPrepare(Window) {
dlData.Dataset.Open()//TODO
}
Появляется ошибка выполнения метода 'ButtonOnClick'. Object 'DataField ID' is not assigned.
Подскажите как исправить эту ошибку?
И вопрос немного дальше. Подключать фото я собираюсь так же как фото Контакта https://community.terrasoft.ru/developer/faq/1902
как мне правильно сформировать FileName?
Заранее спасибо за помощь
Нравится
Я не до конца понимаю вашу задачу, у вас есть датасет раздела в котором есть колонка с BLOB полем в нем уже загружены фотографии, по кнопке в разделе вы хотите отображать данное фото в карточке редактирования этого же раздела?
По поводу ошибки, проверьте, пожалуйста значение полей DataFieldName и DatasetLink в ImageDataControl
Также просьба ознакомится с инструкцией Добавление фото в карточку продукта.doc
Большое спасибо за инструкцию!
проверила ImageDataControl, даже удалила его, ошибка все равно остается
задача следующая. В папку будет сохранятся фото (их будет много) с определенным именем. Это имя соответствует полю R_ID из моей табл. При нажатии кнопки нужно подгрузить и посмотреть это фото.
Т.е. В разделе идет перечень контактов с определенными данными, пользователь выбирает контакт, нажимает кнопку и просматривает соответствующее фото.
Предлагаю вам еще один вариант реализации. Почему бы не хранить фото в БД в BLOB поле, зачем подгружать фото с физического пути который может поменяться ?
Дело в том что фото надо подгружать не в ручную. При появлении новой записи в таблице, появляется новая фото в определенной папке и это фото мне надо предоставить в террасофте.
Каждый день будет появляться около 100 новых фотографий. Мне кажется что лучше подгружать в систему по 1 фото в случае необходимости, а не все сразу. Или есть более приемлемый вариант?
Если есть поле уникально соответствия, по которому можно связать фото с контактом в Terrasoft, к примеру поле ФИО то возможно разумнее создать job в SQL Server который бы каждый день подгружал фото людей по условию и вставлял их в соответствующую колонку.
В таком случае придется сделать обновление каждые 10-15 мин. Каждый день поступает 100-120 фото, не будет ли система тормозить из-за такого?
к тому же из этих 100 фото просмотренных ,я уверена, будет 2-3, поэтому мне кажется, проще подгружать фото для тех записей, которые хочет увидеть пользователь.
Фотографии пользователей находятся на диске до внесения их в TS ? Если да, то можно создать триггер и на событие insert проверять есть ли фотография в папке, и если есть вставлять ее в поле Photo таблицы tbl_Contact
фото появляется после новой записи в этой таблице (на стороне firebird)
http://www.community.terrasoft.ru/forum/topic/6843
тогда получится что триггер будет срабатывать на каждое выполнение job
Триггер будет срабатывать на каждую запись в таблицу, т.е если в job вы сделали insert на 100 записей, триггер отработает 100 раз
Примерно триггер должен выглядеть следующим образом
CREATE TRIGGER tr_tbl_Contact_photo ON tbl_Contact AFTER INSERT AS BEGIN DECLARE @SQL VARCHAR(2500) SET NOCOUNT ON; DECLARE @Cname VARCHAR(250); DECLARE @CID VARCHAR(250); SELECT @Cname = Name FROM inserted; set @Cname = 'C:\'+@Cname+'.jpg'; SELECT @CID = Name FROM inserted; --Name set @SQL = ' update tbl_contact set Photo =( select BulkColumn from Openrowset (Bulk '''+@Cname+''', Single_Blob) as ContactPhoto ) where tbl_contact.Name = '''+@CID+''' ' EXECUTE (@SQL); set @Cname=''; END GO
но тут следует доработать проверку на наличие файла с фотографией, имя фотографии должно точно совпадать. Также в перспективе необходимо сделать более лучшую проверку на условие where (переписать с условием по ID)
Продолжение темы http://www.community.terrasoft.ru/forum/topic/7218