PasteFromStreamEx(
SrcStream: IIOStream;
PasteMode: TabPasteMode;
[SkipEmptyCells: Boolean = False;]
[Transpose: Boolean = False]);
PasteFromStreamEx(
SrcStream: System.IO.Stream;
PasteMode: Prognoz.Platform.Interop.Tab.TabPasteMode;
SkipEmptyCells: Boolean;
Transpose: Boolean);
SrcStream. Поток, из которого осуществляется вставка данных.
PasteMode. Режим вставки.
SkipEmptyCells. Признак пропуска ячеек с пустыми значениями.
Transpose. Признак необходимости транспонировать данные при вставке.
Метод PasteFromStreamEx вставляет в текущий диапазон данные из указанного потока в соответствии с заданными параметрами вставки.
Перед выполнением метода курсор в потоке должен быть установлен в начальную позицию: IIOStream.Position=0. Данные в поток должны быть скопированы с помощью метода ITabRange.CopyToStream.
Если вставляемые данные содержат ячейки с пустым значением и параметру SkipEmptyCells установлено значение True, то для этих ячеек не будут вставлены формулы, оформление, комментарии.
Используется только в настольном приложении.
Для выполнения примера предполагается наличие в репозитории формы, расположенных на ней двух кнопок с наименованиями «Button1» и «Button2», компонента UiTabSheet с наименованием «UiTabSheet1» и каких-либо визуальных компонентов, для которых «UiTabSheet1» установлен в качестве источника данных.
Class TESTForm: Form
UiTabSheet1: UiTabSheet;
TabSheetBox1: TabSheetBox;
Button1: Button;
Button2: Button;
MStream: IMemoryStream;
TSheet: ITabSheet;
Sub TESTFormOnCreate(Sender: Object; Args: IEventArgs);
Begin
TSheet := UiTabSheet1.TabSheet;
MStream := New MemoryStream.Create;
End Sub TESTFormOnCreate;
Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Begin
MStream.Clear;
TSheet.View.Selection.Range.CopyToStream(MStream);
End Sub Button1OnClick;
Sub Button2OnClick(Sender: Object; Args: IMouseEventArgs);
Begin
If MStream.Size > 0 Then
MStream.Position := 0;
TSheet.View.Selection.Range.PasteFromStreamEx(MStream, TabPasteMode.Values, True, True);
End If;
End Sub Button2OnClick;
End Class TESTForm;
При запуске формы будет инициализирован поток в памяти, который будет использоваться для обмена данными. При нажатии на кнопку «Button1» в поток будут скопированы данные выделенного в текущий момент диапазона таблицы. При нажатии на кнопку «Button2» в текущий выделенный диапазон осуществляется специальная вставка: вставляются только значения диапазона, диапазон будет транспонирован, оформление, комментарии и формулы пустых ячеек пропускаются.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore. Вместо компонентов Fore используйте их Fore.NET аналоги.
Imports Prognoz.Platform.Interop.Tab;
Public Partial Class TESTForm: Prognoz.Platform.Forms.Net.ForeNetForm
Public Constructor TESTForm();
Begin
InitializeComponent();
End Constructor;
TSheet: TabSheet;
MStream: System.IO.MemoryStream = New System.IO.MemoryStream();
Private Sub TESTForm_Activated(sender: System.Object; e: System.EventArgs);
Var
TStyle: ITabTableStyle;
Begin
TSheet := uiTabSheetNet1.TabSheetUi.TabSheet;
End Sub;
Private Sub button1_Click(sender: System.Object; e: System.EventArgs);
Begin
MStream.SetLength(0);
TSheet.View.Selection.Range.CopyToStream(MStream);
End Sub;
Private Sub button2_Click(sender: System.Object; e: System.EventArgs);
Begin
If MStream.Length > 0 Then
MStream.Position := 0;
TSheet.View.Selection.Range.PasteFromStreamEx(MStream, TabPasteMode.tpmValues, True, True);
End If;
End Sub;
End Class;
См. также: