Download 1 - Comunidad de Madrid

Document related concepts
no text concepts found
Transcript
Ejemplo IcmXImpresorPDZ
FRAMEWORK JAVA 2.1
IcmXVisorExcel
Versión 1.3
Aplicación de ejemplo icmxvisorexcel
OCT 2006
Área de Integración y Arquitectura de Aplicaciones
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Subdirección General de Desarrollo, Tecnología e Infraestructuras
Página 1
Ejemplo IcmXImpresorPDZ
FRAMEWORK JAVA 2.1
1 TABLA DE CONTENIDO
1
TABLA DE CONTENIDO ................................................................................................ 2
2
DESCRIPCIÓN DEL PROYECTO ................................................................................... 3
3
2.1
El ActiveX .......................................................................................................................... 3
2.2
El ejemplo .......................................................................................................................... 3
ENTORNO TECNOLÓGICO DEL SISTEMA .................................................................. 4
3.1
4
Entorno operativo ............................................................................................................. 4
DESCOMPOSICIÓN EN MÓDULOS ............................................................................... 2
4.1
Diagrama de clases ........................................................................................................... 2
4.2
Paquete icmxvisorexcel.controlador ............................................................................... 2
4.3
Paquete icmxvisorexcel. acciones................................................................................... 3
4.4
Paquete icmxvisorexcel. bean.......................................................................................... 3
4.5
Paquete icmxvisorexcel.modelo ...................................................................................... 4
4.6
Paquete icmxvisorexcel.util ............................................................................................. 5
5
FICHERO DE CONFIGURACIÓN ................................................................................... 5
6
JSP del ActiveX .............................................................................................................. 8
7
RESUMEN ....................................................................................................................... 9
7.1
Pasos a seguir para utilizar el ActiveX. ........................................................................... 9
Área de Integración y Arquitectura de Aplicaciones
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Subdirección General de Desarrollo, Tecnología e Infraestructuras
Página 2
Ejemplo IcmXImpresorPDZ
2
FRAMEWORK JAVA 2.1
DESCRIPCIÓN DEL PROYECTO
2.1 El ActiveX
El ActiveX IcmXVisorExcel permite fusión de datos en una hoja de cálculo de MS Excel.
El ActiveX recoge a través de un parámetro propio el contenido en base 64 de un fichero
zip, el cual contiene el/los ficheros/ dbf que contienen los datos, el fichero xls y un fichero
de texto donde se le indican las opciones de fusión. Al fichero zip lo denominaremos fichero
V2H, al fichero de texto lo denominaremos INI.
El fichero INI, es un fichero de configuración que contiene información de los ficheros a
imprimir, número de copias y tipo de ordenación.
Un ejemplo de fichero INI:
[General]
Operacion=V
Hoja=G3.XLS
SolapaInicio=1
Tablas=60
[Tabla1]
nombre=Tabla1.dbf
localizacion=12![A,21]
[Tabla2]
nombre=Tabla2.dbf
localizacion=2![B,21]
[Tabla3]
nombre=Tabla3.dbf
localizacion=2![C,21]
[Tabla4]
nombre=Tabla4.dbf
localizacion=2![D,21]
[Tabla5]
nombre=Tabla5.dbf
localizacion=2![B,41]
2.2 El ejemplo
El ejemplo suministrado es un proyecto Java donde se utiliza el ActiveX. Las plantillas de
excel y los datos que se fusionan en ellas se encuentran almacenados en dos tablas de
oracle: DATOS_AMORTIZACION y HOJAS_EXCEL
Área de Integración y Arquitectura de Aplicaciones
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Subdirección General de Desarrollo, Tecnología e Infraestructuras
Página 3
Ejemplo IcmXImpresorPDZ
3
FRAMEWORK JAVA 2.1
ENTORNO TECNOLÓGICO DEL SISTEMA
3.1 Entorno operativo
Servidor de aplicaciones: oc4j
El siguiente diagrama muestra la arquitectura del desarrollo:
Área de Integración y Arquitectura de Aplicaciones
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Subdirección General de Desarrollo, Tecnología e Infraestructuras
Página 4
Ejemplo IcmXImpresorPDZ
4
FRAMEWORK JAVA 2.1
DESCOMPOSICIÓN EN MÓDULOS
La aplicación sigue el modelo de arquitectura MVC, utilizado en el framework 2.1.
4.1 Diagrama de clases
A continuación se muestra el diagrama de clases.
IcmXVisorExcel - Diagrama de Clases
4.2 Paquete icmxvisorexcel.controlador
En este paquete se aloja la clase Controlador. Ésta clase se encarga de procesar todas las
peticiones de los clientes de la aplicación.
La clase Controlador hereda de la clase ControladorPublico, perteneciente a las librerías
genéricas que constituyen la arquitectura proporcionada por ICM para el desarrollo de
aplicaciones J2EE.
Nombre: Controlador
Funcionalidad: Procesa las peticiones de los clientes.
Área de Integración y Arquitectura de Aplicaciones
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Subdirección General de Desarrollo, Tecnología e Infraestructuras
Página 2
Ejemplo IcmXImpresorPDZ
FRAMEWORK JAVA 2.1
Métodos
Nombre
Tipo
Definición
Controlador Constructor Constructor por defecto
4.3 Paquete icmxvisorexcel. acciones
En éste paquete se alojan las acciones TrataTRB y AbreActiveX.
Nombre: TrataTRB
Funcionalidad: Es la acción encargada de generar el fichero pdz. Para ello utiliza la clase
sistemas.impresorpdz.GestorPDZ. Después carga una jsp que a su vez hace una petición a
la acción AbreActiveX
Jsp: blanca.jsp
Métodos
Nombre Tipo
Definición
TrataTRB Constructor Constructor por defecto
procesar public String Método principal de la clase.
Nombre: AbreActiveX
Funcionalidad: La acción AbreActiveX se encarga de codificar el fichero V2H en base 64 y
establecer el resto de atributos del bean ActiveXBean; éste bean se establecerá como
parámetro a la jsp donde está incrustado el ActiveX.
Jsp: AbreActiveX.jsp
Métodos
Nombre
Tipo
Definición
AbreActiveX Constructor Constructor por defecto
procesar
public String Método principal de la clase.
4.4 Paquete icmxvisorexcel. bean
En éste paquete se alojan los beans utilizados en la aplicación.
Nombre: VarBean
Descripción: Bean que contiene datos relativos al tipo de fusión que se va a realizar, lista
de tablas dbf, nombre del ficher ini, nombre del fichero xls...Éste bean no se pasa como
Área de Integración y Arquitectura de Aplicaciones
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Subdirección General de Desarrollo, Tecnología e Infraestructuras
Página 3
Ejemplo IcmXImpresorPDZ
FRAMEWORK JAVA 2.1
parámetro a ninguna jsp, sino que se pasa parámetro entre las diferentes clases del
ejemplo.
Atributos
Nombre
codigo
idamortizacion
operacion
numTablas
nombreXLS
nombreINI
nombreDBF
cadenaINI
nombreV2H
listaTablas
Tipo
String
String
String
String
String
String
String
Definición
Código de la plantilla excel en base de datos
Código de los datos que se van a fusionar en la hoja.
Tipo de operación (Visualizar, Imprimir)
Número de tablas dbf que van a componer la fusión
Nombre temporal del fichero xls
Nombre temporal del fichero ini
Nombre de la tabla dbf a utilizar. (En caso de que fuera
más de una habría que utilizar un listaTablas)
String
Contenido del fichero INI.
String
Nombre del fichero V2H
LinkedList Lista que contiene el nombre de las tablas dbf.
Nombre: ActiveXBean
Descripción: Bean que contiene la información de versión y url de descarga del activex así
como el contenido del fichero v2h en base 64.
Atributos
Nombre
codebase
version
nombreV2H
v2hB64
Tipo
String
String
String
String
Definición
URL del fichero IcmXVisorExcel.cab
Código de versión del fichero IcmXVisorExcel.cab
Nombre del fichero V2H
Contenido en base 64 del vichero V2H
Nombre: TablasBean
Descripción: Bean que contiene la información del nombre de cada dbf y su futura
localización en el fichero XLS.
Atributos
Nombre
nombreTabla
localizacion
Tipo
String
String
Definición
Nombre de la tabla dbf
Celda desde donde se empiezan a pegar los registros
4.5 Paquete icmxvisorexcel.modelo
Nombre: NucleoDAO
Funcionalidad: La clase NucleoDAO, realiza las operaciones de descargar de Oracle, la
plantilla excel y guardar en un dbf los datos a insertar en la misma.
Área de Integración y Arquitectura de Aplicaciones
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Subdirección General de Desarrollo, Tecnología e Infraestructuras
Página 4
Ejemplo IcmXImpresorPDZ
FRAMEWORK JAVA 2.1
Métodos
Nombre
Tipo
generaDBF
public void
obtenerPlantillaXLS public
byte[]
Definición
Descarga los datos de oracle a un dbf
Descarga de oracle la plantilla XLS y la devuelve en un
byte[]
4.6 Paquete icmxvisorexcel.util
Nombre: MetodosSueltos
Funcionalidad: La acción MetodosSueltos ofrece la funcionalidad de generar el fichero V2H
y guardar en disco la plantilla XLS.
Métodos
Nombre
generaINI
generaV2H
guardarFicheroHD
5
Tipo
private void
public void
public void
Definición
Genera el fichero INI.
Genera el fichero V2H
Guarda la plantilla XLS en disco.
FICHERO DE CONFIGURACIÓN
#####################################################
# Grupo de variables constantes de una aplicacion #
#####################################################
WEB_ROOT = http://icmweb01/icmxvisorexcel
WEB_HOME = /usr/aplic_ICM/prod/web/home8049/icm/icmxvisorexcel/icmxvisorexcel
CHARACTER-ENCODING = ISO-8859-1
IMG_ROOT = %WEB_ROOT%/images
WEB_TEMP=/usr/aplic_ICM/prod/web/temp/pdf
FICHERO_VISTAS = %WEB_HOME%/WEB-INF/conf/vistas.conf
############################
# Base de Datos
#
############################
bd.url = jdbc:oracle:thin:@ICM21:1521:DENIVEL2
bd.usuario = usuario
bd.clave = 009C4E09A412CF35
#Driver que va a usarse para crear las conexiones#
bd.driver= oracle.jdbc.driver.OracleDriver
#ATENCION! si se cambia el driver habra que poner las librerias necesarias en el ClassPath#
######################################
Área de Integración y Arquitectura de Aplicaciones
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Subdirección General de Desarrollo, Tecnología e Infraestructuras
Página 5
Ejemplo IcmXImpresorPDZ
FRAMEWORK JAVA 2.1
#Configuracion del Pool de Conexiones#
######################################
bd.pool.minConexiones=1
bd.pool.maxConexiones=3
bd.pool.maxEncolados=50000
bd.pool.tiempoEsperaConexion=60000
bd.pool.recogerEstadisticas = false bd.pool.estadisticas.tempo=60000
bd.pool.estadisticas.directorioSnapshots=/usr/aplic_ICM/prod/web/temp/pdf
bd.pool.estadisticas.urlSnapshots=http://icmweb01.icm.es/download
bd.pool.timeout=300000
bd.pool.liberar=true
#########################################################
# Variables de configuracion general de la aplicacion #
#########################################################
aplicacion.nombre=IMPR
aplicacion.paquete=icmxvisorexcel.acciones
aplicacion.opcion.defecto=TrataHTML
aplicacion.menu=/WEB-INF/conf/menu_aplicacion.xml
aplicacion.usarMenu=true
aplicacion.shutdown=true
aplicacion.activeX.version=1,3,0,0
aplicacion.activeX.url=%WEB_ROOT%/ocx/IcmXVisorExcel.cab
##################################################
# Variables para la descarga de ficheros
#
##################################################
aplicacion.directorio.temporal=/usr/aplic_ICM/prod/web/temp/pdf
aplicacion.download=http://icmweb01.icm.es/pdf
########################################################
# Acciones comunes
#
########################################################
ListaValoresJSP=sistemas.framework.acciones.comunes
CalendarioJSP=sistemas.framework.acciones.comunes
Menu=sistemas.framework.acciones.comunes
MuestraMenuAplicacion=sistemas.framework.acciones.comunes
TrataHTML=sistemas.framework.acciones.comunes
EjecutaIdMenu=sistemas.framework.acciones.comunes
########################################################
# Definición del portal
#
########################################################
portal.integrar = true
portal.definicion = portal.xml
portal.clase = sistemas.portal.generico.PortalGenerico
portal.clasesNoIntegrables=ListaValores;Calendario
###################################################
# Variables para la configuracion de las trazas #
###################################################
Área de Integración y Arquitectura de Aplicaciones
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Subdirección General de Desarrollo, Tecnología e Infraestructuras
Página 6
Ejemplo IcmXImpresorPDZ
FRAMEWORK JAVA 2.1
trazas.tipo=BRSLMET
trazas.minNivel=1
trazas.grabarLog=true
trazas.fichero.banned=
trazas.maxCaracteres=500
trazas.capturarSalidaEstandar=false
trazas.ficheroLog = /usr/aplic_ICM/prod/web/log/8049/icmxvisorexcel
#################################################
# Variables para la definicion del calendario #
#################################################
calendario.tabla.festivos=CATA_FESTIVOS
calendario.color.festivo=bgcolor=#EBEBEB
calendario.color.laborable=bgcolor=#FFBB33
calendario.color.hoy=bgcolor=#FFDD33
calendario.anno.inicio=1980
calendario.anno.fin=2010
Área de Integración y Arquitectura de Aplicaciones
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Subdirección General de Desarrollo, Tecnología e Infraestructuras
Página 7
Ejemplo IcmXImpresorPDZ
FRAMEWORK JAVA 2.1
6 JSP del ActiveX
A continuación se muestra la jsp que contiene el ActiveX. En el fichero vistas.conf es
necesario añadir la linea que asocia el valor que devuelve el método AbreActiveX.procesar()
con la JSP:
icmx_visorexcel = IcmXVisorExcel.jsp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859">
<jsp:useBean id="actXBean" scope="request" class="icmxvisorexcel.bean.ActiveXBean" />
</head>
<TITLE>Gestión de documentos</TITLE>
<body bgcolor="#ffffff" scroll="no">
<TABLE border="0" alig="center" width="100%">
<TR>
<TD align="center">
<OBJECT
object classid="clsid:05A85BB2-B690-4A80-B88D-A3A07243F107"
codebase="<%=actXBean.getCodebase()%>#version=<%=actXBean.getVersion()%>"
id="coIcmXVisorExcel1"
width=450
height=321
align=center
hspace=0
vspace=0
>
<PARAM NAME="URL" VALUE="<%=actXBean.getNombreV2H()%>">
<PARAM NAME="V2H_B64" VALUE="<%=actXBean.getV2hB64()%>">
</OBJECT>
<SCRIPT>
// comprobar OCX
function EstaActiveXInstalado(){
esta = false;
if(typeof(coIcmXVisorExcel1) == "object"){
if(coIcmXVisorExcel1.object != null){
esta = true;
}
}
return esta;
}
// comprobar si está instanciado
if (EstaActiveXInstalado() ){
document.coIcmXVisorExcel1.ComprobarDlls();
Área de Integración y Arquitectura de Aplicaciones
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Subdirección General de Desarrollo, Tecnología e Infraestructuras
Página 8
Servicio Web SSMS_WSl
FRAMEWORK JAVA 2.1
document.coIcmXVisorExcel1.VisualizaExcel();
//window.close();
history.go(-2);
}
else {
alert("No se ha podido descargar el componente ActiveX.\n\n" +
"Si es la primera vez que le aparece este mensaje refresque la pantalla.\n" +
"Si ya le ha aparecido más veces, por favor, notifique el error.");
}
</SCRIPT>
</TD>
</TR>
</TABLE>
<!--HR-->
</body>
</html>
7 RESUMEN
7.1 Pasos a seguir para utilizar el ActiveX.




Añadir al proyecto Java una acción equivalente a TrataTRB.java y la acción
AbreActiveX.java.
Añadir los beans AbreActiveXBean, TablasBean y VarBean.
Añadir al paquete modelo, la clase NucleoDAO.java
Incluir en el fichero de configuración las variables:
o
o
o



aplicacion. activeX.version=1,3,0,0
aplicacion. activeX.url=%WEB_ROOT%/ocx/IcmXVisorExcel.cab
aplicacion.directorio.temporal=/usr/aplic_ICM/prod/web/temp/pdf
Incluir un directorio ocx con el fichero IcmXVisorExcel.cab al mismo nivel que el
directorio WEB-INF.
Incluir la página IcmXVisorExcel.jsp.
Incluir en el fichero vistas.conf la linea icmx_visorexcel=IcmXVisorExcel.jsp
Área de Integración y Arquitectura de Aplicaciones
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Subdirección General de Desarrollo, Tecnología e Infraestructuras
Página: 9