delphi crystal-reports

delphi - Vista previa de informes independientes a través de RDC/ActiveX Crystal Reports XI



crystal-reports (3)

No puedo decir nada sobre Delphi, pero en VB estamos usando CRViewer ActiveX Control. Usarlo es sencillo: pone el control del espectador en el formulario y le asigna un objeto RDC. Esto está cubierto en CR ayudar en alguna parte. (No puedo ver el código ATM para proporcionar ejemplos de trabajo).

Estoy portando una aplicación desde Crystal Reports 8 a Crystal Reports XI en Delphi 5, usando la interfaz RDC / ActiveX.

En Crystal Reports 8, pude mostrar la ventana predeterminada del visor del informe de informes de cristal para un informe como ese:

RptInvoicing.Destination := 0; // To: window RptInvoicing.Action := 1; // Execute

Sin embargo, esto no vuela con CR XI. Imprimiendo y exportando He descubierto que funciona así:

crReport.PrintOut(True); ... crReport.Export(True);

Pero no he podido encontrar nada relevante para mostrar la ventana de vista previa predeterminada. Intenté implementar el mío usando el componente del visor de informes, pero tiene muchos problemas, como el bloqueo al cambiar el tamaño, la congelación y los bloqueos, por lo que no es una solución viable para una aplicación de producción.

Incluso los foros de soporte oficiales no fueron de ayuda, solo recibí una respuesta desagradable para ir a ver los manuales, que he tenido que pasar varias veces y que solo puedo considerar como malo. No todos los días se ve una documentación tan mala para un producto empresarial. No encontré nada relevante para esto en sus manuales, así que me hacen pensar que su propio personal tampoco tiene idea sobre esto.

Entonces, espero que alguien aquí me diga si el visor de informes predeterminado aún existe en CR XI, y si lo hace, ¿cómo invocarlo? Si no es así, ¿usar el componente de diseñador de informes es realmente la única solución para crear uno?


De su documentación:

Craxddrt.dll (Crystal Reports ActiveX Designer Design y Runtime Library) es un modelo de objeto unificado que combina las capacidades de tiempo de ejecución de Craxdrt.dll (Crystal Reports ActiveX Designer Run Time Library) con las capacidades de tiempo de diseño de Craxddt.dll (Crystal Reports Biblioteca de tiempo de diseño de ActiveX Designer). Craxddrt.dll reemplazará Craxddt.dll para las versiones 8.5 y posteriores. Tanto Craxddrt.dll como Craxdrt.dll contienen todos los objetos y métodos asociados, propiedades y eventos necesarios para crear, abrir, exportar, guardar e imprimir un informe en tiempo de ejecución. Además, Craxddrt.dll se usa con RDC ActiveX Designer cuando se diseñan informes en el momento del diseño, o se usa con Embeddable Designer cuando se diseñan informes en tiempo de ejecución. Consulte "Modelo de objetos de control de Designer de Crystal Reports incrustable" en la página 343 para obtener más información.

Nota: RDC ActiveX Designer solo está disponible en Microsoft Visual Basic .

Antes de la versión 8.5, Craxdrt.dll se distribuiría con una aplicación. Ahora el desarrollador tiene la opción de distribuir dos servidores de automatización. Craxdrt.dll es compatible con versiones anteriores y contiene todas las características introducidas en esta versión. Utilice Craxdrt.dll para cualquier aplicación del lado del cliente que no contenga Embeddable Designer, o úselo para cualquier aplicación del lado del servidor. Craxddrt.dll es un modelo de apartamento con subprocesos, pero no es seguro para subprocesos y solo se puede utilizar en una aplicación del lado del cliente. Aunque Craxddrt.dll es un servidor de automatización completamente funcional para el RDC, y puede funcionar en cualquier aplicación del lado del cliente, aumentará el tamaño de la instalación. Por lo tanto, se recomienda que solo use Craxddrt.dll con Embeddable Crystal Reports Designer Control.


Recientemente tuve el mismo problema y describí la solución aquí . Estoy usando Delphi 2007, pero dado que el código involucra llamadas a una DLL ActiveX externa, también debería funcionar para usted.