Tema anteriorTema siguiente


Guía de aprendizaje 5: Cómo escribir un manejador de eventos en JavaScript

Esta guía de aprendizaje proporciona instrucciones para escribir un conjunto de manejadores de eventos. La guía de aprendizaje presupone que tiene un diseño de informe básico basado en la Base de datos de ejemplo Classic Models, Inc. El único requisito para iniciar el diseño del informe es que contenga una tabla de clientes con una columna para el nombre de cliente. En esta guía de aprendizaje, cuenta los clientes cuyos nombres contienen la serie "Mini" y visualiza el resultado en una ventana emergente.

En esta guía de aprendizaje, realiza las tareas siguientes:

Tarea 1: Abrir el diseño del informe

Abra un diseño de informe que utiliza la base de datos de ejemplo Classic Cars y visualiza una tabla de nombres de cliente.

  1. Si es necesario, abra el Navegador seleccionando Ventana->Mostrar vista->Navegador.
  2. Efectúe una doble pulsación en el diseño de informe adecuado. El archivo se abre en el editor de diseño, tal y como se muestra en la Figura 22-4.

Tarea 2: Crear e inicializar un contador en el método Table.onCreate( )

Para contar el número de clientes cuyos nombres contienen la serie Mini, primero debe declarar un contador global y establecer su valor en cero. El método Table.onCreate( ) es el lugar más adecuado para realizar esta tarea ya que Table.onCreate( ) se ejecuta antes de que se recuperen las filas. Debe incrementar condicionalmente el contador en el método Row.onCreate( ).

  1. En Diseño, seleccione la tabla situando el cursor cerca de la esquina inferior izquierda de la tabla. Aparecerá el icono de tabla, tal y como se muestra en la Figura 22-5.
  2. Seleccione la pestaña Script. Aparecerá la pestaña Script, tal y como se muestra en la Figura 22-6.
  3. Especifique la siguiente línea de códigos en la ventana Script del método onCreate( ):
  4. countOfMinis = 0; 
    
  5. Para ejecutar el informe y verificar que el código no ha creado ningún error, seleccione Vista previa.
  6. Desplácese hasta el área inferior del informe, donde aparecen los mensajes de error de JavaScript. Si no existen errores, aparecerá el informe, tal y como se muestra en la Figura 22-7.
  7. Si ve un mensaje de error, es posible que haya escrito la sentencia incorrectamente. Si es así, vuelva a la ventana Script, seleccione el método que acaba de modificar, corrija el error y seleccione de nuevo Vista previa.

Tarea 3: Incrementar condicionalmente el contador en el método Row.onCreate( )

Para contar la cuenta de clientes con la serie Mini en sus nombres, debe examinar cada nombre de cliente y añadir uno al contador para cada aparición. Un lugar lógico para realizar esta tarea se encuentra en el método Row.onCreate( ), que se ejecuta con cada recuperación de una fila de datos desde el origen de datos.

  1. En Diseño, seleccione la Fila y, a continuación, seleccione Script.
  2. Extienda la lista de métodos situada en la parte superior de la ventana Script y seleccione onCreate, tal y como se muestra en la Figura 22-8.
  3. Especifique la siguiente línea de código JavaScript en la ventana Script:
  4. row=this.getRowData( ); 
    
    Tenga en cuenta que cuando especifica un punto después de esto, aparece un menú emergente que contiene los métodos y las propiedades disponibles, que incluye getRowData. Esta línea de código obtiene una instancia de IRowData, que tiene un método, getExpressionValue( ), para obtener el contenido de una columna de la fila.
  5. Especifique la línea siguiente de JavaScript debajo de la línea que acaba de especificar:
  6. CustName=row.getExpressionValue( "row[CUSTOMERNAME]" ); 
    
    Esta línea de código devuelve el contenido de la columna de la tabla que proviene de la columna CUSTOMERNAME del conjunto de datos.
  7. Especifique la línea siguiente de código para aumentar condicionalmente el contador que ha creado en Crear e inicializar un contador en el método Table.onCreate( ).
  8. if( CustName.indexOf( "Mini" ) != -1 ) countOfMinis += 1; 
    
    Puede utilizar la paleta de JavaScript para insertar cada uno de los elementos siguientes en la línea anterior:
    • indexOf( )
    • Seleccione Objetos nativos (JavaScript)->Funciones de String->indexOf( )
    • !=
    • Seleccione Operadores->Comparación->!=
    • +=
    • Seleccione Operadores->Asignación->+=
  9. Seleccione Vista previa para ejecutar de nuevo el informe a fin de verificar que el código que ha especificado no contenía errores.

Tarea 4: Visualizar el resultado, utilizando el método
ReportDesign.afterFactory( )

Para visualizar el número de clientes con la serie Mini en sus nombres, debe insertar código en un método que se ejecuta después del proceso de todas las filas de la tabla. Un lugar lógico para este código se encuentra en el método ReportDesign.afterFactory( ).

  1. En Esquema, seleccione el diseño de informe, tal como se muestra en la Figura 22-9.
  2. Seleccione el método afterFactory( ) en la lista desplegable de la ventana Script.
  3. Especifique el código siguiente en el método afterFactory( ):
  4. importPackage( Packages.javax.swing ); 
    frame = new JFrame( "Count of Minis = " + countOfMinis ); 
    frame.setBounds( 310, 220, 300, 20 ); 
    frame.show( ); 
    
  5. Seleccione Vista previa para ver los resultados. Si no existen errores en el código, verá un informe similar al que se muestra en la Figura 22-10.

Si no ve la ventana Cuenta de Minis, búsquela detrás de la ventana de Eclipse. Si la ventana Cuenta de Minis no aparece, la razón más probable es que un error en una de las entradas de código haya causado un error de lenguaje de script.

Si sospecha que se ha producido un error de lenguaje de script, desplace el cursor hasta la parte inferior del informe, donde aparecen todos los mensajes de error de lenguaje de script. En la mayoría de situaciones, existe un breve mensaje de error a continuación del signo de suma ( + ). El signo de suma indica que existe un mensaje de error más detallado que sólo es visible después de expandir el mensaje breve de error. Para expandir el mensaje breve de error, seleccione el signo de suma. Desplácese hacia abajo para ver el mensaje de error más detallado.


(c) Copyright Actuate Corporation 2006

Tema anteriorTema siguiente