Hier ist ein .NET-Beispiel von Code, der den Befehl Sql packt aus alle Crystal Reports in einem bestimmten Verzeichnis. Es erfordert der Kristall 2008 .NET SDK installiert werden (Sie eine Test von SAP herunterladen können):
foreach (string file in Directory.GetFiles("c:\\projects\\Reports", "*.rpt"))
{
Console.WriteLine(String.Format("Processing {0}...", file));
var doc = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
doc.Load(file);
foreach (dynamic table in doc.ReportClientDocument.DatabaseController.Database.Tables)
{
if (table.ClassName == "CrystalReports.CommandTable")
{
string commandSql = table.CommandText;
//TODO: do something with commandSql
}
}
}
die SQL zu erhalten, wie Kristall wäre es zu bauen, wenn ein Bericht ausgeführt wird, diesen Link sehen: SAP Note 1280515 - How to extract SQL query from Crystal reports using RAS sdk.
Ich glaube, um dies zu tun, müssen Sie die Berichtsparameterwerte angeben, damit Crystal eine Verbindung zur Datenbank herstellen kann, um das SQL zu erstellen. Da im Beispiel ein Report Viewer-Steuerelement verwendet wird, kann Crystal den Benutzer zur Eingabe der Parameter auffordern.
Ich bedauere, dass ich nur eine Abstimmung habe, um Ihnen zu geben. – quillbreaker