Zum Fußzeileninhalt springen
MIGRATIONSLEITFäDEN

Migrieren von SAP Crystal Reports zu IronPDF in C#

Migrieren Sie von SAP-Kristallberichtezu IronPDF: Vollständiger C#-Migrationsleitfaden

Die Migration von SAP-KristallberichtezuIronPDFverwandelt Ihren Berichtsworkflow von einer schwergewichtigen Legacy-Plattform mit komplexen Bereitstellungsanforderungen in ein modernes, schlankes NuGet-Paket. Dieser Leitfaden bietet einen vollständigen, schrittweisen Migrationspfad, der die massive Laufzeitinstallation von mehr als 500 MB überflüssig macht, die Bindung an das SAP-Ökosystem beseitigt und die vollständige Unterstützung von .NET Core/5/6/7/8+ ermöglicht.

Warum von SAP-KristallberichtezuIronPDFmigrieren

SAP-Kristallberichtekennenlernen

SAP Crystal Reports zeichnet sich im Unternehmensbereich als Werkzeug zur Erstellung dynamischer und "pixelgenauer" Berichte aus. SAP Crystal Reports, das für seine Fähigkeit bekannt ist, eine Vielzahl von Datenquellen anzuschließen, ist für viele Unternehmen, die umfassende Berichtsfunktionen benötigen, die Lösung der Wahl. Die Plattform bietet mit dem Crystal Reports Designer, einem Tool, das die Erstellung komplexer Berichtslayouts vereinfacht, eine unübertroffene Leistung.

Da sich die Technologie jedoch weiterentwickelt hat, kann die starke Abhängigkeit von SAP-Kristallberichtevom SAP-Framework und seine anspruchsvollen Installations- und Bereitstellungsanforderungen nicht unbemerkt bleiben. Da es sich um eine schwergewichtige Software handelt, benötigen Unternehmen oft erhebliche Ressourcen und Zeit, um das System vollständig zu implementieren und zu pflegen.

Wichtige Gründe für die Migration

  1. Massive Installation: Crystal Reports Runtime ist mehr als 500 MB groß und erfordert eine komplexe Installation
  2. SAP Ecosystem Lock-in: Gebunden an die Preisgestaltung, die Support-Zyklen und die Produkt-Roadmap von SAP
  3. Komplexe Lizenzierung: Pro-Prozessor/pro-Benutzer-Lizenzierung mit dem SAP-Unternehmensverkaufsprozess
  4. Legacy Architecture: 32-Bit-COM-Abhängigkeiten, die moderne 64-Bit-Implementierungen erschweren
  5. Veraltete Unterstützung für .NET Core: Eingeschränkte Unterstützung für moderne .NET-Plattformen
  6. Abhängigkeit von Report Designer: Erfordert Visual Studio-Erweiterungen oder Standalone-Designer
  7. Schwache Leistung: Starke Laufzeitinitialisierung und großer Speicherbedarf

Die versteckten Kosten von SAP Crystal Reports

Kostenfaktor SAP-Kristallberichte IronPDF
Laufzeit Größe 500MB+ ~20 MB
Installation Komplexes MSI/Setup NuGet-Paket
Bereitstellung Spezielle Installationsprogramme xcopy
64-Bit-Unterstützung Problematisch Native
.NET Core/5/6/7/8 Beschränkt Volle Unterstützung
Cloud-Bereitstellung Schwierig Einfach
Linux/Docker Nein Ja

Vergleich zwischen SAP-Kristallberichteund IronPDF

Feature SAP-Kristallberichte IronPDF
Hauptfunktionalität Plattform für Unternehmensberichte HTML-zu-PDF-Konvertierungsmodul und PDF-Bearbeitung
Integration Am besten innerhalb des SAP-Ökosystems Moderne .NET-Integration, leichtgewichtiges NuGet-Paket
Benutzerfreundlichkeit Komplexe Einrichtung und Bereitstellung Vereinfachte Integration, unterstützt .NET-Entwickler
Berichtsdesigner Erforderlich Fakultativ (HTML/CSS)
Vorlage Format .rpt (binär) HTML/CSS
HTML zu PDF Nein Vollständiges Chromium
URL zu PDF Nein Ja
CSS-Unterstützung Nein Vollständig CSS3
JavaScript Nein Vollständiger ES2024
PDF-Bearbeitung Nein Vollständig (zusammenführen, aufteilen, bearbeiten)
Digitale Signaturen Nein Ja
PDF/A-Konformität Nein Ja
Moderne Relevanz Rückläufig, ersetzt durch moderne Alternativen Modern, gut integriert mit zeitgenössischen Technologien

Für Teams, die die Einführung von .NET 10 und C# 14 bis 2025 und 2026 planen, bietetIronPDFeine native plattformübergreifende Unterstützung, die SAP-Kristallberichtenicht bieten kann.


Bevor Sie beginnen

Voraussetzungen

  1. .NET-Umgebung: .NET Framework4.6.2+ oder .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. NuGet Access: Fähigkeit, NuGet-Pakete zu installieren
  3. IronPDF Lizenz: Beziehen Sie Ihren Lizenzschlüssel von ironPdf.com

NuGet-Paketänderungen

# Remove Crystal Reports packages
dotnet remove package CrystalDecisions.CrystalReports.Engine
dotnet remove package CrystalDecisions.Shared
dotnet remove package CrystalDecisions.ReportAppServer
dotnet remove package CrystalDecisions.Web

# Remove legacy assemblies from project references
# Check for: CrystalDecisions.*.dll in project references

# Install IronPDF
dotnet add package IronPdf
# Remove Crystal Reports packages
dotnet remove package CrystalDecisions.CrystalReports.Engine
dotnet remove package CrystalDecisions.Shared
dotnet remove package CrystalDecisions.ReportAppServer
dotnet remove package CrystalDecisions.Web

# Remove legacy assemblies from project references
# Check for: CrystalDecisions.*.dll in project references

# Install IronPDF
dotnet add package IronPdf
SHELL

Lizenz-Konfiguration

// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Komplette API-Referenz

Namensraumänderungen

// Before: SAP Crystal Reports
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using CrystalDecisions.ReportAppServer;

// After: IronPDF
using IronPdf;
// Before: SAP Crystal Reports
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using CrystalDecisions.ReportAppServer;

// After: IronPDF
using IronPdf;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Kern-API-Zuordnungen

SAP-Kristallberichte IronPDF Notizen
BerichtDokument ChromePdfRenderer Kern-Rendering
ReportDocument.Load() RenderHtmlAsPdf() Inhalt laden
.rpt-Dateien HTML/CSS-Vorlagen Format der Vorlage
SetDataSource() HTML mit Daten Datenbindung
SetParameterValue() String-Interpolation Parameter
ExportToDisk() pdf.SaveAs() Datei speichern
ExportToStream() pdf.BinaryData Bytes erhalten
PrintToPrinter() pdf.Print() Drucken
Datenbank.Tabellen C# Datenzugriff Datenquelle
FormelFeldBestimmungen C#-Logik Berechnungen
ZusammenfassungInfo pdf.MetaData PDF-Metadaten
ExportFormatType.PortableDocFormat Standard-Ausgabe PDF nativ

Beispiele für die Code-Migration

Beispiel 1: Konvertierung von HTML in PDF

Vor (SAP Crystal Reports):

// NuGet: Install-Package CrystalReports.Engine
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System;

class Program
{
    static void Main()
    {
        // Crystal Reports requires a .rpt file template
        ReportDocument reportDocument = new ReportDocument();
        reportDocument.Load("Report.rpt");

        // Crystal Reports doesn't directly support HTML
        // You need to bind data to the report template
        // reportDocument.SetDataSource(dataSet);

        ExportOptions exportOptions = reportDocument.ExportOptions;
        exportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
        exportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;

        DiskFileDestinationOptions diskOptions = new DiskFileDestinationOptions();
        diskOptions.DiskFileName = "output.pdf";
        exportOptions.DestinationOptions = diskOptions;

        reportDocument.Export();
        reportDocument.Close();
        reportDocument.Dispose();
    }
}
// NuGet: Install-Package CrystalReports.Engine
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System;

class Program
{
    static void Main()
    {
        // Crystal Reports requires a .rpt file template
        ReportDocument reportDocument = new ReportDocument();
        reportDocument.Load("Report.rpt");

        // Crystal Reports doesn't directly support HTML
        // You need to bind data to the report template
        // reportDocument.SetDataSource(dataSet);

        ExportOptions exportOptions = reportDocument.ExportOptions;
        exportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
        exportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;

        DiskFileDestinationOptions diskOptions = new DiskFileDestinationOptions();
        diskOptions.DiskFileName = "output.pdf";
        exportOptions.DestinationOptions = diskOptions;

        reportDocument.Export();
        reportDocument.Close();
        reportDocument.Dispose();
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Nach (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        // Create a PDF from HTML string
        var renderer = new ChromePdfRenderer();

        string htmlContent = "<h1>Hello World</h1><p>This is a PDF generated from HTML.</p>";

        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");

        Console.WriteLine("PDF created successfully!");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        // Create a PDF from HTML string
        var renderer = new ChromePdfRenderer();

        string htmlContent = "<h1>Hello World</h1><p>This is a PDF generated from HTML.</p>";

        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");

        Console.WriteLine("PDF created successfully!");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Dieses Beispiel verdeutlicht den grundlegenden Paradigmenunterschied. SAP-Kristallberichteerfordert eine vorgefertigte .rpt-Dateivorlage, die mit dem Crystal Reports Designer erstellt wurde. Anschließend müssen Sie ExportOptions, ExportDestinationType, ExportFormatType und DiskFileDestinationOptions konfigurieren. Die Bibliothek unterstützt keine direkten HTML-Inhalte - Sie müssen Daten an die Berichtsvorlage binden.

IronPDF akzeptiert HTML-Strings direkt: Erstellen Sie einen ChromePdfRenderer, rufen Sie RenderHtmlAsPdf()mit einem beliebigen HTML-Inhalt auf, und SaveAs(). Kein Designer erforderlich, keine binären Vorlagen, keine komplexe Exportkonfiguration. Umfassende Beispiele finden Sie in der HTML to PDF Dokumentation.

Beispiel 2: Konvertierung von URL in PDF

Vor (SAP Crystal Reports):

// NuGet: Install-Package CrystalReports.Engine
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System;
using System.Net;

class Program
{
    static void Main()
    {
        // Crystal Reports cannot directly convert URLs to PDF
        // You need to create a report template first

        // Download HTML content
        WebClient client = new WebClient();
        string htmlContent = client.DownloadString("https://example.com");

        // Crystal Reports requires .rpt template and data binding
        // This approach is not straightforward for URL conversion
        ReportDocument reportDocument = new ReportDocument();
        reportDocument.Load("WebReport.rpt");

        // Manual data extraction and binding required
        // reportDocument.SetDataSource(extractedData);

        reportDocument.ExportToDisk(ExportFormatType.PortableDocFormat, "output.pdf");
        reportDocument.Close();
        reportDocument.Dispose();
    }
}
// NuGet: Install-Package CrystalReports.Engine
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System;
using System.Net;

class Program
{
    static void Main()
    {
        // Crystal Reports cannot directly convert URLs to PDF
        // You need to create a report template first

        // Download HTML content
        WebClient client = new WebClient();
        string htmlContent = client.DownloadString("https://example.com");

        // Crystal Reports requires .rpt template and data binding
        // This approach is not straightforward for URL conversion
        ReportDocument reportDocument = new ReportDocument();
        reportDocument.Load("WebReport.rpt");

        // Manual data extraction and binding required
        // reportDocument.SetDataSource(extractedData);

        reportDocument.ExportToDisk(ExportFormatType.PortableDocFormat, "output.pdf");
        reportDocument.Close();
        reportDocument.Dispose();
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Nach (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        // Create a PDF from a URL
        var renderer = new ChromePdfRenderer();

        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.SaveAs("output.pdf");

        Console.WriteLine("PDF created from URL successfully!");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        // Create a PDF from a URL
        var renderer = new ChromePdfRenderer();

        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.SaveAs("output.pdf");

        Console.WriteLine("PDF created from URL successfully!");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

SAP Crystal Reports kann URLs nicht direkt in PDF konvertieren. Sie müssten den HTML-Inhalt manuell mit WebClient herunterladen und diese Daten dann irgendwie extrahieren und in eine vorgefertigte .rpt-Vorlage einbinden - ein Prozess, der nicht einfach ist und viel manuelle Arbeit erfordert.

Die Methode RenderUrlAsPdf() vonIronPDFerfasst die vollständig gerenderte Webseite mit allen CSS, JavaScriptund Bildern in einem einzigen Aufruf. Erfahren Sie mehr in unseren Tutorials.

Beispiel 3: Kopf- und Fußzeilen mit Seitenzahlen

Vor (SAP Crystal Reports):

// NuGet: Install-Package CrystalReports.Engine
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System;

class Program
{
    static void Main()
    {
        // Crystal Reports requires design-time configuration
        ReportDocument reportDocument = new ReportDocument();
        reportDocument.Load("Report.rpt");

        // Headers and footers must be designed in the .rpt file
        // using Crystal Reports designer
        // You can set parameter values programmatically
        reportDocument.SetParameterValue("HeaderText", "Company Name");
        reportDocument.SetParameterValue("FooterText", "Page ");

        // Crystal Reports handles page numbers through formula fields
        // configured in the designer

        reportDocument.ExportToDisk(ExportFormatType.PortableDocFormat, "output.pdf");
        reportDocument.Close();
        reportDocument.Dispose();
    }
}
// NuGet: Install-Package CrystalReports.Engine
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System;

class Program
{
    static void Main()
    {
        // Crystal Reports requires design-time configuration
        ReportDocument reportDocument = new ReportDocument();
        reportDocument.Load("Report.rpt");

        // Headers and footers must be designed in the .rpt file
        // using Crystal Reports designer
        // You can set parameter values programmatically
        reportDocument.SetParameterValue("HeaderText", "Company Name");
        reportDocument.SetParameterValue("FooterText", "Page ");

        // Crystal Reports handles page numbers through formula fields
        // configured in the designer

        reportDocument.ExportToDisk(ExportFormatType.PortableDocFormat, "output.pdf");
        reportDocument.Close();
        reportDocument.Dispose();
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Nach (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        // Configure headers and footers
        renderer.RenderingOptions.TextHeader.CenterText = "Company Name";
        renderer.RenderingOptions.TextHeader.FontSize = 12;

        renderer.RenderingOptions.TextFooter.LeftText = "Confidential";
        renderer.RenderingOptions.TextFooter.RightText = "Page {page} of {total-pages}";
        renderer.RenderingOptions.TextFooter.FontSize = 10;

        string htmlContent = "<h1>Document Title</h1><p>Document content goes here.</p>";

        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");

        Console.WriteLine("PDF with headers and footers created!");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        // Configure headers and footers
        renderer.RenderingOptions.TextHeader.CenterText = "Company Name";
        renderer.RenderingOptions.TextHeader.FontSize = 12;

        renderer.RenderingOptions.TextFooter.LeftText = "Confidential";
        renderer.RenderingOptions.TextFooter.RightText = "Page {page} of {total-pages}";
        renderer.RenderingOptions.TextFooter.FontSize = 10;

        string htmlContent = "<h1>Document Title</h1><p>Document content goes here.</p>";

        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");

        Console.WriteLine("PDF with headers and footers created!");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

SAP Crystal Reports erfordert die Konfiguration von Kopf- und Fußzeilen während der Entwurfszeit. Sie müssen sie in der .rpt-Datei mit dem Crystal Reports Designer entwerfen und dann Parameterwerte wie "HeaderText" und "FooterText" zur Laufzeit übergeben. Seitenzahlen müssen über Formelfelder im Designer konfiguriert werden.

IronPDF bietet eine programmatische Konfiguration von Kopf- und Fußzeilen mit den Eigenschaften TextHeader und TextFooter. Setzen Sie CenterText, LeftText, RightText, und FontSize direkt im Code. Für die Seitenzahlen werden die Platzhalter {Seite} und {Gesamtseiten} verwendet - kein Designer erforderlich.


Gängige Probleme bei der Migration

Aufgabe 1: Konvertierung von .rpt-Dateien

SAP Crystal Reports: Binäre .rpt-Dateien mit eingebettetem Layout, Daten und Formeln.

Lösung: Kann nicht direkt konvertiert werden - muss als HTML neu erstellt werden:

  1. .rpt im Crystal Reports Designer öffnen
  2. Dokumentlayout, Schriftarten, Farben
  3. Alle Formelfelder beachten
  4. Neu erstellen in HTML/CSS
  5. Formeln in C#-Code umwandeln

Ausgabe 2: Datenbank-Verbindungen

SAP Crystal Reports: Eingebettete Verbindungszeichenfolgen und ODBC.

Lösung: Verwenden Sie die Datenschicht Ihrer Anwendung:

// Instead of Crystal's database integration
var data = await _dbContext.Orders
    .Where(o => o.Date >= startDate && o.Date <= endDate)
    .ToListAsync();

// Bind to HTML template
var html = GenerateReportHtml(data);
// Instead of Crystal's database integration
var data = await _dbContext.Orders
    .Where(o => o.Date >= startDate && o.Date <= endDate)
    .ToListAsync();

// Bind to HTML template
var html = GenerateReportHtml(data);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Ausgabe 3: Laufzeit-Abhängigkeiten

SAP Crystal Reports: Erfordert die Installationvon Crystal Reports Runtime (500MB+).

Lösung:IronPDFist in sich geschlossen:

# Just add the NuGetpackage
dotnet add package IronPdf
# That's it - no additional installs needed
# Just add the NuGetpackage
dotnet add package IronPdf
# That's it - no additional installs needed
SHELL

Ausgabe 4: 32-Bit/64-Bit-Probleme

SAP Crystal Reports: COM-Abhängigkeiten erfordern häufig den 32-Bit-Modus.

Lösung:IronPDFist ein natives 64-Bit-System, das keine spezielle Konfiguration erfordert.


Neue Funktionen nach der Migration

Nach der Migration aufIronPDFerhalten Sie Funktionen, die SAP-Kristallberichtenicht bieten kann:

PDF-Zusammenführung

var pdf1 = PdfDocument.FromFile("report1.pdf");
var pdf2 = PdfDocument.FromFile("report2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("complete_report.pdf");
var pdf1 = PdfDocument.FromFile("report1.pdf");
var pdf2 = PdfDocument.FromFile("report2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("complete_report.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDF-Sicherheit

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(reportHtml);

pdf.MetaData.Title = "Quarterly Sales Report";
pdf.MetaData.Author = "Finance Department";

pdf.SecuritySettings.OwnerPassword = "admin123";
pdf.SecuritySettings.UserPassword = "view123";
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;

pdf.SaveAs("secure_report.pdf");
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(reportHtml);

pdf.MetaData.Title = "Quarterly Sales Report";
pdf.MetaData.Author = "Finance Department";

pdf.SecuritySettings.OwnerPassword = "admin123";
pdf.SecuritySettings.UserPassword = "view123";
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;

pdf.SaveAs("secure_report.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Digitale Signaturen

var signature = new PdfSignature("certificate.pfx", "password");
pdf.Sign(signature);
var signature = new PdfSignature("certificate.pfx", "password");
pdf.Sign(signature);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Wasserzeichen

pdf.ApplyWatermark("<h1 style='color:red; opacity:0.3;'>DRAFT</h1>");
pdf.ApplyWatermark("<h1 style='color:red; opacity:0.3;'>DRAFT</h1>");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Zusammenfassung des Funktionsvergleichs

Feature SAP-Kristallberichte IronPDF
Installation
Laufzeit Größe 500MB+ ~20 MB
Installationsmethode MSI/Setup.exe NuGet
Bereitstellung Komplex xcopy
Windows, Linux, macOS, Docker, Azure, AWS.
.NET Framework Ja Ja
.NET Core/5/6/7/8 Beschränkt Voll
64-Bit-Nativ Problematisch Ja
Linux/Docker Nein Ja
Azure/AWS Schwierig Einfach
Entwicklung
Berichtsdesigner Erforderlich Fakultativ (HTML)
Format der Vorlage .rpt (binär) HTML/CSS
Lernkurve Crystal-Syntax Web-Standards
IntelliSense Nein Vollständiges C#
Rendering
HTML zu PDF Nein Vollständiges Chromium
URL zu PDF Nein Ja
CSS-Unterstützung Nein Vollständig CSS3
JavaScript Nein Vollständiger ES2024
PDF-Funktionen
PDFs zusammenführen Nein Ja
PDFs teilen Nein Ja
Wasserzeichen Beschränkt Vollständiges HTML
Digitale Signaturen Nein Ja
PDF/A Nein Ja

Migrations-Checkliste

Vor der Migration

  • [Inventarisierung aller .rpt-Dateien
  • [Screenshot jedes Berichtslayouts als Referenz
  • [Formelfelder und Berechnungen dokumentieren
  • [Alle Datenquellen und Parameter auflisten
  • [Identifizieren Sie die Druckanforderungen
  • [Den IronPDF-Lizenzschlüssel erhalten Sie von ironpdf.com

Code-Aktualisierungen

  • [Crystal Reports-Pakete entfernen (CrystalDecisions.CrystalReports.Engine, etc.)
  • [Laufzeitinstallation aus der Bereitstellung entfernen
  • [Installieren Sie das NuGet-Paket IronPdf
  • [Konvertieren von .rpt-Layouts in HTML/CSS-Vorlagen
  • [Crystal-Formeln in C#-Code konvertieren
  • [Aktualisierung der Datenbindung von SetDataSource()auf HTML-String-Interpolation
  • [Aktualisieren des Druckcodes von PrintToPrinter()zu pdf.Print()
  • [Lizenzinitialisierung beim Starten der Anwendung hinzufügen

Infrastruktur

  • [Crystal Runtime von Servern entfernen
  • [Aktualisieren von Deployment-Skripten
  • [32-Bit-Kompatibilitätsmodus entfernen
  • [Docker-Images aktualisieren (falls zutreffend)

Testing

  • [PDF-Ausgabe mit Originalberichten vergleichen
  • [Überprüfen Sie alle Berechnungen
  • [Testen Sie alle Parameter
  • [Druckfunktionalität testen
  • [Leistungstests
  • [64-Bit-Tests

Abschluss

SAP Crystal Reports ist zwar nach wie vor eine robuste Plattform für die Erstellung von Unternehmensberichten, aber aufgrund seiner mangelnden modernen Flexibilität ist es für dynamische, zukunftsorientierte Unternehmen oft weniger attraktiv. Die Laufzeit der Plattform von mehr als 500 MB, die komplexe Bereitstellung und die begrenzte Unterstützung von .NET Core verursachen einen erheblichen Wartungsaufwand.

Die wichtigsten Änderungen bei dieser Migration sind:

  1. Architektur: Schwergewichtige Unternehmensplattform → Leichtgewichtiges NuGet-Paket
  2. Größe: 500MB+Laufzeit → ~20MB
  3. Vorlagen: Binäre .rpt-Dateien → HTML/CSS
  4. Designer: Erforderlich Crystal Reports Designer → Optional (verwenden Sie einen beliebigen HTML-Editor)
  5. Datenbindung: SetDataSource()→ C# String-Interpolation
  6. Parameter: SetParameterValue()→ Standard C# Variablen
  7. Export: Komplexe ExportOptions → Einfache pdf.SaveAs()
  8. Kopf-/Fußzeilen: Konfiguration zur Entwurfszeit → Laufzeit TextHeader/TextFooter
  9. Seitenzahlen: Formelfelder → {page} und {total-pages} Platzhalter
  10. Plattform: Eingeschränktes .NET Core → Volle plattformübergreifende Unterstützung
  11. Neue Funktionen: PDF-Zusammenführung, Aufteilung, Sicherheit, digitale Signaturen, PDF/A

Die Entscheidung zwischen SAP-KristallberichteundIronPDFhängt weitgehend von der Struktur und den Zukunftsplänen des Unternehmens ab. Für Unternehmen, die stark in das SAP-Ökosystem eingebunden sind und umfassende Berichtsfunktionen benötigen, ist SAP-Kristallberichteunübertroffen. Unternehmen, die webbasierte Initiativen mit .NET starten und eine optimierte PDF-Konvertierungs-Engine suchen, werdenIronPDFals äußerst vorteilhaft empfinden.

Entdecken Sie die vollständige IronPDF-Dokumentation, Tutorials und API-Referenz, um Ihre Migration auf SAP-Kristallberichtezu beschleunigen.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen