Отображение фотографий.

Версия 3.0.2.244
Может ли грид отображать фотографии? Если нет, то как их можно отобразить?

Нравится

3 комментария

Отобразить содержимое 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';
        }
}

Вот как-то так. Т.е. это реализуемо. Но согласен с Натальей, что лучше это вынести в карточку редактирования или, в крайнем случае, в отдельную деталь, чтобы не грузить систему загрузкой фото при прорисовке грида.

Всем спасибо.
S.Kalishenko, как идея это вариант...

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