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».
См. также: