Etiquetas para multiples impresiones (SOLUCIONADO POR UNCOMA)

hola , como andan? , tengo problemas en configurar el ireport en etiquetas para múltiples impresiones , me di cuenta que para el código se contempla múltiples impresiones , pero cuando quiero imprimir datos del xml " solicitudes ->bienes_usos->registro" solo se contempla de uno solo . Alguna manera de que salgan los datos múltiples impresiones y no solo el codigo ???

Hola Juan Antonio , buenas tardes.

Te comento que si bien en los datos xml disponibles para la impresión de etiquetas no dispone actualmente de atributos adicionales a los mostrados en la etiqueta, actualmente si se puede personalizar la imagen del código de barras que es agregado desde las impresiones Ireport, que actualmente tiene 3 partes:

  • 1- SIGLA de la Uni en la parte superior
  • 2- Código de barras
  • 3- Número patrimonial al pie de cada etiqueta.

Copiando el archivo

  • /php/patrimonio/impresion_etiqueta.php
    a
  • /personalizacion/php/patrimonio/impresion_etiqueta.php

Pueden personalizar y cambiar la imagen que se genera en sus 3 partes, así que si les sirve esta personalización vía php, pueden tener en cuenta a esta posibilidad

Volviendo a la personalización desde el Ireport, actualmente pueden personalizar formato, pero no campos, y si quisieran hacerlo, tendríamos que agregar nuevos campos a los datos XML disponibles para realizar la personalización. Para comprender un poco más la personalización que quieren hacer, te consulto: que campos están necesitando agregar a la impresión?, podrías pasar una foto de la impresión que están queriendo obtener con la personalización?, que limitantes estan teniendo?, Les alcanzaría con la personalización del php modificando esas secciones de la imagen del código de barras?.

Seguimos en contacto,

Saludos,
Fernando

Hola Juan Antonio,

creo que tus dudas son las mismas que tuve cuando quise modificar el formato de las etiquetas, en una parte de tu consulta donde decís “cuando quiero imprimir datos del xml " solicitudes ->bienes_usos->registro” solo se contempla de uno solo" entiendo que te repite el mismo valor en todas las etiquetas. Si ese es el caso, se puede resolver colocando $area0, $area1… en vez de colocar $area.

Adjunto al mensaje una imagen que muestra la ventana de ireport donde se pueden ver los valores disponibles de cada etiqueta.

Por otro lado cuando preguntas “Alguna manera de que salgan los datos múltiples impresiones y no solo el codigo ???” entiendo que querés agregar mas datos a la etiqueta, lo que se puede hacer es modificar el archivo “…/aplicacion/php/patrimonio/bien_uso/dao_bien_uso.php” en la sección donde se encuentra la función “get_bien_uso_impresion(…)”
en nuestro caso se deseaba mostrarla descripción del bien, área responsable y número patrimonial anterior

luego de las modificaciones (en negrita) quedó de la siguiente manera:

function get_bien_uso_impresion($filtro = array(),$cant_columnas = 4)
{
	$bienes = $this->get_bien_uso($filtro);
	$bienes = util::ordenar_algoritmo_burbuja($bienes, 'numero_patrimonial');
	$datos = array();
	//controlo que el número de columna sea valido, en caso de ser invalido se setea en 4 columnas
	$cant_columnas = (is_numeric($cant_columnas) && $cant_columnas >= 1)?$cant_columnas:4;

	//Genero el array de bienes agrupados por columnas de acuerdo a la cantidad de columnas definidas en el paramétro $cant_columnas
	for($i = 0; $i < count($bienes); $i = $i+$cant_columnas){
		$bienes_columnas = array();
		for($j = 0; $j < $cant_columnas; $j++){
			$bienes_columnas['columna'.$j] = (isset($bienes[$i+$j]['numero_patrimonial']))?$bienes[$i+$j]['numero_patrimonial']:'';
			/[b]/SE AGREGAN DATOS: DESCRIPCION, AREA Y NUMERO ANTERIOR
                            $bienes_columnas['descripcion'.$j] = (isset($bienes[$i+$j]['numero_patrimonial']))?$bienes[$i+$j]['descripcion_bien']:'';
                            $bienes_columnas['area'.$j] = (isset($bienes[$i+$j]['numero_patrimonial']))?$bienes[$i+$j]['area']:'';
                            $bienes_columnas['numero_anterior'.$j] = (isset($bienes[$i+$j]['numero_patrimonial']))?$bienes[$i+$j]['numero_anterior']:'';[/b]
		}
		$datos[] = $bienes_columnas;
	}
	return $datos;
}

Adjunto al mensaje un ejemplo del archivo jrxml y un pdf con la salida para que veas como quedan las etiquetas. En este momento no disponemos de impresora térmica por lo que para las pruebas configuré la impresión para etiquetas adhesivas que vienen en 2 columnas en hoja A4

te explico algo que aparece en mi jrxml para que no te asustes, por ejemplo donde se desea mostrar el número de inventario anterior se puede poner "Nro. Inv. Anterior: "+$F{numero_anterior0}, dicho número corresponde al numero patrimonial dado en el inventario a los bienes que estaban inventariados y fueron migrados.
En nuestra universidad, en muchos casos no se dispone de número de inventario anterior por lo que $F{numero_anterior0} está vacío, entonces se colocó una expresión condicional para que no muestre el texto "Nro. Inv. Anterior: " en la etiqueta en los casos en que no hay número disponible.

La expresión que coloqué es la siguiente: ($F{numero_anterior0}.equals(“”) ? “” :“Nro. Inv. Anterior: “)+($F{numero_anterior0}.equals(””) ? “” :$F{numero_anterior0})
que se traduciría a; ("si numero_anterior0 es vacío entonces imprimir “”, sino imprimir "Nro. Inv. Anterior: ") +( "si numero_anterior0 es vacío entonces imprimir “”, sino imprimir numero_anterior0)

Espero que se entienda, se ve un poco engorrosa la expresión pero mirándola con paciencia y detenimiento se entiende. Cualquier duda de lo que puse consultame y si no es lo que preguntabas a alguien le puede servir.

Suerte y Saludos!
Eli.


personalizacion_etiquetas.zip (165 KB)

Hola , fue genial lo que me pasaste Elisa .Para imprimir múltiples etiquetas por la etiquetadora , hice que el irepor salga una etiqueta por pagina , la misma para poner texto estático logre poniendo el siguiente script , ya que si dejaba texto estático en el el original imprimía de mas , es decir se imprime una etiqueta salían tres hojas mas con la información estática innecesaria

function get_bien_uso_impresion($filtro = array(),$cant_columnas =4)
{
$bienes = $this->get_bien_uso($filtro);
$bienes = util::ordenar_algoritmo_burbuja($bienes, ‘numero_patrimonial’);
$datos = array();
//controlo que el número de columna sea valido, en caso de ser invalido se setea en 4 columnas
$cant_columnas = (is_numeric($cant_columnas) && $cant_columnas >= 1)?$cant_columnas:4;

	//Genero el array de bienes agrupados por columnas de acuerdo a la cantidad de columnas definidas en el paramétro $cant_columnas
	for($i = 0; $i < count($bienes); $i = $i+$cant_columnas){
		$bienes_columnas = array();
		for($j = 0; $j < $cant_columnas; $j++){
			$bienes_columnas['columna'.$j] = (isset($bienes[$i+$j]['numero_patrimonial']))?$bienes[$i+$j]['numero_patrimonial']:'';
			$bienes_columnas['descripcion'.$j] = (isset($bienes[$i+$j]['numero_patrimonial']))?$bienes[$i+$j]['descripcion_bien']:'';
			$bienes_columnas['area'.$j] = (isset($bienes[$i+$j]['numero_patrimonial']))?$bienes[$i+$j]['area']:'';
			$bienes_columnas['serie'.$j] = (isset($bienes[$i+$j]['numero_patrimonial']))?$bienes[$i+$j]['numero_serie']:'';
			$existe = (isset($bienes[$i+$j]['numero_patrimonial']))?$bienes[$i+$j]['numero_patrimonial']:'';
                               // MODIFICACION  PARA TENER ADICIONAL TEXTO ESTATICO //////
			if($existe != ''){
				$bienes_columnas['instituto'.$j] = 'Universidad Nacional Arturo Jauretche';
				$bienes_columnas['text_area'.$j] = 'Area :';
				$bienes_columnas['text_serie'.$j] = 'Serie :';
			}else{
				$bienes_columnas['instituto'.$j] = '';
				$bienes_columnas['text_area'.$j] = '';
				$bienes_columnas['text_serie'.$j] = '';
			}
                 /**********************************************************************************************************************/

			$bienes_columnas['numero_anterior'.$j] = (isset($bienes[$i+$j]['numero_patrimonial']))?$bienes[$i+$j]['numero_anterior']:'';
		}
		$datos[] = $bienes_columnas;
	}
	return $datos;
}

Impresion_etiquetas_91446009.pdf (8.11 KB)