def-input-date es la mascara que se utiliza para validar las fechas
ingresadas, el otro es la mascara de salida.
Nosotros mejoraremos DefaultCalendar para que use el def-input-date
definido en web.xml en estas lineas:
//set date
Date calDate = ValidatorUtil.testDate(d, "dd-MM-yy");
if (calDate==null)
calDate = new Date();
//lower bound date
Date minDate = ValidatorUtil.testDate(d2, "dd-MM-yy");
//upper bound date
Date maxDate = ValidatorUtil.testDate(d3, "dd-MM-yy");
Saludos,
Martin
2008/8/29 Gustavo Javier Dottori <gustavo.dottori@...>:
> Gracias Martín por la sugerencia! De todos modos, viendo el fuente de
> DefaultCalendar, también utiliza la separación con - cuando valida el
> formato de la fecha que tiene el campo text para mostrar inicialmente en el
> calendario como así también las fechas mínima y máxima, por lo que me parece
> que tendría que modificar el service también.
>
> Ya que lo mencionabas en correo anterior, dónde se utiliza el formato
> definido en el web.xml con el nombre def-input-date? Para armar la fecha a
> reemplazar en los templates? sql, html, etc?
>
> Un abrazo
>
> 2008/8/29 Martin Cordova <martin.cordova@...>
>>
>> No lo tiene como opciones configurables. Podrias modificar
>> dinamica.DefaultCalendar, en el metodo service() se crea el string que
>> usara para retornar la fecha, y ahi se le aplica el formato:
>>
>> rs.setValue("onclick", this.getCellOnClickValue(id, c, day, minDate,
>> maxDate, date));
>>
>> La variable "date" es la que tienes que reformatear antes de esta
>> llamada. Tanto el padding con ceros como el separador lo definirias en
>> service(). Tomaremos esto en cuenta, porque en mi opinion debio usar
>> el formato definido en web.xml para toda la aplicacion y no uno
>> cableado. Mucho codigo en Dinamica lee este formato en web.xml a la
>> hora de validar o formatear una fecha.
>>
>> Te doy una idea sin embargo por si quieres hacer un parche para ti ahora
>> mismo:
>>
>> 1) Crea tu propia clase Calendar, extiende a dinamica.DefaultCalendar.
>> 2) Sobreescribe el metodo getCellOnClickValue() y le añades esto:
>>
>> Al parametro "String date" le haces un StringUtil.split(date, "-")
>> A cada elemento resultante (d-m-a) le haces el padding con cero si lo
>> necesita:
>> if (elem[i].length==1) elem[i] = "0" + elem[i];
>> Los vuelves a juntar usando un "/"
>> Haces un return super.getCellOnClickValue() pasando el nuevo date.
>>
>> Saludos,
>> Martin
>>
>> 2008/8/29 Gustavo Javier Dottori <gustavo.dottori@...>:
>>
>> > Hola Martín, un par de consultas respecto al calendario:
>> >
>> > 1) Se le puede indicar que en vez de que use '-' como separador de
>> > partes
>> > use la '/' en la fecha que retorna?
>> > 2) Se le puede indicar que la fecha que retorne tenga como formato los
>> > ceros
>> > cuando tenga un sólo dígito el mes y el día? Es decir, que retorne
>> > 04-08-2008 en vez de 4-8-2008.
>> >
>> > Saludos
>> >
>>
>> --
>> Dinámica - Framework Java/Ajax
>> 100% software libre
>> http://www.martincordova.com
>
>
No entendi la pregunta, sorry. Revisaste el template de EditForm? ese
tiene lo ultimo en manejo de chechboxes con Dinamica, usando Ajax.
El <print mode="checkbox"..> sirve para marcar uno o varios
checkboxes, si el recordset tiene mas de un row, entonces el framework
entiende que tiene que marcar mas de uno, el nombre del control se lo
das tu, el compara el valor del check con el valor del campo en el
recordset.
Con varios <print mode="checkbox"..> en tu config.xml puedes marcar
varias secciones de checkboxes.
Saludos,
Martin
2008/8/29 <eduardo.carrasquero@...>:
> Hola, estamos haciendo una aplicacion de encuestas, tengo un
> problemita con el tema del checkbox. El framework ayuda a llenarte las
> opciones del checkbox que anteriormente habian seleccionado, pero de
> la manera que estoy viendo en el "User's Guide" de Dinamica no me
> sirve si tengo por ejemplo 2 o mas checkbox en un mismo formulario,
> porque tenemos un sql con un campo titulo, y este campo debe ser igual
> al name del checkbox, si ejecuto de nuevo el action, el nuevo checkbox
> tendra el mismo nombre y cuando envio el formulario no se sabe cual es
> el primer checkbox y cual es el segundo.
>
> Cual es la manera correcta de que me llene mis checkbox de la base de
> datos como lo esta haciendo actualmente, pero que cada uno tenga un
> name distinto.
>
> Anexo parte de los 3 archivos en cuestion.
>
> CHECKBOX-QUERY.SQL
>
> select titulo from a_resp_save
>
> CONFIG.XML
>
> <recordset id="checkbox-query.sql" source="sql" scope="transaction" />
> <print mode="checkbox" recordset="checkbox-query.sql" control="titulo" />
>
> TEMPLATE.HTM
>
> <input type="checkbox" name="titulo" value="${ses:answerr}">
>
> Gracias.
>
> Eduardo Carrasquero
> addsolutions
>
>
--
Dinámica - Framework Java/Ajax
100% software libre
http://www.martincordova.com
Hola, estamos haciendo una aplicacion de encuestas, tengo un
problemita con el tema del checkbox. El framework ayuda a llenarte las
opciones del checkbox que anteriormente habian seleccionado, pero de
la manera que estoy viendo en el "User's Guide" de Dinamica no me
sirve si tengo por ejemplo 2 o mas checkbox en un mismo formulario,
porque tenemos un sql con un campo titulo, y este campo debe ser igual
al name del checkbox, si ejecuto de nuevo el action, el nuevo checkbox
tendra el mismo nombre y cuando envio el formulario no se sabe cual es
el primer checkbox y cual es el segundo.
Cual es la manera correcta de que me llene mis checkbox de la base de
datos como lo esta haciendo actualmente, pero que cada uno tenga un
name distinto.
Anexo parte de los 3 archivos en cuestion.
CHECKBOX-QUERY.SQL
select titulo from a_resp_save
CONFIG.XML
<recordset id="checkbox-query.sql" source="sql" scope="transaction" />
<print mode="checkbox" recordset="checkbox-query.sql" control="titulo" />
TEMPLATE.HTM
<input type="checkbox" name="titulo" value="${ses:answerr}">
Gracias.
Eduardo Carrasquero
addsolutions
def-input-date es la mascara que se utiliza para validar las fechas
ingresadas, el otro es la mascara de salida.
Nosotros mejoraremos DefaultCalendar para que use el def-input-date
definido en web.xml en estas lineas:
//set date
Date calDate = ValidatorUtil.testDate(d, "dd-MM-yy");
if (calDate==null)
calDate = new Date();
//lower bound date
Date minDate = ValidatorUtil.testDate(d2, "dd-MM-yy");
//upper bound date
Date maxDate = ValidatorUtil.testDate(d3, "dd-MM-yy");
Saludos,
Martin
2008/8/29 Gustavo Javier Dottori <gustavo.dottori@...>:
> Gracias Martín por la sugerencia! De todos modos, viendo el fuente de
> DefaultCalendar, también utiliza la separación con - cuando valida el
> formato de la fecha que tiene el campo text para mostrar inicialmente en el
> calendario como así también las fechas mínima y máxima, por lo que me parece
> que tendría que modificar el service también.
>
> Ya que lo mencionabas en correo anterior, dónde se utiliza el formato
> definido en el web.xml con el nombre def-input-date? Para armar la fecha a
> reemplazar en los templates? sql, html, etc?
>
> Un abrazo
>
> 2008/8/29 Martin Cordova <martin.cordova@...>
>>
>> No lo tiene como opciones configurables. Podrias modificar
>> dinamica.DefaultCalendar, en el metodo service() se crea el string que
>> usara para retornar la fecha, y ahi se le aplica el formato:
>>
>> rs.setValue("onclick", this.getCellOnClickValue(id, c, day, minDate,
>> maxDate, date));
>>
>> La variable "date" es la que tienes que reformatear antes de esta
>> llamada. Tanto el padding con ceros como el separador lo definirias en
>> service(). Tomaremos esto en cuenta, porque en mi opinion debio usar
>> el formato definido en web.xml para toda la aplicacion y no uno
>> cableado. Mucho codigo en Dinamica lee este formato en web.xml a la
>> hora de validar o formatear una fecha.
>>
>> Te doy una idea sin embargo por si quieres hacer un parche para ti ahora
>> mismo:
>>
>> 1) Crea tu propia clase Calendar, extiende a dinamica.DefaultCalendar.
>> 2) Sobreescribe el metodo getCellOnClickValue() y le añades esto:
>>
>> Al parametro "String date" le haces un StringUtil.split(date, "-")
>> A cada elemento resultante (d-m-a) le haces el padding con cero si lo
>> necesita:
>> if (elem[i].length==1) elem[i] = "0" + elem[i];
>> Los vuelves a juntar usando un "/"
>> Haces un return super.getCellOnClickValue() pasando el nuevo date.
>>
>> Saludos,
>> Martin
>>
>> 2008/8/29 Gustavo Javier Dottori <gustavo.dottori@...>:
>>
>> > Hola Martín, un par de consultas respecto al calendario:
>> >
>> > 1) Se le puede indicar que en vez de que use '-' como separador de
>> > partes
>> > use la '/' en la fecha que retorna?
>> > 2) Se le puede indicar que la fecha que retorne tenga como formato los
>> > ceros
>> > cuando tenga un sólo dígito el mes y el día? Es decir, que retorne
>> > 04-08-2008 en vez de 4-8-2008.
>> >
>> > Saludos
>> >
>>
>> --
>> Dinámica - Framework Java/Ajax
>> 100% software libre
>> http://www.martincordova.com
>
>
--
Dinámica - Framework Java/Ajax
100% software libre
http://www.martincordova.com
Gracias Martín por la sugerencia! De todos modos, viendo el fuente de DefaultCalendar, también utiliza la separación con - cuando valida el formato de la fecha que tiene el campo text para mostrar inicialmente en el calendario como así también las fechas mínima y máxima, por lo que me parece que tendría que modificar el service también.
Ya que lo mencionabas en correo anterior, dónde se utiliza el formato definido en el web.xml con el nombre def-input-date? Para armar la fecha a reemplazar en los templates? sql, html, etc?
No lo tiene como opciones configurables. Podrias modificar
dinamica.DefaultCalendar, en el metodo service() se crea el string que
usara para retornar la fecha, y ahi se le aplica el formato:
La variable "date" es la que tienes que reformatear antes de esta
llamada. Tanto el padding con ceros como el separador lo definirias en
service(). Tomaremos esto en cuenta, porque en mi opinion debio usar
el formato definido en web.xml para toda la aplicacion y no uno
cableado. Mucho codigo en Dinamica lee este formato en web.xml a la
hora de validar o formatear una fecha.
Te doy una idea sin embargo por si quieres hacer un parche para ti ahora mismo:
1) Crea tu propia clase Calendar, extiende a dinamica.DefaultCalendar.
2) Sobreescribe el metodo getCellOnClickValue() y le añades esto:
Al parametro "String date" le haces un StringUtil.split(date, "-")
A cada elemento resultante (d-m-a) le haces el padding con cero si lo necesita:
if (elem[i].length==1) elem[i] = "0" + elem[i];
Los vuelves a juntar usando un "/"
Haces un return super.getCellOnClickValue() pasando el nuevo date.
> Hola Martín, un par de consultas respecto al calendario:
>
> 1) Se le puede indicar que en vez de que use '-' como separador de partes
> use la '/' en la fecha que retorna?
> 2) Se le puede indicar que la fecha que retorne tenga como formato los ceros
> cuando tenga un sólo dígito el mes y el día? Es decir, que retorne
> 04-08-2008 en vez de 4-8-2008.
>
> Saludos
>
No lo tiene como opciones configurables. Podrias modificar
dinamica.DefaultCalendar, en el metodo service() se crea el string que
usara para retornar la fecha, y ahi se le aplica el formato:
rs.setValue("onclick", this.getCellOnClickValue(id, c, day, minDate,
maxDate, date));
La variable "date" es la que tienes que reformatear antes de esta
llamada. Tanto el padding con ceros como el separador lo definirias en
service(). Tomaremos esto en cuenta, porque en mi opinion debio usar
el formato definido en web.xml para toda la aplicacion y no uno
cableado. Mucho codigo en Dinamica lee este formato en web.xml a la
hora de validar o formatear una fecha.
Te doy una idea sin embargo por si quieres hacer un parche para ti ahora mismo:
1) Crea tu propia clase Calendar, extiende a dinamica.DefaultCalendar.
2) Sobreescribe el metodo getCellOnClickValue() y le añades esto:
Al parametro "String date" le haces un StringUtil.split(date, "-")
A cada elemento resultante (d-m-a) le haces el padding con cero si lo necesita:
if (elem[i].length==1) elem[i] = "0" + elem[i];
Los vuelves a juntar usando un "/"
Haces un return super.getCellOnClickValue() pasando el nuevo date.
Saludos,
Martin
2008/8/29 Gustavo Javier Dottori <gustavo.dottori@...>:
> Hola Martín, un par de consultas respecto al calendario:
>
> 1) Se le puede indicar que en vez de que use '-' como separador de partes
> use la '/' en la fecha que retorna?
> 2) Se le puede indicar que la fecha que retorne tenga como formato los ceros
> cuando tenga un sólo dígito el mes y el día? Es decir, que retorne
> 04-08-2008 en vez de 4-8-2008.
>
> Saludos
>
--
Dinámica - Framework Java/Ajax
100% software libre
http://www.martincordova.com
Hola Martín, un par de consultas respecto al calendario:
1) Se le puede indicar que en vez de que use '-' como separador de partes use la '/' en la fecha que retorna? 2) Se le puede indicar que la fecha que retorne tenga como formato los ceros cuando tenga un sólo dígito el mes y el día? Es decir, que retorne 04-08-2008 en vez de 4-8-2008.
Como estan usando una version vieja, tienen una manera facil aunque no
muy robusta de hacerlo:
1) Hay una tabla en el esquema de seguridad, llamada s_active_sessions
o algo similar, ya fue descontinuada en la version actual
2) Cuando alguien hace login, se registra su login y ID de sesion en
esta tabla, tu aplicacion tiene un modulo de tipo SessionListener que
cuando hace logout elimina este registro.
3) Si el punto 2 funcionara bien, los registros presentes en la tabla
mencionada representan las sesiones activas, y si haces una busqueda
por un login especifico, podrias saber si alguien esta logeado o no.
4) Ahora bien, donde hacer esta busqueda? pueden extender la clase
Login del framework, y alli añadir el chequeo contra esta tabla y
retornar un codigo adicional, y proveer un action adicional, para
presentar el mensaje de que ya tiene una sesion activa.
Este enfoque tiene una debilidad: si por algun motivo el servidor de
aplicaciones se reinicia anormalmente, el SessionListener no tendra
chance de remover las sesiones de la tabla, y quedaran como "activas",
creando inconvenientes con este mecanismo. Una posible solucion es
levantar un servlet cuando se carga la aplicacion cuya unica utilidad
es limpiar esta tabla, tambien puede ser un ContextListener o un
Filtro que extienda a SecurityFilter. En fin, deben asegurarse que
cuando arranque la aplicacion, esta tabla este limpia, al menos para
las sesiones registradas de este contexto (es multiaplicacion).
Otra manera, en mi opinion mas profesional de hacerlo, es usando un
HashMap almacenado en el contexto y usando Listeners, que son clases
que implementan interfaces especiales del API de servlets y se invocan
cuando ocurren ciertos eventos. Por ejemplo cuando se destruye o
invalida una sesion, cuando metes un atributo en una sesion, etc.
Tambien interceptan eventos del contexto y del request.
Podrias por convencion, almacenar un HashMap en el contexto, donde
almacenas los logins que han ocurrido, y antes de almacenarlo
verificas si esta (lo haces en tu clase de Login), y se existe,
retornas un codigo de error como en el caso anterior.
Interceptas luego el vencimiento de sesion usando un Listener, y
remueves del HashMap la informacion de esta sesion o login, y asi
mantienes todo en memoria.
Si quieres tener la lista de usuarios activos, simplemente obtienes el
HashMap del contexto, se almacena como un atributo.
Lo importante del enfoque que escojas es que resista fallas del
servidor, y que no niegue erroneamente a un usuario el servicio de
login.
El mecanismo de sesiones activas tal como estaba implementado era
incompleto, y como no le dedicamos tiempo a mejorarlo, decidimos
sacarlo de momento. La verdad es que esta es la primera vez que me
preguntan esto, eso tambien influyo, como nadie dijo sentirse afectado
cuando se discutio eliminar esto, entonces procedimos a removerlo.
Otra cosa que entiendo querian saber en tu oficina era como distinguir
usuarios externos de internos, pues si hay algun rol especifico que
los internos tengas y los externos no, o viceversa, con un simple SQL
pueden sacar la lista de los usuarios internos o externos, o dado un
userlogin saber si es de un tipo u otro y proceder a aplicarle o no
alguna regla especial.
Recuerden que las clases Transaction proveen el metodo
isUserInRole(roleName) para saber si un usuario tiene un rol asignado.
Saludos,
Martin
2008/8/28 Jayson Mijares <jaysondigitel@...>:
> Hola Martin, gracias por la ayuda del classpath,
>
> me inidcaron que te preguntara por esta vía sobre:
>
> - Como hariamos para que un usuario no pueda logearse mas de una vez
> simultaneamente en la aplicación, gracias
>
> saludos .-
>
>
> __________________________________________________
> Correo Yahoo!
> Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
> Regístrate ya - http://correo.yahoo.es
>
--
Dinámica - Framework Java/Ajax
100% software libre
http://www.martincordova.com
me inidcaron que te preguntara por esta vía sobre:
- Como hariamos para que un usuario no pueda logearse mas de una vez simultaneamente en la aplicación, gracias
saludos .-
__________________________________________________ Correo Yahoo! Espacio para todos tus mensajes, antivirus y antispam ¡gratis! Regístrate ya - http://correo.yahoo.es
Martin, habia un problema con el .classpath que no hacia referencia a los .jar
necesarios para la aplicación
gracias.-
--- El mar, 26/8/08, Martin Cordova <martin.cordova@...> escribió:
De: Martin Cordova <martin.cordova@...> Asunto: Re: [dinamica4java] consulta del framework Para: dinamica4java@... Fecha: martes, 26 agosto, 2008 2:00
Si estas usando Tomcat para desarrollo deberias tener en tu proyecto referenciado servlet-api. jar, si estas usando resin, creo que es resin.jar, pero no estoy seguro, añade todos.
Que paso con ese proyecto? El template de proyecto en Dinamica (incluyendo el viejo) trae un .classpath con todo lo necesario referenciado.
Saludos, Martin
2008/8/26 Jayson Mijares <jaysondigitel@ yahoo.es>: > Martin , > > creo que me hace falta el javax, cuando intento compilar el archivo > NoRecordsFound. java que agregue al framework de hace un año aprox. > > import > > javax.servlet. http.HttpServlet Request ----> esto se coloca en rojo como > que no lo > consigue el eclipse > > dónde ubico el javax para que cuando compile no coloque la clase en rojo > porque creo que en
las references del framework no las consigo , o no se si > es en el tomcat donde debe ir?? > > ____________ _________ _________ _________ _________ __ > Correo Yahoo! > Espacio para todos tus mensajes, antivirus y antispam ¡gratis! > Regístrate ya - http://correo. yahoo.es >
__________________________________________________ Correo Yahoo! Espacio para todos tus mensajes, antivirus y antispam ¡gratis! Regístrate ya - http://correo.yahoo.es
Supongamos que deben modificar una de las clases base de Dinamica,
pero no quieren reconstruir framework.jar, sino simplemente usar el
mismo JAR oficial, pero con esta clase modificada, esto es lo que
pueden hacer:
1.- Crear un paquete dinamica en su proyecto
2.- Poner la clase modificada en ese paquete, o dinamica.xxx - depende
de la ubicacion original de la clase
3.- Tomcat 6 usara esta clase en vez de la que esta en el JAR.
Saludos,
Martin
--
Dinámica - Framework Java/Ajax
100% software libre
http://www.martincordova.com
Gracias Gustavo, ya publicamos los ultimos parches, incluyendo este:
http://dinamica.svn.sourceforge.net/viewvc/dinamica/
Saludos,
Martin
2008/8/27 Gustavo Javier Dottori <gustavo.dottori@...>:
> Si, a eso mismo. Probamos corregirlo en el funete y caminó al pelo.
> Saludos
>
>
> 2008/8/27 Martin Cordova <martin.cordova@...>
>>
>> Te refieres a usar @js en un print mode=table? sip al parecer falta
>> esto. Lo ajustaremos y publicaremos en el repositorio SubVersion, lo
>> hare saber por la lista.
>>
>> Saludos,
>> Martin
>>
>> 2008/8/27 Gustavo Javier Dottori <gustavo.dottori@...>:
>>
>> > Hola Martín, probando usar máscaras (@) me salió un error cuando usé
>> > @js.
>> > Viendo el fuente de TemplateEngine, en el método setValues no se está
>> > contemplando el @js, sí el @html @xml y @url.
>> >
>> > Saludos.
>> >
>> >
>>
>> --
>> Dinámica - Framework Java/Ajax
>> 100% software libre
>> http://www.martincordova.com
>
>
--
Dinámica - Framework Java/Ajax
100% software libre
http://www.martincordova.com
Te refieres a usar @js en un print mode=table? sip al parecer falta
esto. Lo ajustaremos y publicaremos en el repositorio SubVersion, lo
hare saber por la lista.
> Hola Martín, probando usar máscaras (@) me salió un error cuando usé @js.
> Viendo el fuente de TemplateEngine, en el método setValues no se está
> contemplando el @js, sí el @html @xml y @url.
>
> Saludos.
>
>
Te refieres a usar @js en un print mode=table? sip al parecer falta
esto. Lo ajustaremos y publicaremos en el repositorio SubVersion, lo
hare saber por la lista.
Saludos,
Martin
2008/8/27 Gustavo Javier Dottori <gustavo.dottori@...>:
> Hola Martín, probando usar máscaras (@) me salió un error cuando usé @js.
> Viendo el fuente de TemplateEngine, en el método setValues no se está
> contemplando el @js, sí el @html @xml y @url.
>
> Saludos.
>
>
--
Dinámica - Framework Java/Ajax
100% software libre
http://www.martincordova.com
Hola Martín, probando usar máscaras (@) me salió un error cuando usé @js. Viendo el fuente de TemplateEngine, en el método setValues no se está contemplando el @js, sí el @html @xml y @url.
Si estas usando Tomcat para desarrollo deberias tener en tu proyecto
referenciado servlet-api.jar, si estas usando resin, creo que es
resin.jar, pero no estoy seguro, añade todos.
Que paso con ese proyecto? El template de proyecto en Dinamica
(incluyendo el viejo) trae un .classpath con todo lo necesario
referenciado.
Saludos,
Martin
2008/8/26 Jayson Mijares <jaysondigitel@...>:
> Martin ,
>
> creo que me hace falta el javax, cuando intento compilar el archivo
> NoRecordsFound.java que agregue al framework de hace un año aprox.
>
> import
>
> javax.servlet. http.HttpServlet Request ----> esto se coloca en rojo como
> que no lo
> consigue el eclipse
>
> dónde ubico el javax para que cuando compile no coloque la clase en rojo
> porque creo que en las references del framework no las consigo , o no se si
> es en el tomcat donde debe ir??
>
> __________________________________________________
> Correo Yahoo!
> Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
> Regístrate ya - http://correo.yahoo.es
>
--
Dinámica - Framework Java/Ajax
100% software libre
http://www.martincordova.com
creo que me hace falta el javax, cuando intento compilar el archivo NoRecordsFound.java que agregue al framework de hace un año aprox.
import
javax.servlet. http.HttpServlet Request ----> esto se coloca en rojo como que no lo consigue el eclipse
dónde ubico el javax para que cuando compile no coloque la clase en rojo porque creo que en las references del framework no las consigo , o no se si es en el tomcat donde debe ir??
__________________________________________________ Correo Yahoo! Espacio para todos tus mensajes, antivirus y antispam ¡gratis! Regístrate ya - http://correo.yahoo.es
Hola Matias, muchas gracias por compartir la solucion, me alegra ver
que alguien le dio uso al onNewRow()!!!
Saludos,
Martin
2008/8/26 Matias Gonzalez <matias87lp@...>:
> Buenos días:
>
> Les mando un mail para comentarle como solucioné el problema que tenía.
>
> En mail anteriores envié la página como se ve una vez cargada.
>
> Lo que hice fue tener un input visible o oculto por cada campo que requeria
> información dentro de un solo form. El problema surgió en que como tenía una
> cantidad de filas variables todos los inputs que dependian de la fila tenían
> el mismo id. Por lo tanto para eliminar este problema cree una clase hija de
> GenericOutput y en el método onNewRow como figura a continuación
>
> public String onNewRow(Recordset rs, String rowTemplate) throws Throwable {
> /*
> *Extendido de la linea para modificar los colores ahora tambien se
> cuentan las filas y se
> *reemplazan con el atributo ${fld:_rowNum}
> */
>
> rowCount++;
> rowTemplate = StringUtil.replace(rowTemplate, "${fld:_rowNum}",
> String.valueOf(rowCount));
>
> return super.onNewRow(rs, rowTemplate);
> }
>
> Y entonces en los configs referencié a esta clase en vez de la
> dinamica.GenericOutput
>
> Para finalizar cuando llamaba al grabar las horas enviaba todo el form. Y
> para procesar los datos solamente utilizaba el request:
>
> HttpServletRequest req = getRequest();
>
> y para llamar sobre cada dato de input hacía
>
> req.getParameter(<"input_id">) ;
>
> armando las cadenas con numeros en el caso de las filas.
>
> req.getParameter("tarea_asignada_id_" + String.valueOf(i));
>
> Gracias a todos por la ayuda que me dieron y espero que esta explicación les
> sirva para poder realizar algun desarrollo no tan standar con el framework.
>
> Salu2
> MATIAS GONZALEZ
>
>
>
> --- El mié 20-ago-08, Martin Cordova <martin.cordova@...> escribió:
>
> De: Martin Cordova <martin.cordova@...>
> Asunto: Re: [dinamica4java] Consejos de utilizacion
> Para: dinamica4java@...
> Fecha: miércoles, 20 de agosto de 2008, 1:53 pm
>
> Es un caso interesante, espero que con las notas que te mande te ayude
> a resolver el caso, avisa si necesitas mas ayuda, y cuentanos como te
> fue al final.
>
> Saludos,
> Martin
>
> 2008/8/20 Matias Gonzalez <matias87lp@yahoo. com.ar>:
>> Aqui les mando la pantalla que tengo por ahora desarrollada.
>>
>>
>>
>>
>> --- El mié 20-ago-08, Gustavo Javier Dottori <gustavo.dottori@ gmail.com>
>> escribió:
>>
>> De: Gustavo Javier Dottori <gustavo.dottori@ gmail.com>
>> Asunto: Re: [dinamica4java] Consejos de utilizacion
>> Para: dinamica4java@ gruposyahoo. com
>> Fecha: miércoles, 20 de agosto de 2008, 10:52 am
>>
>> Matías, y con múltiples arrays, es decir, uno por columna?
>> Podrías subir una imagen de la pantalla?
>> Saludos
>>
>> 2008/8/20 Matias Gonzalez <matias87lp@ yahoo. com.ar>
>>>
>>> Hola Gustavo. Vi tu solución pero no creo que me sirva.
>>>
>>> La grilla que tengo con varios textbox (me queda una matriz de textbox)
>>> cuando se envían debería depender cada textbox de algunos datos que
>>> figuran
>>> fijos con la grilla.
>>>
>>> En cada fila tengo un grupo de textbox y cada uno representa la fila y
>>> una
>>> fecha dada. Por lo tanto tendria que llevar además información de esos
>>> dos
>>> datos además del contenido del textbox.
>>>
>>> Desde ya muchas gracias por el consejo.
>>>
>>> MATIAS
>>>
>>> --- El mié 20-ago-08, Gustavo Javier Dottori <gustavo.dottori@ gmail.com>
>>> escribió:
>>>
>>> De: Gustavo Javier Dottori <gustavo.dottori@ gmail.com>
>>> Asunto: Re: [dinamica4java] Consejos de utilizacion
>>> Para: dinamica4java@ gruposyahoo. com
>>> Fecha: miércoles, 20 de agosto de 2008, 10:37 am
>>>
>>> Hola Matías, no tengo experiencia con el problema que me comentás, pero
>>> te
>>> doy una idea de cómo lo encararía... no creo que sea la única ni mucho
>>> menos
>>> la mejor, pero tal vez funcione.
>>>
>>> Cuando envías varios input, por ejemplo de tipo text, con el mismo nombre
>>> (habría que probar en diferentes browser, al menos en FF es así) se
>>> reciben
>>> del lado servidor como un array con el nombre que tengan todos los
>>> elementos.
>>>
>>> Para poder usarlo con Dinámica no deberías declararlo en el validator.xml
>>> ya que te daría error por no manejar tipo array, sino que lo pasas por
>>> alto
>>> en el validator.xml.
>>>
>>> Luego te crear una clase que extienda de GenericTableManager para poder
>>> usar los valores y ejecutar los sql que correspondan. Para usar los
>>> valores
>>> podrías hacer en esta clase :
>>>
>>> class x extends GenericTableManager () {
>>>
>>> public int service(Recordset inputParams) throws Throwable {
>>>
>>> //reuse superclass code
>>> super.service( inputParams) ;
>>>
>>> ...
>>> ...
>>> String[] valoresArray = getRequest()
>>> .getAttribute( 'nombreDeLosInpu tTex t');
>>> for( int i = 0; i < valoresArray. length; i++) {
>>> //valoresArray[ i] es el valor del input text
>>> }
>>> ...
>>> ...
>>>
>>> return 0;
>>> }
>>>
>>> }
>>>
>>> No lo he probado, pero creería que puede funcionar.
>>>
>>> Saludos
>>>
>>>
>>> 2008/8/20 Matias Gonzalez <matias87lp@ yahoo. com.ar>
>>>>
>>>> Buen dia.
>>>>
>>>> Tengo un problema de entendimiento del framework. El asunto es que tengo
>>>> una página que levanta una grilla con filas de acuerdo a una consulta y
>>>> de
>>>> las cuales cada fila contiene textbox en los cuales se puede como no
>>>> agregar
>>>> datos.
>>>>
>>>> Mi problema es que tengo que actualizar registros sobre esos datos si
>>>> estos fueron introducidos y que en realidad se genera una entrada por
>>>> cada
>>>> uno de los textbox con valores.
>>>>
>>>> Estuve viendo ejemplos con los checkbox con el InsertMaster e
>>>> InsertDetails y también con el template de EditGrid pero no puedo
>>>> entender
>>>> como acceder de alguna forma a la información del form y dentro del
>>>> servlet
>>>> realizar toda la lógica de inserción y actualización.
>>>>
>>>> Martín o alguna otra persona integrante del proyecto Dinamica tendrán
>>>> alguna documentación para que se pueda entender el manejo de los
>>>> recordset
>>>> para facilitarme el entendimiento? O alguna breve explicación o forma de
>>>> proceder con mi problema.
>>>>
>>>> Desde ya muchas gracias.
>>>>
>>>> MATIAS
>>>> GONZALEZ
>>>>
>>>> ____________ _________ _________ __
>>>> Yahoo! Cocina
>>>> Recetas prácticas y comida saludable
>>>> Visitá http://ar.mujer. yahoo.com/ cocina/
>>>
>>> ____________ _________ _________ __
>>> ¡Buscá desde tu celular! Yahoo! oneSEARCH ahora está en Claro
>>> http://ar.mobile. yahoo.com/ onesearch
>>
>> ____________ _________ _________ __
>> Yahoo! Cocina
>> Recetas prácticas y comida saludable
>> Visitá http://ar.mujer. yahoo.com/ cocina/
>>
>
> --
> Dinámica - Framework Java/Ajax
> 100% software libre
> http://www.martinco rdova.com
>
> ________________________________
> Yahoo! Cocina
> Recetas prácticas y comida saludable
> Visitá http://ar.mujer.yahoo.com/cocina/
>
--
Dinámica - Framework Java/Ajax
100% software libre
http://www.martincordova.com
Les mando un mail para comentarle como solucioné el problema que tenía.
En mail anteriores envié la página como se ve una vez cargada.
Lo que hice fue tener un input visible o oculto por cada campo que requeria información dentro de un solo form. El problema surgió en que como tenía una cantidad de filas variables todos los inputs que dependian de la fila tenían el mismo id. Por lo tanto para eliminar este problema cree una clase hija de GenericOutput y en el método onNewRow como figura a continuación
public String onNewRow(Recordset rs, String rowTemplate) throws Throwable { /*
*Extendido de la linea para modificar los colores ahora tambien se cuentan las filas y se *reemplazan con el atributo ${fld:_rowNum} */ rowCount++; rowTemplate = StringUtil.replace(rowTemplate, "${fld:_rowNum}", String.valueOf(rowCount)); return super.onNewRow(rs, rowTemplate); }
Y entonces en los configs referencié a esta clase en vez de la dinamica.GenericOutput
Para finalizar cuando llamaba al grabar las horas enviaba todo el form. Y para procesar los datos solamente utilizaba el request:
HttpServletRequest req = getRequest();
y para llamar sobre cada dato de input hacía
req.getParameter(<"input_id">) ;
armando las cadenas con numeros en el caso de las filas.
Gracias a todos por la ayuda que me dieron y espero que esta explicación les sirva para
poder realizar algun desarrollo no tan standar con el framework.
Salu2 MATIAS GONZALEZ
--- El mié 20-ago-08, Martin Cordova <martin.cordova@...> escribió:
De: Martin Cordova <martin.cordova@...> Asunto: Re: [dinamica4java] Consejos de utilizacion Para: dinamica4java@... Fecha: miércoles, 20 de agosto de 2008, 1:53 pm
Es un caso interesante, espero que con las notas que te mande te ayude
a resolver el caso, avisa si necesitas mas ayuda, y cuentanos como te
fue al final.
Saludos,
Martin
2008/8/20 Matias Gonzalez <matias87lp@yahoo. com.ar>:
> Aqui les mando la pantalla que tengo por ahora desarrollada.
>
>
>
>
> --- El mié 20-ago-08, Gustavo Javier Dottori <gustavo.dottori@ gmail.com>
> escribió:
>
> De: Gustavo Javier Dottori <gustavo.dottori@ gmail.com>
> Asunto: Re: [dinamica4java] Consejos de utilizacion
> Para: dinamica4java@ gruposyahoo. com
> Fecha: miércoles, 20 de agosto de 2008, 10:52 am
>
> Matías, y con múltiples arrays, es decir, uno por columna?
> Podrías subir una imagen de la pantalla?
> Saludos
>
> 2008/8/20 Matias Gonzalez <matias87lp@ yahoo. com.ar>
>>
>> Hola Gustavo. Vi tu solución pero no creo que me sirva.
>>
>> La grilla que tengo con varios textbox (me queda una matriz de textbox)
>> cuando se envían debería depender cada textbox de algunos datos que figuran
>> fijos con la grilla.
>>
>> En cada fila tengo un grupo de textbox y cada uno representa la fila y una
>> fecha dada. Por lo tanto tendria que llevar además información de esos dos
>> datos además del contenido del textbox.
>>
>> Desde ya muchas gracias por el consejo.
>>
>> MATIAS
>>
>> --- El mié 20-ago-08, Gustavo Javier Dottori <gustavo.dottori@ gmail.com>
>> escribió:
>>
>> De: Gustavo Javier Dottori <gustavo.dottori@ gmail.com>
>> Asunto: Re: [dinamica4java] Consejos de utilizacion
>> Para: dinamica4java@ gruposyahoo. com
>> Fecha: miércoles, 20 de agosto de 2008, 10:37 am
>>
>> Hola Matías, no tengo experiencia con el problema que me comentás, pero te
>> doy una idea de cómo lo encararía... no creo que sea la única ni mucho menos
>> la mejor, pero tal vez funcione.
>>
>> Cuando envías varios input, por ejemplo de tipo text, con el mismo nombre
>> (habría que probar en diferentes browser, al menos en FF es así) se reciben
>> del lado servidor como un array con el nombre que tengan todos los
>> elementos.
>>
>> Para poder usarlo con Dinámica no deberías declararlo en el validator.xml
>> ya que te daría error por no manejar tipo array, sino que lo pasas por alto
>> en el validator.xml.
>>
>> Luego te crear una clase que extienda de GenericTableManager para poder
>> usar los valores y ejecutar los sql que correspondan. Para usar los valores
>> podrías hacer en esta clase :
>>
>> class x extends GenericTableManager () {
>>
>> public int service(Recordset inputParams) throws Throwable {
>>
>> //reuse superclass code
>> super.service( inputParams) ;
>>
>> ...
>> ...
>> String[] valoresArray = getRequest()
>> .getAttribute( 'nombreDeLosInpu tTex t');
>> for( int i = 0; i < valoresArray. length; i++) {
>> //valoresArray[ i] es el valor del input text
>> }
>> ...
>> ...
>>
>> return 0;
>> }
>>
>> }
>>
>> No lo he probado, pero creería que puede funcionar.
>>
>> Saludos
>>
>>
>> 2008/8/20 Matias Gonzalez <matias87lp@ yahoo. com.ar>
>>>
>>> Buen dia.
>>>
>>> Tengo un problema de entendimiento del framework. El asunto es que tengo
>>> una página que levanta una grilla con filas de acuerdo a una consulta y de
>>> las cuales cada fila contiene textbox en los cuales se puede como no agregar
>>> datos.
>>>
>>> Mi problema es que tengo que actualizar registros sobre esos datos si
>>> estos fueron introducidos y que en realidad se genera una entrada por cada
>>> uno de los textbox con valores.
>>>
>>> Estuve viendo ejemplos con los checkbox con el InsertMaster e
>>> InsertDetails y también con el template de EditGrid pero no puedo entender
>>> como acceder de alguna forma a la información del form y dentro del servlet
>>> realizar toda la lógica de inserción y actualización.
>>>
>>> Martín o alguna otra persona integrante del proyecto Dinamica tendrán
>>> alguna documentación para que se pueda entender el manejo de los recordset
>>> para facilitarme el entendimiento? O alguna breve explicación o forma de
>>> proceder con mi problema.
>>>
>>> Desde ya muchas gracias.
>>>
>>> MATIAS
>>> GONZALEZ
>>>
>>> ____________ _________ _________ __
>>> Yahoo! Cocina
>>> Recetas prácticas y comida saludable
>>> Visitá http://ar.mujer. yahoo.com/ cocina/
>>
>> ____________ _________ _________ __
>> ¡Buscá desde tu celular! Yahoo! oneSEARCH ahora está en Claro
>> http://ar.mobile. yahoo.com/ onesearch
>
> ____________ _________ _________ __
> Yahoo! Cocina
> Recetas prácticas y comida saludable
> Visitá http://ar.mujer. yahoo.com/ cocina/
>
aunque la escriba tal cual como me la escribiste igual sigue en rojo el codigo
yo creo que me falta algo
--- El lun, 25/8/08, Martin Cordova <martin.cordova@...> escribió:
De: Martin Cordova <martin.cordova@...> Asunto: Re: [dinamica4java] consulta del framework Para: dinamica4java@... Fecha: lunes, 25 agosto, 2008 5:58
El error que reportas es porque la clase no existe, pero no hace referencia a NoRecordsFound sino a StatusCantidad! que tiene que ver uno con el otro? please revisa bien. Al parecer esta clase no existe en tu proyecto. Este error es cuando corres el Action, no al compilar.
Los errores en rojo no te dejan compilar, posiblemente tipeaste mal la clase a importar:
javax.servlet. http.httpServlet Request -> deberia ser javax.servlet. http.HttpServlet Request
Chau, Martin
2008/8/25 Jayson Mijares <jaysondigitel@ yahoo.es>: > una consulta de framework > > estoy intentando usar una clase NoRecordsFound > en una version del framewor de hace un año mas o menos > en un customer validator . > > cuando abro el archivo .java me dice varias cosas en rojo > entre ella cuando intento importar
en el codigo de la clase > javax.servlet. http.httpServlet Request como hago para usar esa clase > o que me falta ?? > > gracias anexo el error > > java.lang.ClassNotF oundException: validators.StatusCa ntidad > at > com.caucho.util. DynamicClassLoad er.loadClass( DynamicClassLoad er.java:538) > at java.lang.ClassLoad er.loadClass( ClassLoader. java:251) > at java.lang.ClassLoad er.loadClassInte rnal(ClassLoader .java:319) > at java.lang.Class. forName0( Native Method) > at java.lang.Class. forName(Class. java:169) > at dinamica.Controller .getObject( Controller. java:852) > at dinamica.Controller .validateInput( Controller. java:760) > at dinamica.Controller .service( Controller. java:186) > at javax.servlet. http.HttpServlet .service( HttpServlet. java:103) > at > com.caucho.server. http.FilterChain Servlet.doFilter (FilterChainServ let.java:
96) > at dinamica.security. SecurityFilter. doFilter( SecurityFilter. java:220) > at > com.caucho.server. http.FilterChain Filter.doFilter( FilterChainFilte r.java:88) > at com.caucho.server. http.Invocation. service(Invocati on.java:315) > at com.caucho.server. http.HttpRequest .handleRequest( HttpRequest. java:253) > at > com.caucho.server. http.HttpRequest .handleConnectio n(HttpRequest. java:171) > at com.caucho.server. TcpConnection. run(TcpConnectio n.java:139) > at java.lang.Thread. run(Thread. java:619) > > > ____________ _________ _________ _________ _________ __ > Correo Yahoo! > Espacio para todos tus mensajes, antivirus y antispam ¡gratis! > Regístrate ya - http://correo. yahoo.es >
__________________________________________________ Correo Yahoo! Espacio para todos tus mensajes, antivirus y antispam ¡gratis! Regístrate ya - http://correo.yahoo.es
El error que reportas es porque la clase no existe, pero no hace
referencia a NoRecordsFound sino a StatusCantidad! que tiene que ver
uno con el otro? please revisa bien. Al parecer esta clase no existe
en tu proyecto. Este error es cuando corres el Action, no al compilar.
Los errores en rojo no te dejan compilar, posiblemente tipeaste mal la
clase a importar:
javax.servlet.http.httpServletRequest -> deberia ser
javax.servlet.http.HttpServletRequest
Chau,
Martin
2008/8/25 Jayson Mijares <jaysondigitel@...>:
> una consulta de framework
>
> estoy intentando usar una clase NoRecordsFound
> en una version del framewor de hace un año mas o menos
> en un customer validator .
>
> cuando abro el archivo .java me dice varias cosas en rojo
> entre ella cuando intento importar en el codigo de la clase
> javax.servlet.http.httpServletRequest como hago para usar esa clase
> o que me falta ??
>
> gracias anexo el error
>
> java.lang.ClassNotFoundException: validators.StatusCantidad
> at
> com.caucho.util.DynamicClassLoader.loadClass(DynamicClassLoader.java:538)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
> at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:169)
> at dinamica.Controller.getObject(Controller.java:852)
> at dinamica.Controller.validateInput(Controller.java:760)
> at dinamica.Controller.service(Controller.java:186)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:103)
> at
> com.caucho.server.http.FilterChainServlet.doFilter(FilterChainServlet.java:96)
> at dinamica.security.SecurityFilter.doFilter(SecurityFilter.java:220)
> at
> com.caucho.server.http.FilterChainFilter.doFilter(FilterChainFilter.java:88)
> at com.caucho.server.http.Invocation.service(Invocation.java:315)
> at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:253)
> at
> com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:171)
> at com.caucho.server.TcpConnection.run(TcpConnection.java:139)
> at java.lang.Thread.run(Thread.java:619)
>
>
> __________________________________________________
> Correo Yahoo!
> Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
> Regístrate ya - http://correo.yahoo.es
>
--
Dinámica - Framework Java/Ajax
100% software libre
http://www.martincordova.com
estoy intentando usar una clase NoRecordsFound en una version del framewor de hace un año mas o menos en un customer validator .
cuando abro el archivo .java me dice varias cosas en rojo entre ella cuando intento importar en el codigo de la clase javax.servlet.http.httpServletRequest como hago para usar esa clase o que me falta ??
gracias anexo el error
java.lang.ClassNotFoundException: validators.StatusCantidad at com.caucho.util.DynamicClassLoader.loadClass(DynamicClassLoader.java:538) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:169) at
dinamica.Controller.getObject(Controller.java:852) at dinamica.Controller.validateInput(Controller.java:760) at dinamica.Controller.service(Controller.java:186) at javax.servlet.http.HttpServlet.service(HttpServlet.java:103) at com.caucho.server.http.FilterChainServlet.doFilter(FilterChainServlet.java:96) at dinamica.security.SecurityFilter.doFilter(SecurityFilter.java:220) at com.caucho.server.http.FilterChainFilter.doFilter(FilterChainFilter.java:88) at com.caucho.server.http.Invocation.service(Invocation.java:315) at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:253) at com.caucho.server.http.HttpRequest.handleConnection(HttpRequest.java:171) at com.caucho.server.TcpConnection.run(TcpConnection.java:139) at java.lang.Thread.run(Thread.java:619)
__________________________________________________ Correo
Yahoo! Espacio para todos tus mensajes, antivirus y antispam ¡gratis! Regístrate ya - http://correo.yahoo.es
Asumo que te da algun error al grabar en tu modulo "Detalle Ruta",
cual es? tienes algun stack trace o traza del error? es muy dificil
ayudarte con este caso por email si no precisamos el sitio donde
ocurre el error.
En general no deberia darte mayor problema la plantilla EditGrid (como
esta publicada en nuestro website), seria cuestion de adaptarla para
que ingrese en la tabla que a ti te interesa, pero para ello debes
adaptar ademas de la pagina de data entry como tal, tambien la clase
Validator que recibe la matriz de datos y la procesa para que quede
lista para ser grabada. El documento PDF de esta plantilla te explica
esa secuencia.
Saludos,
Martin
2008/8/25 Yusmely Perdomo <yusmelyp@...>:
> Hola, buenos días disculpa...Nuevamente tengo un inconveniente con la página
> que estoy diseñando para las rutas de las unidades (Armada), no sé si
> recuerdas; es la página que hace referencia a la master detalle. Ya puedo
> editar los puntos de la ruta, en la figura edit_punto.jpg, se ve la pagina
> donde se puede editar el punto seleccionado en la pagina
> resultados_punto.jpg, pero ahora quisiera agregar a esta parte de editar una
> opción q me permita editar o sea agregar un punto o más, a cualquier ruta,
> tengo diseñada la presentación de la página (punto_detalle.jpg) pero no se
> como hacer para que siga manteniendo la secuencia de los puntos; intenté
> hacerlo pero tuve un gran error, al almacenar en la base de datos perdió la
> información de la tabla principal o sea de la unidad a la que pertenece el
> punto, coloque fue un cero en lugar de la información necesaria (datos.jpg).
> Lo anterior ocurrió porque intente modificar la clase la verdad no
> entiendo.Por favor si me puedes ayudar... Gracias...
>
>
>
> __________________________________________________
> Correo Yahoo!
> Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
> Regístrate ya - http://correo.yahoo.es
>
--
Dinámica - Framework Java/Ajax
100% software libre
http://www.martincordova.com
Hola, buenos días disculpa...Nuevamente tengo un
inconveniente con la página que estoy diseñando para las rutas de las unidades (Armada),
no sé si recuerdas; es la página que hace referencia a la master detalle. Ya
puedo editar los puntos de la ruta, en la figura edit_punto.jpg, se ve la pagina
donde se puede editar el punto seleccionado en la pagina resultados_punto.jpg, pero
ahora quisiera agregar a esta parte de editar una opción q me permita editar o
sea agregar un punto o más, a cualquier ruta, tengo diseñada la presentación de
la página (punto_detalle.jpg) pero no se como hacer para que siga manteniendo la
secuencia de los puntos; intenté hacerlo pero tuve un gran error, al almacenar
en la base de datos perdió la información de la tabla principal o sea de la
unidad a la que pertenece el punto, coloque fue un cero en lugar de la
información necesaria (datos.jpg). Lo anterior ocurrió porque intente modificar la clase la verdad no entiendo.Por favor si me puedes ayudar... Gracias...
__________________________________________________ Correo Yahoo! Espacio para todos tus mensajes, antivirus y antispam ¡gratis! Regístrate ya - http://correo.yahoo.es
Se actualizó tomcat6-service.zip, que contiene los archivos que
permiten configurar tomcat como un servicio windows en 32 y 64 bits.
Habia un error importante en service.bat que impedía que funcionara la
intrumentacion JMX de Tomcat y fallaba la invocación a /action/test.
Luego de corregido se probo en Windows XP de 32 y 64 bits.
Saludos,
Martin
--
Dinámica - Framework Java/Ajax
100% software libre
http://www.martincordova.com
Es un caso interesante, espero que con las notas que te mande te ayude
a resolver el caso, avisa si necesitas mas ayuda, y cuentanos como te
fue al final.
Saludos,
Martin
2008/8/20 Matias Gonzalez <matias87lp@...>:
> Aqui les mando la pantalla que tengo por ahora desarrollada.
>
>
>
>
> --- El mié 20-ago-08, Gustavo Javier Dottori <gustavo.dottori@...>
> escribió:
>
> De: Gustavo Javier Dottori <gustavo.dottori@...>
> Asunto: Re: [dinamica4java] Consejos de utilizacion
> Para: dinamica4java@...
> Fecha: miércoles, 20 de agosto de 2008, 10:52 am
>
> Matías, y con múltiples arrays, es decir, uno por columna?
> Podrías subir una imagen de la pantalla?
> Saludos
>
> 2008/8/20 Matias Gonzalez <matias87lp@yahoo. com.ar>
>>
>> Hola Gustavo. Vi tu solución pero no creo que me sirva.
>>
>> La grilla que tengo con varios textbox (me queda una matriz de textbox)
>> cuando se envían debería depender cada textbox de algunos datos que figuran
>> fijos con la grilla.
>>
>> En cada fila tengo un grupo de textbox y cada uno representa la fila y una
>> fecha dada. Por lo tanto tendria que llevar además información de esos dos
>> datos además del contenido del textbox.
>>
>> Desde ya muchas gracias por el consejo.
>>
>> MATIAS
>>
>> --- El mié 20-ago-08, Gustavo Javier Dottori <gustavo.dottori@ gmail.com>
>> escribió:
>>
>> De: Gustavo Javier Dottori <gustavo.dottori@ gmail.com>
>> Asunto: Re: [dinamica4java] Consejos de utilizacion
>> Para: dinamica4java@ gruposyahoo. com
>> Fecha: miércoles, 20 de agosto de 2008, 10:37 am
>>
>> Hola Matías, no tengo experiencia con el problema que me comentás, pero te
>> doy una idea de cómo lo encararía... no creo que sea la única ni mucho menos
>> la mejor, pero tal vez funcione.
>>
>> Cuando envías varios input, por ejemplo de tipo text, con el mismo nombre
>> (habría que probar en diferentes browser, al menos en FF es así) se reciben
>> del lado servidor como un array con el nombre que tengan todos los
>> elementos.
>>
>> Para poder usarlo con Dinámica no deberías declararlo en el validator.xml
>> ya que te daría error por no manejar tipo array, sino que lo pasas por alto
>> en el validator.xml.
>>
>> Luego te crear una clase que extienda de GenericTableManager para poder
>> usar los valores y ejecutar los sql que correspondan. Para usar los valores
>> podrías hacer en esta clase :
>>
>> class x extends GenericTableManager () {
>>
>> public int service(Recordset inputParams) throws Throwable {
>>
>> //reuse superclass code
>> super.service( inputParams) ;
>>
>> ...
>> ...
>> String[] valoresArray = getRequest()
>> .getAttribute('nombreDeLosInputTex t');
>> for( int i = 0; i < valoresArray. length; i++) {
>> //valoresArray[ i] es el valor del input text
>> }
>> ...
>> ...
>>
>> return 0;
>> }
>>
>> }
>>
>> No lo he probado, pero creería que puede funcionar.
>>
>> Saludos
>>
>>
>> 2008/8/20 Matias Gonzalez <matias87lp@yahoo. com.ar>
>>>
>>> Buen dia.
>>>
>>> Tengo un problema de entendimiento del framework. El asunto es que tengo
>>> una página que levanta una grilla con filas de acuerdo a una consulta y de
>>> las cuales cada fila contiene textbox en los cuales se puede como no agregar
>>> datos.
>>>
>>> Mi problema es que tengo que actualizar registros sobre esos datos si
>>> estos fueron introducidos y que en realidad se genera una entrada por cada
>>> uno de los textbox con valores.
>>>
>>> Estuve viendo ejemplos con los checkbox con el InsertMaster e
>>> InsertDetails y también con el template de EditGrid pero no puedo entender
>>> como acceder de alguna forma a la información del form y dentro del servlet
>>> realizar toda la lógica de inserción y actualización.
>>>
>>> Martín o alguna otra persona integrante del proyecto Dinamica tendrán
>>> alguna documentación para que se pueda entender el manejo de los recordset
>>> para facilitarme el entendimiento? O alguna breve explicación o forma de
>>> proceder con mi problema.
>>>
>>> Desde ya muchas gracias.
>>>
>>> MATIAS
>>> GONZALEZ
>>>
>>> ________________________________
>>> Yahoo! Cocina
>>> Recetas prácticas y comida saludable
>>> Visitá http://ar.mujer. yahoo.com/ cocina/
>>
>> ________________________________
>> ¡Buscá desde tu celular! Yahoo! oneSEARCH ahora está en Claro
>> http://ar.mobile. yahoo.com/ onesearch
>
> ________________________________
> Yahoo! Cocina
> Recetas prácticas y comida saludable
> Visitá http://ar.mujer.yahoo.com/cocina/
>
--
Dinámica - Framework Java/Ajax
100% software libre
http://www.martincordova.com
Discula Matias, se fue el mensaje incompleto - parece que le di a
alguna tecla secreta en mi teclado! en fin, Aqui vamos de nuevo:
1) Con un Grid editable, que ademas ya puede traer o no registros
existenes, adicionales a los que añadiras, lo primero que debes
decidir es si al momento de grabar, haras algo selectivo como primero
los updates y luego los inserts, o te vas por un camino mas simple:
borro todo y luego todo es insertar. Yo prefiero el ultimo, da menos
trabajo, pero a veces no puedes borrar e insertar, y entonces tienes
que poder diferenciar que registros son para update, y cuales para
insert, peor aun, se te puede dar el caso de que tengas registros para
eliminar, y tambien debes llevar esa cuenta, ya ves porque prefiero el
"borrar todo e insertar en lote".
2) La estructura modular a la hora de grabar: EditGrid esta algo
incompleto en el sentido de que no graba, le falto esa parte, que sin
embargo esta ejemplificada en otros templates, pero tiene lo mas
importante, como procesar y validar el grid de datos. Lo que quiero
decir, es que en el proceso de recibir la informacion y grabarla,
normalmente usaras dos clases:
* Un Validator, que se encarga de validar y alimentar un recordset que
servira luego, para que una clase Transaction (que desciende de
GenericTransaction o GenericTableManager). Esta clase prepara el
recordset para la grabacion, define su estructura, revisa los inputs,
devuelve mensajes de error de validacion precisos si la data no pasa
todos los filtros, etc. En este sentido EditGrid si viene completo,
con un buen ejemplo de como hacer esto. El grid manda arrays de
valores, estos deben ser validados y convertidos a tipos de datos de
Java, y almacenados en un Recordset. Al estar en un recordset se hace
mas facil convertirlos en un lote de sentencias SQL bien formadas.
Tu validator debe dejar el recordset procesado en un atributo del
request, para que la clase Transaction lo pueda recuperar y utilizar
luego:
getRequest().setAttribute("recordset", rs);
Tu action declarara esto en su config.xml: <recordset id="recordset"
source="request" scope="transaction"/>
* La otra clase se encarga de armar con este Recordset los SQL y
enviarlos en lote, usando una tecnica avanzada de JDBC, pero a traves
de un sencillo API de Dinamica, en la clase dinamica.Db.
Ejemplo (sacado del template ImportExcel:
//obtener recordset con la data del grid ya procesada
Recordset rs = getRecordset("recordset");
//definir parametros
String[] params =
{
"customerid",
"orderdate",
"productid",
"unitprice",
"discount"
};
//cargar el template SQL para un prepared statement
String sql = getSQL(getResource("insert.sql"), rs);
//ejecutar en Batch
getDb().execBatch(sql, rs, params);
El codigo arriba usara prepared statements, y de paso enviara en batch
toda la data, ademas usaras transacciones JDBC al activarlas
declarativamente en config.xml - de esta manera optimizas la
interaccion con la BD.
Espero que esto te sirva de orientacion.
Tenemos la deuda de completar un poco el template EditGrid.
Saludos,
Martin
2008/8/20 Martin Cordova <martin.cordova@...>:
> Hola Matias:
>
> Con un Grid editable, que ademas ya puede traer o no registros
> existenes, adicionales a los que añadiras, lo primero
>
>
> 2008/8/20 Matias Gonzalez <matias87lp@...>:
>> Buen dia.
>>
>> Tengo un problema de entendimiento del framework. El asunto es que tengo una
>> página que levanta una grilla con filas de acuerdo a una consulta y de las
>> cuales cada fila contiene textbox en los cuales se puede como no agregar
>> datos.
>>
>> Mi problema es que tengo que actualizar registros sobre esos datos si estos
>> fueron introducidos y que en realidad se genera una entrada por cada uno de
>> los textbox con valores.
>>
>> Estuve viendo ejemplos con los checkbox con el InsertMaster e InsertDetails
>> y también con el template de EditGrid pero no puedo entender como acceder de
>> alguna forma a la información del form y dentro del servlet realizar toda la
>> lógica de inserción y actualización.
>>
>> Martín o alguna otra persona integrante del proyecto Dinamica tendrán alguna
>> documentación para que se pueda entender el manejo de los recordset para
>> facilitarme el entendimiento? O alguna breve explicación o forma de proceder
>> con mi problema.
>>
>> Desde ya muchas gracias.
>>
>> MATIAS
>> GONZALEZ
>>
>> ________________________________
>> Yahoo! Cocina
>> Recetas prácticas y comida saludable
>> Visitá http://ar.mujer.yahoo.com/cocina/
>>
>
>
>
> --
> Dinámica - Framework Java/Ajax
> 100% software libre
> http://www.martincordova.com
>
--
Dinámica - Framework Java/Ajax
100% software libre
http://www.martincordova.com
Aqui les mando la pantalla que tengo por ahora desarrollada.
--- El mié 20-ago-08, Gustavo Javier Dottori <gustavo.dottori@...> escribió:
De: Gustavo Javier Dottori <gustavo.dottori@...> Asunto: Re: [dinamica4java] Consejos de utilizacion Para: dinamica4java@... Fecha: miércoles, 20 de agosto de 2008, 10:52 am
Matías, y con múltiples arrays, es decir, uno por columna? Podrías subir una imagen de la pantalla? Saludos
Hola Gustavo. Vi tu solución pero no creo que me sirva.
La grilla que tengo con varios textbox (me queda una matriz de textbox) cuando se envían debería depender cada textbox de algunos datos que figuran fijos con la grilla.
En cada fila tengo un grupo de textbox y cada uno representa la fila y una fecha dada. Por lo tanto tendria que llevar además información de esos dos datos además del contenido del textbox.
Hola Matías, no tengo experiencia con el problema que me comentás, pero te doy una idea de cómo lo encararía... no creo que sea la única ni mucho menos la mejor, pero tal vez funcione.
Cuando envías varios input, por ejemplo de tipo text, con el mismo nombre (habría que probar en diferentes browser, al menos en FF es así) se reciben del lado servidor como un array con el nombre que tengan todos los elementos.
Para poder usarlo con Dinámica no deberías declararlo en el validator.xml ya que te daría error por no manejar tipo array, sino que lo pasas por alto en el validator.xml.
Luego te crear una clase que extienda de GenericTableManager para poder usar los valores y ejecutar los sql que correspondan. Para usar los valores podrías hacer en esta clase :
class x extends GenericTableManager () {
public int service(Recordset inputParams) throws Throwable {
... ... String[] valoresArray = getRequest() .getAttribute('nombreDeLosInputTex t'); for( int i = 0; i < valoresArray. length; i++) {
//valoresArray[ i] es el valor del input text } ... ...
return 0; }
}
No lo he probado, pero creería que puede funcionar.
Tengo un problema de entendimiento del framework. El asunto es que tengo una página que levanta una grilla con filas de acuerdo a una consulta y de las cuales cada fila contiene textbox en los cuales se puede como no agregar datos.
Mi problema es que tengo que actualizar registros sobre esos datos si estos fueron introducidos y que en realidad se genera una entrada por cada uno de los textbox con valores.
Estuve viendo ejemplos con los checkbox con el InsertMaster e InsertDetails y también con el template de EditGrid pero no puedo entender como acceder de alguna forma a la información del form y dentro del servlet realizar toda la lógica de inserción y actualización.
Martín o alguna otra persona integrante del proyecto Dinamica tendrán alguna documentación para que se pueda entender el manejo de los recordset para
facilitarme el entendimiento? O alguna breve explicación o forma de proceder con mi problema.