In diesem Artikel erkunden wir die Integration von Stimulsoft-Tools in WinUI-Projekte.
WinUI – ist die Infrastruktur der Benutzeroberfläche (UI) für Windows-Desktop-Apps, einschließlich verwaltete Anwendungen, die C# und .NET verwenden, und eigene Anwendungen, die C++ mit Win32 API verwenden. WinUI 3 versichert eine konsequente, intuitiv verständliche und erhältliche Erfahrung mit der Verwendung von neuesten Vorlagen der Benutzeroberfläche. Es gibt keine spezielle Stimulsoft-Lösung für WinUI, aber man kann für Einbetten vom Reporting-Tool die Komponente Stimulsoft.Reports.Web.NetCore, und für Integration vom Datenanalytik-System – die Komponente Stimulsoft.Dashboards.Web.NetCore verwenden. Wichtig!

Der Report-Generator für .NET Core erlaubt die Berichte von beliebiger Komplexität – von standardmäßigen Rechnungen bis zu komplexen Dokumenten mit den Parametern, interaktiver Sortierung und Detaillierung zu erstellen. Aber, es gibt keine nativen visuellen Komponenten, Designer und Viewer, für WinUI-Framework, und die Komponenten aus den .NET-Core-Paketen funktionieren unvorhersehbar wegen einiger Besonderheiten des WinUI-Frameworks. Darum empfehlen wir nicht Viewer oder Designer in WinUI-Projekte einzubetten.
Gleichzeitig, kann der Bericht generiert und als Ergebnis des Exports angezeigt werden. Zum Beispiel, als PDF- oder HTML-Datei. Im Voraus soll das Paket SDK Windows App SDK C# Templates installiert werden. In Visual Studio befindet sich dieser SDK in der Kategorie .NET Desktop Development.

Schritt 1

Zuerst muss man ein neues Projekt WinUIBlank App, Packaged (WinUI 3 in Desktop) erstellen und initialisieren.

Schritt 2

Beim Erstellen von Blank App, Packaged (WinUI 3 in Desktop) enthält schon ein Demo-Projekt, in das wir unsere Tools integrieren werden. Als erstens, in dieses Demo-Projekt muss man das NuGet-Paket für Reporting-System – Stimulsoft.Reports.Web.NetCore oder, wenn man auch die Datenanalytik braucht, das Paket Stimulsoft.Dashboards.Web.NetCore installieren.

Schritt 3

Man muss die Berichtsdateien in die Projekte hinzufügen. Diese Dateien können die Vorlagen der Berichte und Dashboards (*.mrt, *.mrz, *.mrx) und auch die erstellten Berichte (*.mdc, *.mdz, *.mdx) enthalten. Zum Beispiel, fügen wir die Berichtsvorlage Invoice.mrt in den Ordner Assets hinzu. Beachten Sie!

Um die Datei verfügbar zu machen, legen Sie ihre Eigenschaft "Build Action" auf "Embedded resource" fest.

Schritt 4

Dann muss man in der Datei MainWindow.xaml die Auszeichnung für die WebView2-Anzeige hinzufügen:

MainWindow.xaml
<?xml version="1.0" encoding="utf-8"?>
<Window
       x:Class="App1.MainWindow"
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       xmlns:local="using:App1"
       xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
       xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
       mc:Ignorable="d"
       Title="App1">

        <Grid VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
                <Grid.RowDefinitions>
                        <RowDefinition Height="100" />
                        <RowDefinition Height="*" />
                </Grid.RowDefinitions>

                <Button x:Name="button" HorizontalAlignment="Center" VerticalAlignment="Center"
                       Content="Click To Show Report"
                       Click="Button_Click" />

                <WebView2 x:Name="webView" Grid.Row="1" />>

        </Grid>
</Window>

Schritt 5

In diesem Schritt muss man in die Datei MainWindow.xaml.cs den Code des Ladens und Anzeigens vom Bericht im WebView2 bei der Verarbeitung des Ereignisses "button click" hinzufügen:

MainWindow.xaml.cs
using System;
using System.IO;
using System.Reflection;
using Microsoft.UI.Xaml;
using Stimulsoft.Report;
using Stimulsoft.Report.Export;

// To learn more about WinUI, the WinUI project structure,
// and more about our project templates, see: http://aka.ms/winui-project-info.

namespace App1
{
        /// <summary>
        /// An empty window that can be used on its own or navigated to within a Frame.
        /// </summary>
        public sealed partial class MainWindow : Window
        {
                public MainWindow()
                {
                        this.InitializeComponent();
                }

                private async void Button_Click(object sender, RoutedEventArgs e)
                {
                        button.Content = "Clicked";

                        // Load the report
                        var report = new StiReport();

                        var reportStream = Assembly.GetExecutingAssembly().GetManifestResourceStream("App1.Assets.Christmas.mrt");

                        report.Load(reportStream);

                        // Export the report to PDF
                        report.Render();

                        using var pdfStream = new MemoryStream();

                        report.ExportDocument(StiExportFormat.Pdf, pdfStream, new StiPdfExportSettings());

                        var pdfString = Convert.ToBase64String(pdfStream.ToArray());

                        await webView.EnsureCoreWebView2Async();

                        // Display the PDF in a WebView2 control
                        webView.NavigateToString(
                                @$"<html><head></head><body><div><object type=""application/pdf"" width=""100%"" height=""100%"" data=""data:application/pdf;base64,{pdfString}""></object></div></body></html>");
                }
        }
}

Integration of Stimulsoft tools into WinUI projects

Also, beim Erstellen von Anwendungen Blank App, Packaged (WinUI 3 in Desktop) kann man die Reporting- und Datenanalytik-Systeme ohne Viewer und Designer der Berichte verwenden. Mehr über die Verwendung von .NET Core Stimulsoft kann man in der Dokumentation erfahren. Die Aktivierung von der Software Stimulsoft.Reports.Web.NetCore ist mit dem Abonnement Reports.WEB, und Stimulsoft.Dashboards.Web.NetCore – mit dem Abonnement Dashboards.WEB verfügbar. Im unseren Online-Shop kann man die komplexe Lösung für Reporting- und Analytik-Systeme unter verschiedenen Plattformen – das Abonnement Stimulsoft Ultimate einkaufen.
By using this website, you agree to the use of cookies for analytics and personalized content. Cookies store useful information on your computer to help us improve efficiency and usability. For more information, please read the privacy policy and cookie policy.