IMetabaseObjectDescriptor.Screenshot

Синтаксис Fore

Screenshot(Type: ScreenshotType): Variant;

Синтаксис Fore.NET

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

Параметры

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

Описание

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

Комментарии

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

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

Пример Fore

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

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;

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

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore. Вместо компонентов Fore используйте их Fore.NET аналоги.

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

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;

См. также:

IMetabaseObjectDescriptor