IMetabaseObjectDescriptor.Screenshot

Синтаксис

Screenshot(Type: ScreenshotType): Variant;

Screenshot[Type: Prognoz.Platform.Interop.Metabase.ScreenshotType]: Object;

Параметры

Type. Тип, в котором хранится изображение.

Описание

Свойство Screenshot определяет изображение, используемое при предварительном просмотре объекта в репозитории.

Комментарии

Под предварительным просмотром понимается представление объектов репозитория в виде огромных значков.

Для получения признака, поддерживается ли отображение объектов репозитория в виде огромных значков, используйте свойство IMetabase.IsScreenshotSupported.

При добавлении объектов репозитория в обновление по умолчанию их изображения предварительного просмотра в обновление не добавляются, так как не являются частью метаданных. Если в обновление требуется также включить изображение предварительного просмотра, то используйте свойство IMetabaseUpdateObjectNode.IncludeScreenshot.

Пример

Для выполнения примера предполагается наличие формы, расположенной на ней кнопки с наименованием «Button1» и компонент ImageBox с наименованием «ImageBox1». В репозитории должен быть создан регламентный отчет с идентификатором «REGULAR_REPORT» и включена возможность отображения объектов в виде огромных значков без учета прав доступа.

Добавьте ссылки на системные сборки: IO, Marshalers, Metabase.

Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
    MB: IMetabase;
    MDesc: IMetabaseObjectDescriptor;
    Scr: Variant;
    Stream: IIOStream;
Begin
    MB := MetabaseClass.Active;
    MDesc := MB.ItemById("REGULAR_REPORT");
    If MB.IsScreenshotSupported = True Then
        Scr := MDesc.Screenshot(ScreenshotType.Default_);
        If Not (Scr.IsNull) Then
            Stream := IOStream.FromVariant(Scr);
            ImageBox1.LoadImageFromStream(Stream);
        End If;
    Else
        Debug.WriteLine("Возможность отображения объектов в виде огромных значков недоступна.");
    End If;
End Sub Button1OnClick;

Imports Prognoz.Platform.Interop.ForeIO;
Imports Prognoz.Platform.Interop.Marshalers;

Private Sub button1_Click(sender: System.Object; e: System.EventArgs);
Var
    MB: IMetabase;
    MDesc: IMetabaseObjectDescriptor;
    Scr: Object;
    ImgStream: IIOStream;
    IOStrClass: IOStreamClass = New IOStreamClass();
    IOStreamMarsh: ForeIOStreamMarshaler = New ForeIOStreamMarshaler();
Begin
    MB := Self.Metabase;
    MDesc := MB.ItemById["REGULAR_REPORT"];
    If MB.IsScreenshotSupported = True Then
        Scr := MDesc.Screenshot[ScreenshotType.stDefault];
        If Scr <> Null Then
            ImgStream := IOStrClass.FromVariant(Scr);
            PictureBox1.Image := Image.FromStream(IOStreamMarsh.ForeToManaged(ImgStream));
        End If;
    Else
        System.Diagnostics.Debug.WriteLine("Возможность отображения объектов в виде огромных значков недоступна.");
    End If;
End Sub;

При нажатии на кнопку в компоненте «ImageBox1» будет размещено изображение для предварительного просмотра отчета с идентификатором «REGULAR_REPORT».

См. также:

IMetabaseObjectDescriptor