Está en la página 1de 16

TUTORIAL DE ARIES

Contenido
Introduccin..........................................................................................................................................................................................1

Qu es Aries......................................................................................................................................................................................1
A quin va dirigido este tutorial........................................................................................................................................................1
Primeros pasos .....................................................................................................................................................................................2

Preparar nuestro entorno de desarrollo...........................................................................................................................................2


Comenzar una nueva aplicacin.......................................................................................................................................................2
Ejecutar la aplicacin........................................................................................................................................................................4
Establecer el paquete principal de nuestra aplicacin.....................................................................................................................5
El modelo de datos................................................................................................................................................................................6

Introduccin......................................................................................................................................................................................6
Nuestro modelo de datos.................................................................................................................................................................6
Escribir las clases Java del modelo....................................................................................................................................................7
Gestin de productos............................................................................................................................................................................9

Gestin de pedidos..............................................................................................................................................................................13

Las lneas del pedido.......................................................................................................................................................................14

Introduccin
Qu es Aries
Muy esquemticamente: Aries es una plataforma de desarrollo orientada a la creacin de aplicaciones JEE Web de Gestin, ricas
en interaccin, y de alta productividad que utiliza los estndares ms aceptados por el mercado y permite la programacin 100%
Java.

Puede conocer todos los detalles de sus caractersticas, documentacin adicional, descargas, etc. desde http://aries.seresco.es.

A quin va dirigido este tutorial


Este tutorial va dirigido a programadores que quieran dar los primeros pasos en Aries. Conviene que el programador que lea este
tutorial est familiarizado con los conceptos de JEE.

Tutorial Aries - Seresco Pgina 1


Primeros pasos
Preparar nuestro entorno de desarrollo
Aries es independiente de la herramienta de desarrollo, aunque se recomienda el uso de Eclipse. En principio, podramos ir
obteniendo los diferentes componentes de desarrollo, cada uno de su lugar correspondiente. Por ejemplo, bajarnos el SDK de
Java, el Eclipse, el Tomcat, etc.

Sin embargo creemos que resulta ms cmodo utilizar la distribucin del puesto de desarrollo que ofrece Aries para puestos de
desarrollo Windows, en su forma de un programa instalable. En el sitio Web de Aries podemos obtener este instalador. La
instalacin es muy sencilla y no supone intrusin en la mquina. Solamente crea el directorio c:\aries y un acceso directo a
Eclipse en el escritorio. El puesto de trabajo incluye Eclipse, SDK de Java, Tomcat, plugins, etc. Todo el software contenido en
este paquete es de libre distribucin.

Comenzar una nueva aplicacin.


Vamos a crear una nueva aplicacin sobre la que trabajaremos durante este tutorial. Para ello seguimos los siguientes pasos
desde Eclipse:

Ejecutar: File New Dynamic Web Project.

Pulsamos Next y aparece la siguiente pantalla, en la cual nos


aseguraremos de dar el nombre de la aplicacin, en nuestro
caso se llamar pedidos.

Si es la primera vez que creamos un proyecto puede que en


Target Runtime aparezca "None". En este caso tenemos que
pusar el botn "New..." para crear uno. Una vez pulsado
"New..." elegimos Apache/Apache Tomcat 6.0 y ponemos
como directorio c:\aries\tomcat, pulsamos Finish y ya
tenemos creado el Target Runtime.

Nos aseguramos tambin de que aparece seleccionado como


target Runtime el Apache Tomcat 6.0.

Pulsamos Finish para terminar de crear el proyecto.

Tutorial Aries - Seresco Pgina 2


A continuacin vamos a importar la aplicacin Plantilla de
Aries con lo que conseguiremos obtener todas las libreras
necesarias y disponer de unos ficheros fuente con los que
empezar. Podemos descargarla del sitio pblico de Aries.
(http://aries.seresco.es/download/plantilla.zip) y dejarla en
nuestro disco duro.

Luego, vamos al men de Eclipse y hacemos Import .... En la


pantalla que nos aparece elegimos la opcin General /
Archive File.

A continuacin elegimos el archivo plantilla.zip que nos hemos


descargado.

Pulsamos Finish. Cuando salgan mensajes de confirmacin


de sobrescritura los aceptamos todos. Con estos pasos ya
tenemos una aplicacin en blanco lista para trabajar con ella.

Tutorial Aries - Seresco Pgina 3


En general, trabajaremos con
la perspectiva JEE de Eclipse
que nos ofrece un conjunto de
ventanas apropiado para este
tipo de desarrollo. El aspecto
resultante del Eclipse una vez
realizados los pasos anteriores
sera ms o menos como sigue:

Ejecutar la aplicacin
En la pestaa "Servers", que normalmente aparece abajo en
nuestro espacio de trabajo debemos aadir el servidor Tomcat
6.0. Esto nos permitir en lo sucesivo poder arrancarlo,
pararlo, aadirle aplicaciones etc. Para ello pinchamos sobre
la pestaa servers y pulsamos botn derecho y elegimos new /
server y escogemos el Tomcat v6.0 server de la lista. Pulsamos
Finish y ya tenemos el servidor preparado.

Tutorial Aries - Seresco Pgina 4


Para ejecutar la aplicacin por primera vez
necesitamos aadirla al servidor Tomcat que tenemos
preparado. Para ello vamos a la ventana Servers y
pulsando con botn derecho sobre el servidor
Tomcat , elegimos Add and Remove Projects ... . Nos
aparecer la siguiente ventana:

En ella movemos nuestra aplicacin de pedidos sobre


los Configured projects. Una vez hecho esto, pulsamos
Finish.

A continuacin arrancamos el servidor pulsando botn


derecho sobre l y eligiendo la opcin Start. Al
hacerlo se activa la ventana Console donde nos
aparecen diversas informaciones de depuracin. La
importante es la ltima donde debe decir Server
Startup in xxx ms. Si el servidor no arranca diciendo
que tenemos el puerto 8080 ocupado, debemos dar
doble click sobre el servidor y utilizar otro puerto libre
cualquiera. en ese caso al probar debemos especificar
ese otro puerto en la URL que pongamos en el
navegador

Ya tenemos arrancado el servidor. Ahora abriremos un


navegador, y en l escribimos la direccin:
http://localhost:8080/pedidos. Nos aparecer la
aplicacin. Algo as como lo siguiente:

Como vemos, la aplicacin Plantilla nos proporciona un men de ejemplo bsico y una pantalla de bienvenida.

Establecer el paquete principal de nuestra aplicacin


La aplicacin plantilla que hemos importado en nuestra aplicacin Pedidos se distribuye bajo el paquete es.seresco.plantilla. A
continuacin convendra modificar este paquete por el que consideremos oportuno para nuestra aplicacin. Supongamos que
queremos usar el paquete es.seresco.pedidos.

Nos aseguraremos primero de elegir la representacin de


paquetes jerrquica: En la ventana de Project Explorer,
pinchamos sobre el tringulo de la cabecera, elegimos
Package Presentation y Hierarchical

Tutorial Aries - Seresco Pgina 5


Usamos la opcin Refactor - rename de botn derecho
situados sobre el paquete es.seresco.plantilla cubrimos la
siguiente pantalla: (Es importante marcar todos los check y
poner * en el patrn para que lo cambie en todas partes.

El modelo de datos
Introduccin
A menudo en el desarrollo de aplicaciones surge la duda de si empezar a desarrollar el modelo de datos desde Java o desde
herramientas externas para luego importar en Java. No es competencia de la plataforma determinar un orden determinado.

Sin embargo en el tutorial nos interesa desarrollar la aplicacin sin la parafernalia de herramientas externas de forma que se
pueda hacer todo directamente desde nuestro IDE sin mayores problemas. Para este enfoque Hibernate nos ayudar bastante
puesto que es capaz de crear y actualizar la estructura de la base de datos mientras desarrollamos todo ello a partir de las clases
Java del modelo.

Otra opcin, que no vamos a seguir en el tutorial sera utilizar Hibernate-Tools para hacer Ingeniera Inversa, lo cual nos
permitira obtener las clases Java a partir de una estructura de base de datos existente. (Esto se puede consultar en la Wiki de
Aries).

En este tutorial utilizamos la base de datos HSQLDB (hsqldb.org) que tiene un motor muy liviano y la incluimos en el puesto de
desarrollo. Esta base de datos es muy til para tutoriales y pruebas por su sencillez de configuracin. De hecho, tal como viene la
aplicacin plantilla preparada, no necesitamos configuracin adicional ni arrancar ninguna otra tarea ya que el motor est
embebido en el servidor. Los datos, fsicamente, se guardan en el directorio c:\aries\datos.

Nuestro modelo de datos


El modelo de datos de la aplicacin es grficamente el siguiente:

Tutorial Aries - Seresco Pgina 6


class tutorial

Pedido

- codPedi do: Integer


- fecha: Date

1
1..*

LineaPedido Producto
- canti dad: Integer - codProducto: Integer
- codArti cul o: Integer
1..* 1 - descri pci on: S tring
- codPedi do: Integer - preci o: B igDeci m al
- l inP edido: Integer

Es decir, tenemos un conjunto de productos y sobre ellos permitiremos crear pedidos. Cada pedido tiene una o ms lneas de
pedido y cada lnea de pedido hace referencia a un producto y establece una cantidad a vender.

Escribir las clases Java del modelo.


Las clases del modelo se escriben en el paquete datos por debajo del paquete de aplicacin. Se utilizan anotaciones JPA para
definir con precisin las propiedades de la tabla, claves, relaciones y datos.

Crearemos primero la Entidad Producto. Para ello vamos al paquete es.seresco.pedidos.datos y sobre l elegimos la opcin
de botn derecho new Class, le damos el nombre Producto y escribimos el siguiente cdigo:
package es.seresco.pedidos.datos;
import java.math.BigDecimal;

import javax.persistence.*;

@Entity
public class Producto {
private Integer codProducto;
private String descripcion;
private BigDecimal precio;

@Id
@Column(length=8)
public Integer getCodProducto() {
return codProducto;
}

@Column(length=50)
public String getDescripcion() {
return descripcion;
}

@Column(length=10, scale=2)
public BigDecimal getPrecio() {
return precio;
}

public void setCodProducto(Integer codProducto) {


this.codProducto = codProducto;
}

public void setDescripcion(String descripcion) {


this.descripcion = descripcion;

Tutorial Aries - Seresco Pgina 7


}
public void setPrecio(BigDecimal precio) {
this.precio = precio;
}
}

Prestemos atencin a lo siguiente:

Ntese que la clase es un simple Bean de Java con sus datos privados y sus mtodos get y set.

La clase tiene la anotacin @Entity.

La clave principal va marcada con la anotacin @Id.

Los mtodos get tienen la anotacin @Column para ayudar a completar la informacin que Aries ms tarde utilizar,
por ejemplo, para establecer mscaras de edicin.

Crearemos la entidad Pedido siguiendo la misma idea:


package es.seresco.pedidos.datos;
import java.util.Date;

import javax.persistence.*;

@Entity
public class Pedido {
private Integer codPedido;
private Date fecha;

@Id
@Column(length=8)
@GeneratedValue(strategy=GenerationType.TABLE)
public Integer getCodPedido() {
return codPedido;
}

public Date getFecha() {


return fecha;
}
public void setCodPedido(Integer codPedido) {
this.codPedido = codPedido;
}
public void setFecha(Date fecha) {
this.fecha = fecha;
}

Nos queda por declarar la entidad LineaPedido que es la ms compleja por una parte por tener una relacin al menos con la
entidad Producto. Declararemos as la clase:
package es.seresco.pedidos.datos;

import javax.persistence.*;

@Entity
public class LineaPedido {
private Integer lineaPedido;
private Integer codPedido;
private Producto producto;
private Integer cantidad;

@Id
@Column(length=8)
@GeneratedValue(strategy=GenerationType.TABLE)
public Integer getLineaPedido() {

Tutorial Aries - Seresco Pgina 8


return lineaPedido;
}

public Integer getCodPedido() {


return codPedido;
}

@ManyToOne(fetch=javax.persistence.FetchType.LAZY, targetEntity=Producto.class)
@JoinColumn(name="CODPRODUCTO")
public Producto getProducto() {
return producto;
}

@Column(length=8)
public Integer getCantidad() {
return cantidad;
}

public void setLineaPedido(Integer lineaPedido) {


this.lineaPedido = lineaPedido;
}
public void setCodPedido(Integer codPedido) {
this.codPedido = codPedido;
}
public void setProducto(Producto producto) {
this.producto = producto;
}

public void setCantidad(Integer cantidad) {


this.cantidad = cantidad;
}
}

Y prestaremos atencin a lo siguiente:

Podramos haber hecho un diseo de la clase con clave compuesta por codPedido y linPedido, pero por simplicidad lo
hacemos de clave simple, que adems es la opcin recomendada por Hibernate.

Para declarar la relacin con la entidad Producto hemos utilizado las anotaciones ManyToOne y JoinColumn.

Gestin de productos
Vamos a crear una funcin para buscar, crear, consultar, modificar y borrar productos.

Situados en el proyecto pedidos pulsamos botn derecho -


New y elegimos Pantalla.

Tutorial Aries - Seresco Pgina 9


En la pantalla del asistente que aparece a continuacin
elegimos el tipo Gestin, elegimos la entidad principal que
vamos a manejar que es Producto, le damos un nombre, y
un ttulo.

Marcamos tambin la opcin de Generar bsqueda para


que nos genere una pantalla de bsqueda y la damos un
nombre y un ttulo a la bsqueda .

Pulsamos Finish, y como resultado obtendremos los fuentes


Java y XML de las pantallas de Gestin y de Bsqueda.

Cada pantalla en Aries se compone de dos ficheros:

1. Diseo: Es la Vista de la pantalla. Se trata de un fichero XML que define los componentes que colocamos en la
pantalla.
2. Controlador: Es la clase Java que controla los eventos y el funcionamiento de la pantalla.

El asistente nos ha generado dos pantallas. La bsqueda y la gestin.

Comenzamos editando el fichero ProductoBusqueda.xml. Las bsquedas tienen dos partes bien diferenciadas. Los criterios y los
resultados. Introduciremos campos para poder establecer criterios de bsqueda y tambin introduciremos campos para mostrar
los resultados El asistente nos ha dejado dos marcas para que sepamos dnde introducir ambas partes.

Comenzamos por los criterios: Introducimos lo que aparece en negrita a continuacin:


<Bloque titulo="Criterios">
<Grid >
<TextField id="producto.codProducto" etiqueta="Cdigo"/>
<TextField id="producto.descripcion" etiqueta="Descripcin"/>
</Grid>
</Bloque>

Luego, en la zona de resultados escribiremos:


<Tabla id="Resultados" height="400">
<TextField id="codProducto" etiqueta="Cdigo"/>
<TextField id="descripcion" etiqueta="Descripcin"/>
<TextField id="precio" etiqueta="Precio"/>
</Tabla>

Ahora vamos a editar el fichero ProductoGestion.xml que es la definicin de la pantalla de gestin donde vamos a poder crear,
consultar, modificar y borrar productos. En ella declaramos los campos que queremos gestionar:
<Grid size="1">
<Grid >
<TextField id="producto.codProducto" etiqueta="Cdigo"/>
<TextField id="producto.descripcion" etiqueta="Descripcin"/>
<TextField id="producto.precio" etiqueta="Precio"/>
</Grid>
<Include ref="plantillas/BotoneraGestion.xml"/>
</Grid>

Tutorial Aries - Seresco Pgina 10


Ahora solamente nos queda por aadir una referencia a la funcin de bsqueda de productos en el men general. Vamos
entonces a editar el fichero src/recursos/menus/MenuEscritorio.xml e introducimos lo que aparece en negrita a continuacin:
<Opcion texto="$menu.basicos" >
<Opcion texto="Productos" id="ProductoBusqueda"/>
</Opcion>

Ahora ya estamos listos para probar esta funcionalidad. Vamos a la ventana de Servers y pulsamos de nuevo el botn de
arrancar el servidor para asegurar que nos coge los ltimos cambios.

Con el navegador vamos a la aplicacin y abrimos la opcin


Productos y vemos cmo nos ha quedado la pantalla de
bsqueda.

Desde ella podremos ir a crear nuevos productos pulsando


el botn Nuevo.... Introducimos los datos del nuevo
producto y pulsamos Grabar.

Tutorial Aries - Seresco Pgina 11


Luego, podemos volver a la bsqueda, aceptar los criterios
y ver los registros que hayamos creado.

Tutorial Aries - Seresco Pgina 12


Gestin de pedidos
Crearemos a continuacin la gestin de pedidos. Seguimos los mismos pasos que habamos seguido para crear la de productos:

Mediante la opcin de botn derecho New PAntalla


accedemos al asistente y cubrimos los datos tal como se ve en
esta imagen.

Nos aseguramos de marcar Generar Bsqueda y de cubrir


los nombres y ttulos.

La entidad principal es Pedido.

Pulsamos Finish

Obtenemos los ficheros de diseo y control de las pantallas de bsqueda y gestin de pedidos. Del mismo modo que hicimos con
los productos, introduciremos los campos en las zonas de criterios, resultados de la bsqueda y en la gestin.

Criterios de la bsqueda:
<Bloque titulo="Criterios">
<Grid >
<TextField id="pedido.codPedido" etiqueta="Cdigo"/>
<Row etiqueta="Entre fechas">
<CampoFecha id="pedido.fecha.min" />
<CampoFecha id="pedido.fecha.max" etiqueta="y"/>
</Row>
</Grid>
</Bloque>

En este caso hemos decidido poner como criterio el rango de fechas. Ntese que el sufijo .min, .max permite a Aries conocer
nuestras intenciones sobre el criterio que queremos que aplique.

Resultados:
<Tabla id="Resultados" height="400">
<TextField id="codPedido" etiqueta="Cdigo"/>
<CampoFecha id="fecha" etiqueta="Fecha"/>
</Tabla>

En la gestin de pedidos:
<Grid size="1">
<Grid >
<TextField id="pedido.codPedido" etiqueta="Cdigo"/>
<CampoFecha id="pedido.fecha" etiqueta="Fecha"/>
</Grid>
<Include ref="plantillas/BotoneraGestion.xml"/>
</Grid>

Aadirlo al men general:

Tutorial Aries - Seresco Pgina 13


<Opcion texto="$menu.basicos" >
<Opcion texto="Productos" id="ProductoBusqueda"/>
<Opcion texto="Pedidos" id="PedidoBusqueda"/>
</Opcion>

Las lneas del pedido


Ahora queremos aadir lneas al pedido para darle la funcionalidad requerida. Lo haremos editando el fichero
PedidoGestion.xml y aadiendo lo siguiente:

<Grid size="1">
<Bloque titulo="Datos generales">
<Grid >
<TextField id="pedido.codPedido" etiqueta="Cdigo" enabled="false"/>
<CampoFecha id="pedido.fecha" etiqueta="Fecha"/>
</Grid>
</Bloque>
<Bloque titulo="Detalle">
<GrupoTablaGestion entidad="LineaPedido"
camposCabecera="pedido.codPedido"
camposDetalle="codPedido">
<Tabla id="lineaPedido">
<Label id="estado"/>
<TextField id="lineaPedido.lineaPedido" visible="false"/>
<CampoConBusqueda id="lineaPedido.producto.codProducto"
etiqueta="Producto" idBoton="buscarProducto"/>
<TextField id="lineaPedido.producto.descripcion" etiqueta="Descripcin" enabled="false"/>
<TextField id="lineaPedido.producto.precio" etiqueta="Precio" enabled="false"/>
<TextField id="lineaPedido.cantidad" etiqueta="Cantidad"/>
<TextField id="importe" edicion="n:##,###,##0.00" enabled="false" etiqueta="Importe"/>
</Tabla>
</GrupoTablaGestion>
</Bloque>
<Include ref="plantillas/BotoneraGestion.xml"/>
</Grid>

Con este diseo de pantalla ya podemos


insertar lneas al pedido aunque de momento
an no se muestra la descripcin, ni el precio
del artculo, ni el importe. Para ello
tendremos ya que escribir cdigo en Java.

Mostrar la descripcin y el precio del producto al introducirlo.


Queremos que cada vez que se modifica el cdigo de producto se muestre su descripcin y precio asociados.

Tutorial Aries - Seresco Pgina 14


1. Declaramos la relacin entre LineaPedido y Producto escribiendo lo siguiente en el mtodo inicializar de
PedidoGestion.
getManejadorRelaciones().getRelacion(Introspector.getNombreEntidad(LineaPedido.class))
.addRelacion(
new Relacion("lineaPedido.producto", Producto.class,
new MapeadorBasico(this,"lineaPedido.producto.codProducto","codProducto")
)
);

Mediante este cdigo le hemos dicho a Aries que debe considerar que el campo lineaPedido.producto.codProducto es clave
origen de una relacin con la entidad Producto, de tal forma que cada vez que el usuario introduzca un cdigo de producto y
pulse INTRO se cargarn los datos de la relacin, en este caso la descripcin y el precio.

Acceder a la bsqueda de productos


Podemos comprobar que en el diseo de la pantalla para el campo codProducto hemos decidido utilizar un componente
llamado CampoConBusqueda.
<CampoConBusqueda id="lineaPedido.producto.codProducto"
etiqueta="Producto" idBoton="buscarProducto"/>

Este componente hace que se muestre un botn al lado del campo que permitir al usuario elegir el cdigo de producto
mediante una pantalla de bsqueda que ser precisamente la misma pantalla de bsqueda de productos que hemos
desarrollado unos pasos atrs.

Para que esto funcione tenemos que implementar en la parte Java el evento de pulsacin del botn buscarProducto. As:
public void doBuscarProducto() {
LlamadasUtil.llamarBusqueda(this, ProductoBusqueda.class,
"codProducto" , "lineaPedido.producto.codProducto");
}

Mostrar el importe de cada fila


Queremos mostrar el importe de cada fila segn se introduce la cantidad, y tambin al mostrar pedidos ya creados. El importe
de cada fila es el resultado de multiplicar el precio por la cantidad. En el diseo de la pantalla ya hemos preparado una columna
dentro de la tabla para mostrar el importe. Era este:
<TextField id="importe" edicion="n:##,###,##0.00" enabled="false" etiqueta="Importe"/>

Podemos prestar atencin a dos hechos:

Hemos tenido que especificar una mscara de edicin dado que este campo no pertenece al modelo y Aries no puede
deducir la mscara de las anotaciones JPA. Ntese que para el resto de campos que hemos declarado no ha sido
necesario introducir esta mscara.

Lo declaramos con el atributo enabled=false para indicar que es un campo slo de consulta.

Para mostrar el importe vamos a aadir un escuchador al modelo de la tabla. El Modelo de la tabla es realmente el contenido
de la misma y aadir un escuchador consiste en escribir cdigo Java que ser invocado cada que el contenido de la tabla cambie.

As:

1. Para facilitar el acceso a los componentes, utilizando el asistente de Aries vamos a generar una clase llamada
Constantes que contendr los nombres de los controles que tenemos en la pantalla. As podremos referirnos a ellos con
seguridad de no equivocarnos. Para ello pulsamos botn derecho sobre la clase Java PedidoGestion y elegimos la opcin
Aries Generar literales de componentes. Como resultado obtenemos la clase Constantes con todos los nombres de
componentes.

Tutorial Aries - Seresco Pgina 15


2. Declaramos una instancia de la tabla a nivel de la clase:
// En la clase.
private Tabla tabla;

3. Y la inicializamos dentro del mtodo inicializar


// Dentro de inicializar
...
tabla=getComponent(Constantes.LINEAPEDIDO);

4. Ahora tenemos que aadir cdigo al programa Java para que se realice el clculo en los momentos precisos. Con este
cdigo aadimos un escuchador a los cambios del modelo de la tabla para calcular el importe siempre que cambie
cualquier columna que no sea el importe mismo. De esta forma se calcular el importe tanto en la carga de la tabla
como cuando el usuario modifique el precio o la cantidad.
RelacionMultiple rel=(RelacionMultiple)getManejadorRelaciones().getRelacion(Constantes.LINEAPEDIDO);
rel.getGestorTabla().addTableModelListener(new TableModelListener() {
public void tableChanged(TableModelEvent evento) {
if(evento.getFirstRow()>=0 && evento.getFirstRow()<tabla.getModel().getRowCount() &&
evento.getColumn()!=tabla.getIndiceColumna(Constantes.IMPORTE)) {
calcularImporte(evento.getFirstRow());
}
}
});

5. Por ltimo escribimos el mtodo calcularImporte:


public void calcularImporte(Integer row) {
GestionTableModel modelo = (GestionTableModelEnLinea) tabla.getModel();
BigDecimal cantidad = modelo.getNumeroAt(Constantes.LINEAPEDIDO_CANTIDAD, row);
BigDecimal precioVta = modelo.getNumeroAt( Constantes.PRODUCTO_PRECIO, row);
BigDecimal importe=precioVta.multiply(cantidad);
modelo.setValueAt(importe, Constantes.IMPORTE, row);
}

Y con esto ya hemos conseguido que se


actualice el importe para cada fila.

Tutorial Aries - Seresco Pgina 16

También podría gustarte