Entradas

Función Postgres para convertir número a palabras

CREATE OR REPLACE FUNCTION fn_num_a_palabra(num BIGINT) RETURNS TEXT AS $$ DECLARE   palab TEXT; BEGIN   WITH menor20(palabra, id) AS   (     VALUES       ('CERO', 0), ('UNO', 1),( 'DOS', 2 ), ( 'TRES', 3),       ( 'CUATRO', 4 ), ( 'CINCO', 5 ), ( 'SEIS', 6 ), ( 'SIETE', 7 ),       ( 'OCHO', 8), ( 'NUEVE', 9), ( 'DIEZ', 10), ( 'ONCE', 11 ),       ( 'DOCE', 12 ), ( 'TRECE', 13 ), ( 'CATORCE', 14),       ( 'QUINCE', 15 ), ('DIECISEIS', 16 ), ( 'DIECISIETE', 17),       ('DIECIOCHO', 18 ), ( 'DIECINUEVE', 19 )    ),    menor100(palabra, id) AS    (       VALUES        ('VEINTE', 2), ('TREINTA', 3),('CUARENTA', 4), ('CINCUENTA', 5),        ('SESENTA', 6), ('SETENTA', 7), ('OCHENTA', 8), ('NOVENTA', 9)    )    SELECT      CASE   ...

Modificar un archivo dentro de un .jar

Imagen
Lo primero que debemos hacer es obtener el archivo que queremos modificar del .jar para ello si es un archivo plano podemos simplemente descomprimir el .jar usando 7zip para este caso tenemos un archivo llamado prueba.jar que contiene lo siguiente org/prueba/resources/propiedades.properties y este archivo tiene el siguiente contenido extraemos el .jar para obtenemos y modificar el archivo propiedades.properties modificamos el archivo con el editor de nuestra preferencia y guardamos los cambios Creamos un directorio similar al directorio de paquetes que contiene nuestro archivo al mismo nivel del archivo jar y colocamos dentro el archivo modificado en nuestro caso org\prueba\resources\propiedades.properties Luego ejecutamos el siguiente comando jar es un utilitario que viene incluido dentro del jdk de java para poder ejecutar este comando debemos instalar el jdk y configurar las variables de entorno. para verificar el cambio podemos extraer nuevamente el ...

Obtener la edad (años, meses y días) a partir de la fecha de nacimiento con javascript

Función para calcular la edad en años, meses y días function calcularEdad ( fecha ) { // Si la fecha es correcta, calculamos la edad if ( typeof fecha != "string" && fecha && esNumero ( fecha . getTime ())) { fecha = formatDate ( fecha , "yyyy-MM-dd" ); } var values = fecha . split ( "-" ); var dia = values [ 2 ]; var mes = values [ 1 ]; var ano = values [ 0 ]; // cogemos los valores actuales var fecha_hoy = new Date (); var ahora_ano = fecha_hoy . getYear (); var ahora_mes = fecha_hoy . getMonth () + 1 ; var ahora_dia = fecha_hoy . getDate (); // realizamos el calculo var edad = ( ahora_ano + 1900 ) - ano ; if ( ahora_mes < mes ) { edad --; } if (( mes == ahora_mes ) && ( ahora_dia < dia )) { ...

Angular directivas para validar input (enteros y decimales)

Decimales directive('decimal', function() { return { require: 'ngModel', restrict: 'A', link: function(scope, element, attr, ctrl) { function inputValue(val) { if (val) { var digits = val.replace(/[^0-9.]/g, ''); if (digits.split('.').length > 2) { digits = digits.substring(0, digits.length - 1); } if (digits !== val) { ctrl.$setViewValue(digits); ctrl.$render(); } return parseFloat(digits); } return ""; } c...

Aceptando valores nulos como parámetros en jasper report

A continuación se explica como hacer para aceptar valores nulos como parámetros en un reporte : Se plantea la situación en la cual tenemos que hacer un listado de documentos y uno de los parámetros es el  número, creamos un parámetro llamado número y parte de la consulta seria la siguiente : AND documento.numero = $P!{numero} ahora si se pasa como parámetro de número el valor null el reporte nos mostrara una lista en blanco ya que ningún número de documento sera null, entonces lo que debemos hacer es lo siguiente: creamos un nuevo parametro llamado numero_query y le ponemos como DEFAULT VALUE EXPRESSION lo siguiente :     $P{numero} ==null  ? " true" : "documento.numero=" .concat( $P{numero} .toString()) En este caso solo validamos el valor null pero cada uno lo puede adaptar a sus necesidades validando otros valores como "" . Luego reemplazamos AND  documento.numero = $P!{numero} por AND $P!{numero_query} 

Mostrar pdf en iframe usando angularjs recibido de un api rest usando spring (@RestController ) + jasper report

Exportar reporte a pdf stream byte[] response = null; JasperPrint jasperPrint = reporteRepositorio.generarReporte(reportName, parameters); if (TipoFormatoExportacion.STREAM.getValue().equals(formatType)) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); JasperExportManager.exportReportToPdfStream(jasperPrint, baos); response=baos.toByteArray();  } return response; Controlador rest @RequestMapping(method = RequestMethod.GET) public void generarReporte(HttpServletRequest request,HttpServletResponse response) { Map<String, Object> parameters = new HashMap<String, Object>(); try { byte[] contents = reporteServicio.generarReporte("reportName", TipoFormatoExportacion.STREAM.getValue(), parameters); OutputStream os = response.getOutputStream(); response.setHeader("Content-Disposition", "inline; filename=file.pdf");    response.setContentType("application/pdf"); response.setSta...

Moviendo el default progress indicator y hacerlo modal Vaadin

Algunas veces el progress indicador por defecto de vaadin no esta en la mejor posición y necesitamos centrarla y hacerla modal, para ello les comparto el siguiente código que es la solución para ese requerimiento : .v-loading-indicator , .v-loading-indicator-delay , .v-loading-indicator-wait { position : absolute ; z-index : 30000 ; width : 100 % ; height : 100 % ; background : rgba ( 20 , 20 , 20 , 0 .6 ) url(../base/common/img/loading-indicator.gif) no-repeat 50 % 50 % ; }