USO DE CRYSTALREPORTS 10 EN JAVA Versión 1.0



Documentos relacionados
Proyecto: Framework

Desarrollo de Servicios Web con JBuilder

Descarga, instalación y uso de herramientas:

AGREGAR COMPONENTES ADICIONALES DE WINDOWS

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

CIF-KM. GUÍA DE LOS PRIMEROS PASOS

Construcción de una aplicación web para crear un sistema de encuestas con la tecnología PHP y la base de datos MySQL.

Tarea 1 Programación José Luis Comesaña

UNIDESYS UNIVERSAL BUSINESS SYSTEMS INSTALACIÓN NUEVO PUESTO DE TRABAJO

Manual de NetBeans y XAMPP

Internet Information Server

Mini-guía: Gestión Backup

Notas para la instalación de un lector de tarjetas inteligentes.

Conexión de Mysql con NetBeans

Instalación de DRIVER de mochila

Herramientas CONTENIDOS. MiAulario

CREAR UN SERVICIO WEB BASICO CON JAVA AXIS2. Víctor J. Sosa

Dossier de prácticas

Requisitos técnicos para la instalación. Arquitectura Hardware Arquitectura Software. Instrucciones de instalación GONG-R

Activación de un Escritorio Remoto

ZKTime Monitor : Programa de Control de Presencia y/o Accesos.

Ingeniería del Software Arquitectura Física en 3 niveles

Tenemos que instalar los programas de los usuarios también (los anteriormente mencionados) y los siguientes que vamos a nombrar.

Plantillas Office. Manual de usuario Versión 1.1

T3-Rondas V 1.1. Help-Pc, S.L. C/ Pintor Pau Roig, 39 L Premià de Mar Barcelona Tel. (93) Fax marketing@t2app.

MANUAL DE AYUDA MÓDULO GOTELGEST.NET PREVENTA/AUTOVENTA

Guía de ayuda para la descarga y actualización de la versión

TS RemoteApp Manager

Manual CMS Mobincube

Manual de Usuario - SDI - Seguridad en Datos de Investigación. Automatización de Buenas Prácticas en Bases de Datos de Investigación

LEGALIA Colegio de Registradores de España 16 de marzo de 2015

Manual de JSP con MySQL

INFORMES CON REPORTS BUILBER

FortiReporter

Para poder instalar el producto, tendremos que obtener el instalador apropiado para nuestro entorno hardware y software.

TUTORIAL DESARROLLO DE APLICACIONES PARA EVOLUTION CON MS ACCESS

MANUAL DE INSTALACIÓN

Unidad Didáctica 12. La publicación

Manual Instalación GIRH-Nómina (JAVA)

Instalación desatendida del cliente ICA de Citrix

LEGALIA Y RECEPCIÓN LEGALIA

GESTOR DE LICENCIAS Ayuda

Ejercicio: Mensajes Alert, Confirm y Prompt

INSTALACIÓN DE OPENOFFICE

Figura 7-1 Enlace para instalar el servidor web Apache Jakarta Tomcat

Utilización Crystal Reports 2008

Toda base de datos relacional se basa en dos objetos

BANNERS CÍCLICOS CON JAVASCRIPT

GUÍA PARA LA INSTALACIÓN DE MOODLE EN UN COMPUTADOR PERSONAL QUE USA EL SISTEMA OPERATIVO MS. WINDOWS

1. Configuración del entorno de usuario

RESOLUCIÓN DE ERRORES EN MOODLE CAMPUS VIRTUAL-BIRTUALA UPV-EHU

Pruebas Técnicas Grabación casos de prueba JMeter. Unidad de Calidad

Capitulo 5. Implementación del sistema MDM

Instalación. Interfaz gráfico. Programación de Backups. Anexo I: Gestión de la seguridad. Manual de Usuario de Backup Online 1/21.

MIGRACIÓN NEXUS 8 A A3ERP 9

HERRAMIENTA DE CONTROL DE PLAGIOS MANUAL DE AYUDA

Manual de usuario Noticias y Accesos Directos en Facultades ÍNDICE

MANUAL DE MANTENIMIENTO PARA LA PÁGINA WEB DE PROYECTO ADL SUBIDA Y PUBLICACION DE DOCUMENTOS PARTE II

REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS

Proyecto: Buscador de Películas usando XQuery y exist

MANUAL INSTALACIÓN ABOGADOS MF

Guía de Instalación de XTBox

Identidad Corporativa de ICM 1 TABLA DE CONTENIDO INTRODUCCIÓN COMPONENTES NECESARIOS... 3

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS

GENERACIÓN DE ANTICIPOS DE CRÉDITO

Región de Murcia Consejería de Educación, Ciencia e Investigación. Manual Usuario FCT

Cuando hacemos uso de los grupos, se tendrán los permisos asignados al grupo, en todas las carpetas y documentos del sitio.

Guía de acceso a Meff por Terminal Server

75.99 TRABAJO PROFESIONAL INGENIERIA EN INFORMATICA

JSP. MSc. Daniel Alejandro Yucra Sotomayor Pag Web Services. Laboratorio Nro. 11. Web Services con JAX-WS con MySQL. I. Competencia General:

SUBIENDO NUESTRA WEB CON MACROMEDIA DREAMWEAVER

INSTALACIÓN Y REGISTRO

MANUAL DE AYUDA. MODULO SAT (Anexo Integración AGIL SAT)

Gesfincas. INSTALACIÓN DE LA APLICACIÓN (Monopuesto y Red Local)

ACCESS CONTROL. Aplicación para control y gestión de presencia. (Versión. BASIC) 1 Introducción. 2 Activación del programa

Manual: Gestor de contenidos e-gim cms. 6 abril 2010

PHPMYADMIN Y MYSQL. Para gestionar la base de datos MySQL, lo haremos desde la aplicación PhpMyAdmin.

MANUAL DE AYUDA. SAT Móvil (Movilidad del Servicio Técnico)

Gestión de Retales WhitePaper Noviembre de 2009

SERVIDOR DNS DINÁMICO EN WINDOWS 2000/2003 SERVER.

Edición de Ofertas Excel Manual de Usuario

Sitios remotos. Configurar un Sitio Remoto

Internet aula abierta

Casos de Uso De Casino Online

Entorno de Desarrollo - 1 -

INFORMACIÓN DE NAVEGADORES

CATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO

Nota: Se puede tener un acceso directo definido o podemos entrar a través de la

Instalación de Tomcat7 en Ubuntu

Person IP CRM Manual MOBILE

Una vez que tengamos el padrón de un determinado tributo con todos sus datos actualizados, podemos generar los recibos de ese padrón.

JOOMLA MANUAL USUARIO Creación del portal

DATOS EN SERVIDOR DE RED PROCEDIMIENTO PARA INSTALACIÓN Y CONFIGURACIÓN DE BASES DE DATOS EN SERVIDORES DE RED

INDICE. Página 2 de 23

Anexo 2: Configuración del Programa en Red.

1) Aplicación Inp. Si has llegado hasta aquí poco te podemos decir ya de la misma. Seguimos.

MANUAL DE AYUDA MÓDULOS 2011 MACOS

1. Creación del repositorio

Transcripción:

USO DE CRYSTALREPORTS 10 EN JAVA Versión 1.0 Agosto 2007 Página: 1

INDICE 1 INTRODUCCION... 3 2 CREACIÓN DEL INFORME... 4 3 LIBRERÍA CrystalReports2_0... 7 4 CrystalReportAccion... 7 4.1 Ejemplo genérico... 8 4.2 EJEMPLOS CONCRETOS... 9 4.2.1 EjemploCR_PDF... 9 4.2.2 EjemploCR_HTML... 10 4.2.3 EjemploCR_RTF... 11 4.2.4 EjemploCR_Parametros... 11 5 LIBRERÍA CrystalReportsWS... 12 6 CrystalReportWSAccion... 12 6.1 Ejemplo genérico... 14 Página: 2

1 INTRODUCCION Desde java podemos acceder a los reports creados en CrystalReports 10. Tenemos dos opciones: Invocar directamente el informe desde java. De esta forma podemos obtener informes en los siguientes formatos: 1. PDF 2. RTF 3. HTML En este caso el informe se va a encontrar dentro de la web de java y se hará uso de la librería CrystalReports2_0. Llamar desde java a un Webservice de Delphi que genera el informe. De esta forma podemos obtener informes en los siguientes formatos: 1. PDF 2. DOC (Word) 3. XLS (Excel) En este caso el informe se va a encontrar dentro de la web del Webservice de Delphi y se hará uso de la librería CrystalReportsWS. En ambos casos es necesario que se incluya el fichero redireccion.jsp en el directorio WEB- INF/jsp de la aplicación. Desde una aplicación solo se debería utilizar una única forma de generar los informes o mediante la llamada al webservice o mediante la invocación directa desde java. Página: 3

2 CREACIÓN DEL INFORME Cuando se crea en CrystalReports hay que conectarse a la base de datos de Oracle mediante JDBC si se va a invocar el informe directamente desde java. Crystal Reports no viene con un driver JDBC para desarrollar reports con JDBC. Hay que descargar el fichero InstallNewDriversv10.zip descomprimirlo y ejecutar la intalación y cuando se complete ya se puede hacer un report contra el driver JDBC. Además es necesario editar un fichero de configuración en el directorio C:\Archivos de programa\archivos comunes\crystal Decisions\2.5\bin, El fichero se llama CRDB_JavaServer.ini [Common] PATH = C:\Producto\JavaSoft\j2sdk1.4.2_04\jre\bin CLASSPATH = "C:\Archivos de programa\archivos comunes\crystal Decisions\2.5\bin\CRDBJAVAServer.jar;C:\Archivos de programa\archivos comunes\crystal Decisions\2.5\java\lib\jdbc\ojdbc14.jar";${CLASSPATH IORFileLocation = d:/temporal JavaServerTimeout = 1800 JVMMaxHeap = 64000000 JVMMinHeap = 32000000 [CRDB_JDBC] CacheRowSetSize = 100 JDBCURL = jdbc:oracle:thin:@icm21:1521:denivel2 JNDIURL = JDBCUserName = JDBCDriverName = oracle.jdbc.driver.oracledriver JNDIUserName = JNDIConnectionFactory = JNDIInitContext = java:/comp.env.jdbc GenericJDBCDriverBehavior = Oracle [CRDB_XML] PREREADNBYTE = 5000 CacheRowSetSize = 100 XMLLOCALURL = SCHEMALOCALURL = XMLHTTPURL = SCHEMAHTTPURL = USETEMPFile = TRUE En la ruta del CLASSPATH tenemos que comprobar si se corresponde con nuestra ruta, en particular con el fichero ojdbc14.jar que debemos incluir en nuestra instalación. Este fichero contiene los drivers de jdbc para oracle. CLASSPATH = "C:/Archivos de programa/archivos comunes/crystal Decisions/2.5/bin/CRDBJAVAServer.jar; C:/Archivos de programa/archivos comunes/crystal Decisions/2.5/java/lib/jdbc/ojdbc14.jar";${CLASSPATH Por otra parte hay que indicar cual es la ruta del jdk de java que se debe corresponder con el jdk instalado en nuestro pc. PATH = C:\Producto\JavaSoft\j2sdk1.4.2_04\jre\bin Página: 4

Una vez configurado este fichero cuando vamos a crear un informe al elegir la fuente de los datos nos aparece la siguiente ventana: Cuando se vaya a usar la librería CrystalReports2_0 debemos elegir JDBC (JNDI) y al pulsar el signo + nos mostrará una ventana con la información de la conexión JDBC. Página: 5

En esta ventana podemos modificar el parámetro URL de conexión y actualizarlo con nuestra base de datos. Al pulsar el botón de siguiente nos solicitará que le indiquemos el usuario y la password. Una vez incluidos ya nos aparece la lista de tablas disponibles para realizar el informe. En el caso en el que se utilice la librería CrystalReportsWS en la ventana asistente de base de datos debemos elegir Servidor de Oracle y al pulsar el signo + nos mostrará una ventana con la información de la conexión. Página: 6

En esta ventana habrá que indicar el nombre del servicio, el usuario y la password. Una vez incluidos ya nos aparece la lista de tablas disponibles para realizar el informe. 3 LIBRERÍA CrystalReports2_0 Esta librería contiene las siguientes clases públicas para tratamiento de reports solamente desde Java: CrystalReportAccion: A partir de los atributos del request ejecuta el report correspondiente. CrystalReportBean: Bean con información del report y métodos para exportarlo a los distintos formatos soportados: PDF y RTF. Con la clase acción anterior se podría ejecutar un informe directamente o bien podríamos heredar de ella y modificarla para lo que no se pudiera realizar directamente. 4 CrystalReportAccion Se ha creado una clase llamada CrystalReportAccion en el paquete crystalreports.acciones que a partir de unos atributos del request ejecuta el report correspondiente. Los parámetros del request son: REPORT: Nombre del report. Página: 7

PARAMETROS: Parámetros del report en forma de campo=valor y si vienen varios, cada uno en una línea. Si lo que se quiere pasar es una fecha se tendrá que poner en el formato campo=date(aaaa,mm,dd). TIPO_SALIDA: Tipo de ejecución del report que puede ser: 1. PDF 2. RTF 3. HTML Los reports se deben encontrar en un directorio dentro del web de nuestra aplicación por debajo del directorio WEB_INF. Este directorio se especifica en el fichero de configuración de la aplicación en la propiedad reports.directorio = WEB_INF/reports. Por otra parte para que el Controlador encuentre la clase CrystalReportAccion hay que ponerla en el fichero de configuración de la siguiente forma: CrystalReportAccion = crystalreports.acciones Si en la aplicación se está haciendo uso del datasource de Oracle para acceder a la base de datos hay que incluir en el fichero de configuración los parámetros bd.usuario y bd.clave con sus valores correspondientes dado que serán requeridos por la librería CrystalReports2_0 cuando ésta vaya a generar los informes. Se tendrá que incluir el fichero redireccion.jsp en el directorio WEB-INF/jsp de la aplicación. 4.1 Ejemplo genérico A continuación se muestra un ejemplo de llamada a la Accion CrystalReportAccion desde una página jsp: <jsp:usebean id="report" scope="request" class="java.lang.string" /> <HTML> <HEAD> <TITLE>Genera Report</TITLE> <SCRIPT> function enviarformulario(destino){ document.formulario.action = destino; document.formulario.submit(); </SCRIPT> <!--mstheme--> <link rel="stylesheet" type="text/css" href="../../_themes/portaldesarrollo/port1110.css"> <meta name="microsoft Theme" content="portaldesarrollo 1110, default"> </HEAD> <BODY> <p style="text-align: center"> <font size="4" color="#800000">generación de report genérica</font> </p> <form name="formulario" method="post" action=""> <table border="4" cellspacing="4" width="100%" id="autonumber1" cellpadding="4 > <td width="100%" bgcolor="#ffcc99"> <b>nombre del report:</b> <blockquote> Página: 8

<p> <input type="text" name="report" value="<%=report%>" size="47"> </p> </blockquote> </td> <td width="100%" bgcolor="#ffffcc"> <b>parámetros del informe: </b> <p> Si el informe tiene parámetros se deben introducir de la siguiente forma: </p> <blockquote> <p>nombre=valor <i>ejemplo: (codigo=6)</i></p> </blockquote> <p> En el caso de tener varios parámetros se pondrá cada uno en una línea </p> <blockquote> <p> <textarea rows="5" name="parametros" cols="53"></textarea> </p> </blockquote> </td> <td width="100%" bgcolor="#ffcc99"> <b>tipo de salida:</b> <blockquote> <p> <select size="1" name="tipo_salida"> <option selected value="pdf">pdf</option> <option value="rtf">rtf</option> <option value="html">html</option> </select> </blockquote> </p> </td> <td width="100%"> <input type="submit" value="ejecutar" name="generar" onclick=enviarformulario("crystalreportaccion.icm")> <input type="reset" value="restablecer" name="b2"> </td> </table> </form> </BODY> </HTML> 4.2 EJEMPLOS CONCRETOS A continuación se muestran unos ejemplos concretos en los que se conoce a priori el tipo de salida, el nombre del fichero o los parámetros. 4.2.1 EjemploCR_PDF En este caso se genera un fichero PDF para el report aplicación_1.rpt Página: 9

package report.acciones; import sistemas.framework.excepciones.accionexception; import crystalreports.acciones.crystalreportaccion; import crystalreports.beans.crystalreportbean; public class EjemploCR_PDF extends CrystalReportAccion { public EjemploCR_PDF () { /** * Este metodo nos permite modificar los valores que CrystalReportAccion asigna * automaticamente al CrystalReportBean. O incluso obviar esos valores y establecer * los valores por nuestra cuenta dependiendo de otras condiciones. * @see crystalreports.acciones.crystalreportaccion */ protected CrystalReportBean leerdatosrequest(crystalreportbean crbean) throws AccionException { //Permitimos que establezca los valores iniciales a partir de los valores del request. if (crbean == null){ crbean =new CrystalReportBean(); //Modificar crbean si fuera necesario. String directorio = null; try { directorio = sistemas.util.config.get("reports.directorio"); catch (Exception ex1) { throw new AccionException( "Se debe especificar el parámetro reports.directorio" + " en el fichero de configuración"); String report = "/"+ directorio + "/aplicacion_1.rpt"; crbean.setreport(report); crbean.settipo_salida(crystalreportbean.salida_pdf); return crbean; 4.2.2 EjemploCR_HTML En este caso se genera una página HTML para el report aplicación_1.rpt package report.acciones; import sistemas.framework.excepciones.accionexception; import crystalreports.acciones.crystalreportaccion; import crystalreports.beans.crystalreportbean; public class EjemploCR_HTML extends CrystalReportAccion { protected CrystalReportBean leerdatosrequest(crystalreportbean arg0) throws AccionException { CrystalReportBean crbean = new CrystalReportBean(); String directorio = null; try { directorio = sistemas.util.config.get("reports.directorio"); catch (Exception ex1) { throw new AccionException( "Se debe especificar el parámetro reports.directorio" + " en el fichero de configuración"); String report = "/" + directorio + "/aplicacion_1.rpt"; Página: 10

crbean.setreport(report); crbean.settipo_salida(crystalreportbean.salida_html); return crbean; public EjemploCR_HTML () { 4.2.3 EjemploCR_RTF Se genera un documento word (.rtf) para el report aplicación_1.rpt package report.acciones; import crystalreports.acciones.crystalreportaccion; import crystalreports.beans.*; import sistemas.framework.controlador.controlador; import sistemas.framework.excepciones.*; public class EjemploCR_RTF extends CrystalReportAccion { protected CrystalReportBean leerdatosrequest(crystalreportbean crbean) throws AccionException { //Se construye un crbean para un informe genérico crbean = new CrystalReportBean(); String directorio = null; try { directorio = sistemas.util.config.get("reports.directorio"); catch (Exception ex1) { throw new AccionException( "Se debe especificar el parámetro reports.directorio" + " en el fichero de configuración"); String report = "/" + directorio + "/aplicacion_1.rpt"; crbean.setreport(report); crbean.settipo_salida(crystalreportbean.salida_rtf); crbean.exportarartf(request, response, Controlador.getContexto()); return crbean; public EjemploCR_RTF () { 4.2.4 EjemploCR_Parametros En este caso se genera un fichero PDF para el report param.rpt, al que se le pasan parámetros. package report.acciones; import sistemas.framework.excepciones.accionexception; import crystalreports.acciones.crystalreportaccion; import crystalreports.beans.crystalreportbean; Página: 11

public class EjemploCR_Parametros extends CrystalReportAccion { protected CrystalReportBean leerdatosrequest(crystalreportbean arg0) throws AccionException { CrystalReportBean crbean = new CrystalReportBean(); String directorio = null; try { directorio = sistemas.util.config.get("reports.directorio"); catch (Exception ex1) { throw new AccionException( "Se debe especificar el parámetro reports.directorio" + " en el fichero de configuración"); String report = "/" + directorio + "/param.rpt"; crbean.setreport(report); crbean.settipo_salida(crystalreportbean.salida_pdf); //En el caso de que sólo exista un parámetro se puede introducir como //un String //crbean.setparametros("codigo=bego"); //Si hay varios parámetros lo mejor es crear un objeto Properties //y llamara al método setproperty para cada uno de los parámetros java.util.properties par = new java.util.properties(); par.setproperty("codigo", "BEGO"); crbean.setparametros(par); return crbean; public EjemploCR_Parametros () { 5 LIBRERÍA CrystalReportsWS Esta librería contiene las siguientes clases públicas para tratamiento de reports accediendo al WebService de Delphi: CrystalReportWSAccion: A partir de los atributos del request accede al webservice para solicitar el report, lo copia en la maquina donde se esta ejecutando la aplicación java y lo visualiza. CrystalReportWSBean: Bean con información del report necesaria para el webservice. Con la clase acción anterior se podría ejecutar un informe directamente o bien podríamos heredar de ella y modificarla para lo que no se pudiera realizar directamente. 6 CrystalReportWSAccion Se ha creado una clase llamada CrystalReportWSAccion en el paquete crystalreports.acciones que a partir de unos atributos del request ejecuta el report correspondiente. Los parámetros del request son: REPORT: Nombre del report Página: 12

PARAMETROS: Valores de los parametros del report separados por puntos y coma, estos valores se estableceran de forma secuencial según le llegan al webservice. En el caso en el que el informe contenga un subinforme con parámetros el webservice requerirá el valor de todos los parámetros del informe incluidos los del subinforme aunque estos se encuentren vinculados a parámetros del informe principal. TIPO_SALIDA: Tipo de ejecución del report que puede ser: o PDF o WORD o EXCEL SALIDA: Fichero de salida, debe tener la extensión que concuerde con el tipo de salida. Los reports se han de dejar en un directorio del webservices de Crystal Reports el cual tendrá por nombre el código de la aplicación. Este directorio se especifica en el fichero de configuración de la aplicación en la propiedad: crystalreportsws.rutareportsservidorremoto = d:/icm/web/webservices/crpt/ejpl Por otra parte para que el Controlador encuentre la clase CrystalReportWSAccion hay que ponerla en el fichero de configuración de la siguiente forma: CrystalReportWSAccion = crystalreports.acciones Si en la aplicación se está haciendo uso del datasource de Oracle para acceder a la base de datos hay que incluir en el fichero de configuración los parámetros bd.usuario y bd.clave con sus valores correspondientes dado que serán requeridos por la librería CrystalReportsWS cuando ésta vaya a generar los informes. Otras variables de configuración que hay que especificar son: Nombre variable Descripción Valor de ejemplo Nombre variable Descripción Valor de ejemplo crystalreportsws.webservice Ruta hasta el WebService http://nticmdes09.icm.es/webservices/cgi-bin/wscreport.exe/soap/iwscr crystalreportsws.nombreservidorremoto Nombre del servidor en el que se encuentra el WebService, es necesario para poder recuperar el informe una vez generado nticmdes09 Nombre variable crystalreportsws.puertoservidorremoto Descripción Puerto abierto en el servidor remoto con la aplicación de ficheros remotos Valor de ejemplo 8004 Nombre variable Descripción Valor de ejemplo Nombre variable Descripción Valor de ejemplo crystalreportsws.rutareportsservidorremoto Ruta en la que se encuentra los ficheros de CrystalReport dentro del servidor del WebService.El nombre del directorio coincide con el código de la aplicación. d:/icm/web/webservices/crpt/ejpl crystalreportsws.rutaficherostemporalesservidorremoto Ruta en la que el WebService generara los resultados de los informes que ejecutemos d:/icm/web/webservices/salida Página: 13

Nombre variable Descripción Valor de ejemplo Nombre variable Descripción Valor de ejemplo Nombre variable Descripción Valor de ejemplo crystalreportsws.rutaficherostemporales Ruta física donde se guardarán los resultados de los informes en la máquina en la que se esta ejecutando la aplicación Java /usr/producto/oracle/j2ee904/j2ee/temp crystalreportsws.webficherostemporales Ruta web que se devolvera al cliente para mostrar los datos del informe, como con cualquier otro fichero que se deba descargar en los sistemas de desarrollo y producción se debera usar la aplicación PDFServlet.../../../download crystalreportsws.instanciabd Instancia de base de datos de la que el WebService obtendrá los datos para generar el informe, el usario y la password con las que se conectará serán las mismas que con las que se conecta la aplicación icm21_denivel2 Se tendrá que incluir el fichero redireccion.jsp en el directorio WEB-INF/jsp de la aplicación. 6.1 Ejemplo genérico A continuación se muestra un ejemplo de llamada a la Accion InvocaWebService que extiende de CrystalReportWSAccion desde una página htm: <html><head><title>página principal</title></head> <body> <script> function Ver(){ cadena = document.forms[0].ver.value; document.location = cadena; </script> <form action="invocawebservice.icm" method="post"> <table style="padding: 5px; border-collapse: collapse;" id="autonumber1" bordercolorlight="#c0c0c0" border="0" bordercolor="#008080" cellpadding="0" cellspacing="0" width="90%"> <tbody> <td align="center" width="20%"><font face="arial" size="2"> <span lang="es"> Tipo de exportación</span></font></td> <td width="80%"><font face="arial" size="1"> <span lang="es"><select size="1" name="tipo_salida"><option selected="selected" value="pdf">acrobat PDF</option><option value="word">microsoft Word</option><option value="excel">excel (.XLS)</option></select></span></font></td> <td align="center" width="20%"><font face="arial" size="2"> <span lang="es">report</span> </font> </td> <td width="80%"><font face="arial" size="1"> <input name="report" size="65" value="1.rpt" type="text"><br> Página: 14

</font><span lang="es"><font face="arial" size="2"> 1.rpt = report normal rtf<br> 2.rpt = report con parámetro (indicar un número de 1 a 4)</font></span></td> <td align="center" width="20%"><span lang="es"> <font face="arial" size="2">parámetros Report</font></span></td> <td width="80%"><font face="arial" size="1"> <input name="parametros" size="65" value="4;3;2;1" type="text"></font></td> <td align="center" width="20%"><font face="arial" size="2"> <span lang="es"> Documento salida</span></font></td> <td width="80%"><font face="arial"> <input name="salida" size="65" value="1.pdf" type="text"></font></td> <td colspan="2" align="center" width="100%"> <font face="arial"> <input value=" Exportar " name="exportar" type="submit"></font></td> </tbody> </table> </form> </body> </html> package report.acciones; import sistemas.framework.excepciones.accionexception; import crystalreports.acciones.crystalreportwsaccion; import crystalreports.beans.crystalreportwsbean; public class InvocaWebService extends CrystalReportWSAccion { /** * Este metodo nos permite modificar los valores que CrystalReportWSAccion asigna * automaticamente al CrystalReportWSBean. O incluso obviar esos valores y establecer * los valores por nuestra cuenta dependiendo de otras condiciones. * @see crystalreports.acciones.crystalreportwsaccion */ protected CrystalReportWSBean leerdatosrequest(crystalreportwsbean crbean) throws AccionException { //Permitimos que establezca los valores iniciales a partir de los valores del request. crbean = super.leerdatosrequest(crbean); //Modificar crbean si fuera necesario. return crbean; Página: 15