Código para ejecutar un fichero CrystalReport 8.5 y una pregunta.

05/08/2003 - 11:05 por Juan Carlos Vázquez Bohabén | Informe spam
El objeto Report del antiguo ActiveX tenía una propiedad que era
"SQLQueryString" a la cual se le asignaba una sentencia select (cadena) y el
report se generaba con los datos que seleccionaba esa sentencia. El objeto
ReportDocument de .net no trae esa propiedad. ¿Como puedo solucionar esto?.


public void GenerarReports(string nomReport, string nomListado)
{
//Representa un informe y contiene las propiedades y los métodos para
definir,
//dar formato, cargar, exportar e imprimir el informe.
ReportDocument crReportDocument = new ReportDocument();
//Cargar el fichero de report *.rpt
crReportDocument.Load(nomReport);
//Proporciona propiedades para la recuperación y configuración de opciones
de exportación del informe.
ExportOptions crExportOptions;
//Proporciona propiedades para la recuperación y configuración del nombre de
archivo al exportar al disco.
DiskFileDestinationOptions crDiskFileDestinationOptions = new
DiskFileDestinationOptions();
crExportOptions = crReportDocument.ExportOptions;
crDiskFileDestinationOptions.DiskFileName = nomListado;
crReportDocument.ExportOptions.ExportDestinationType ExportDestinationType.DiskFile;
//Genera un archivo PDF
crReportDocument.ExportOptions.ExportFormatType ExportFormatType.PortableDocFormat;
crReportDocument.ExportOptions.DestinationOptions crDiskFileDestinationOptions;
try
{
crReportDocument.Export();
}
catch (LogOnException engEx)
{
MessageBox.Show("Los parámetros de inicio de sesión son incorrectos.
Compruebe su nombre de usuario y contraseña." + engEx.Message);
}
catch (DataSourceException engEx)
{
MessageBox.Show("Error al conectarse a la base de datos. " + engEx.Message);
}
catch (EngineException engEx)
{
MessageBox.Show (engEx.Message);
}
finally
{
crReportDocument.Close();
}
}


Gracias y un saludo a Octavio por la anterior respuesta.
 

Leer las respuestas

#1 Octavio Hernández
05/08/2003 - 12:31 | Informe spam
Juan Carlos,

Cierto que esa propiedad no existe ahora. En la versión 9 los de Crystal
parece que han decidido "recortar nuestras libertades" un poco, porque en el
propio Crystal Reports la opción Base Datos | Mostrar Consulta SQL, que
siempre permitía "tocar" la consulta si lo querías (aunque me parece
recordar que te advertía que no tocaras las tablas ni los campos), ahora es
read-only y de verdad sólo la muestra. OJO: con CR9 *sí* se puede crear un
informe a partir de una consulta escrita por tí, pero no se puede modificar
esa consulta una vez creado el informe.

Así que parece que hay que limitarse a interactuar "indirectamente" con esa
consulta SQL a través de la fórmula de selección del informe, los parámetros
y alguna que otra cosilla (por ejemplo, a través de ReportOptions para
indicar la agrupación en el servidor). Según mi experiencia, no es una
limitación severa y en la mayoría de los casos ni siquiera es una limitación
cuando se desarrollan aplicaciones de gestión "tradicionales", pero si estás
desarrollando un generador de informes dinámicos o algo así eso sí podría
ser una limitación.

Saludos,

Octavio

"Juan Carlos Vázquez Bohabén" escribió en el
mensaje news:uz$
El objeto Report del antiguo ActiveX tenía una propiedad que era
"SQLQueryString" a la cual se le asignaba una sentencia select (cadena) y


el
report se generaba con los datos que seleccionaba esa sentencia. El objeto
ReportDocument de .net no trae esa propiedad. ¿Como puedo solucionar


esto?.

Preguntas similares