Aquí está un ejemplo .Net de código que agarra el comando SQL de todos los Crystal Reports en un directorio determinado. Se requiere que el cristal 2008 .Net SDK para ser instalado (se puede descargar una prueba de SAP):
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
}
}
}
Para obtener el SQL como Crystal construiría que cuando se ejecuta un informe, véase este enlace: SAP Note 1280515 - How to extract SQL query from Crystal reports using RAS sdk.
Creo que para esto, debe proporcionar los valores del parámetro de informe para que Crystal se pueda conectar a la base de datos para construir el SQL. En el ejemplo, dado que se utiliza un control del Visor de informes, Crystal puede solicitar al usuario los parámetros.
Lamento tener solo una votación para darte. – quillbreaker