Версия 3.0.2.244
Может ли грид отображать фотографии? Если нет, то как их можно отобразить?
Нравится
Отобразить содержимое BLOB поля в реестре записей раздела не получится. Реализовать отображения фотографий можно:
1. В карточке редактирования.
Для этого добавить в таблицу, запрос и датасет поле Photo с типом "Большой бинарный объект", в котором будет храниться фотография. В окно карточки редактирования поместить ImageDataControl и связать его с полем датасета Photo. Осуществить возможность загрузки фотографии из файла в поле данных:
var FileName = GetNewValue(); if (System.OpenDialog(FileName, '', '', '', '')) { // Показ диалога выбора файла Dataset.DataFields('Photo').LoadFromFile(FileName.Value); // Загрузка фотографии из файла в поле данных
2. На детали менеджера деталей раздела.
С алгоритмом добавления детали для отображения фотографии Вы можете ознакомиться в вложенном документе.
Ну, я бы не был столь категоричен. Вывести в реестр фото можно. Просто и в плане реализации это будет не очень красиво, да и выглядеть это, возможно, будет не ахти как (как Вы себе представляете вывод и фотографий в разных разрешениях вместе с текстом?). В принципе, грид позволяет выводить то, что есть в соотв. ImageList-е. Это было реализовано для вывода иконок в первой колонке грида. Увидеть Вы это можете, например, в Задачах для циклических задач.
Для реализации Вашей задачи шаги могут быть следующие:
1. Создаете сервис типа ImageList и набрасываете в него Ваши фотографии.
2. У грида в свойстве ImageList указываете Ваш сервис из п.1.
3. Включаете у грида свойство HasCustomCellDraw.
4. В методе grdDataOnGetRowDrawInfo (у того же грида) прописываете код, который по какому-то условию будет выводить ту или иную фотографию из Вашего ImageList-а.
Код будет вида:
function grdDataOnGetRowDrawInfo(DataGrid, Color, TextColor, ImageName, Font) { if (!BaseGridArea.GridDataset) { return; } var MyCondition = (Какое_то_условие); if (MyCondition) { ImageName.Value = 'Some_PhotoName_In_ImageList'; } }
Вот как-то так. Т.е. это реализуемо. Но согласен с Натальей, что лучше это вынести в карточку редактирования или, в крайнем случае, в отдельную деталь, чтобы не грузить систему загрузкой фото при прорисовке грида.