miércoles, 27 de agosto de 2014

Jquery I

Jquery es una librería de JavaScript. Que simplifica de manera notable a éste ultimo.Su pagina oficial es http://jquery.com/.

La sintaxis básica es:

$(selector).action()

El "selector" vendría hacer algún elemento (o pueden ser varios elementos) dentro del DOM. Y la "action" es el evento que haría los seleccionados.


Hagamos un breve ejemplo :

Html:

<html> 
<head> 
   <title>Ejemplo</title> 
</head> 
   <body> 
      <h1 id ="titulo">Hola mundo!</h1> 
   </body> 
</html>

JS:


$(document).ready(inicializarEventos);

function inicializarEventos() { 
   $("#titulo").click(presionTitulo); 
}
function presionTitulo() { 
   $("#titulo1").css("color","#ff0000"); 
}

En este caso el elemento seleccionado es el h1 con id "titulo", cada vez que hagamos click (el evento), este cambiara de color.


Importante:
No olvidarse de agregar la librería actualizada en cada pagina que vamos a utilizar jquery.

miércoles, 6 de agosto de 2014

Jasper Report


Algunos trucos:


* Expresion condicional:


    <textFieldExpression class="java.lang.String">
            <![CDATA[ ($F{nameField}.length() >  9)?
 $F{nameField} : " bla , bla"]]>
    </textFieldExpression>

* Salto de linea de un String  opcion A:
      Podemos mandarle un parametro con String que ya contenga un salto de   linea:

       Java:
       string  cadena1 = "bla bla " +  "\n" ; 
       string  cadena2 = "nanana" +  "\n" + cadena1;     
 
       jrxml:
    <textFieldExpression class="java.lang.String">
               <![CDATA[$F{cadena2}]]>
    </textFieldExpression>


* Salto de linea de un String  opcion B:
    O podemos hacerlo desde el jrxml:


       Java:
       string  cadena1 = "bla bla "; 
       string  cadena2 = "nanana" ;     
 
       jrxml:

    <textFieldExpression class="java.lang.String">
               <![CDATA[$F{cadena1} + "\n" + $F{cadena2}]]>
    </textFieldExpression>



Algunas propiedades:


* Que el texto que sobrepasa el ancho del campo, baje de linea:

    <textField isStretchWithOverflow="true">
            ...
    </textField>

*  Que el mismo valor en DISTINTAS filas se imprima:

      isPrintRepeatedValues="true"

* Quitar un elemento una posicion fija y que se posicione segun el contenido de alrededor:

positionType="Float"


* Para que no haga paginado en el reporte (especialmente cuando generamos .xls o .csv):
  
 parameters.put(JRParameter.IS_IGNORE_PAGINATION, Boolean.TRUE);

Nota: "parameters" es la lista de parametros que enviamos cuando instanciamos el JasperReport dentro de la aplicacion.

* Para verificar si es par la columna. ¿Para que nos serviria esto? Por ejemplo para sombrear las columnas pares de una manera  y las impares de otra.

 Boolean.valueOf( ($V{COLUMN_COUNT}.intValue() %  2) == 0)