reports reportdocument examples ejemplo crystal c# sql .net crystal-reports

reportdocument - load report crystal reports c#



Extrayendo SQL de los archivos de Crystal Report (1)

Probablemente esto se deba a que el archivo de informe contiene un DataSet como origen y no como una consulta de SQL incorporado.

Probé el código con 2 archivos de informe, un archivo con consulta SQL incorporada y un archivo vinculado a un DataSet.

Las siguientes imágenes muestran el contenido de la ventana de QuickWatch para la table variables después de realizar la comparación ClassName .

Informe que contiene una consulta SQL como fuente

muestra ClassName = "CrystalReports.CommandTable"

Informe que contiene un DataSet como fuente

muestra ClassName = "CrystalReports.Table"

Estoy tratando de extraer el SQL seleccionado de los archivos .rpt de Crystal Report usando C # .net. Por eso, me refiero al SQL que verá cuando vaya a Database > Show SQL Query en el menú en Crystal Report. Seguí la solución de otra pregunta SO , pero parece que no estoy obteniendo el mismo resultado. Estoy usando este conjunto de código:

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") { //I will never reach here because table.ClassName is CrystalReports.Table string commandSql = table.CommandText; //TODO: do something with commandSql } } }

Por alguna razón, la variable de table dinámica en el bucle foreach es de tipo CrystalReports.Table lugar del tipo CrystalReports.CommandTable . Y entonces, no tengo acceso a la propiedad CommandText .

Lo más parecido al tipo de Table es que podría obtener los nombres de las tablas en el SQL del informe, pero no las columnas seleccionadas.

¿Cómo puedo extraer las columnas y tablas de las respectivas columnas del SQL en un archivo Crystal Report?

Estoy usando Crystal Report .NET SDK 13.0.9 para Visual Studio 2013.