Dudas con la extension JasPHP

Hola comunidad, quiero utilizar esta extension para hacer un reporte creado con JasperSoft iRepor, tengo el reporte elaborado y ubicado en la carpeta Reportes dentro del proyecto, llamo asi el reporte:

en el controlador tengo la funcioin Reportes




public function actionReportes() {

   $q = "SELECT tbl_detallesres.PM+tbl_detallesres.CLA+tbl_detallesres.PGE+tbl_detallesres.PEA+tbl_detallesres.GPS+tbl_detallesres.NOC+tbl_detallesres.PO+tbl_detallesres.OP AS OtrosPagos,

 	LAST_DAY(tbl_resultados.fecha) AS fechafin,

 	DATE_FORMAT(tbl_resultados.fecha,'01/%m/%Y') AS fechaini,

 	tbl_trabajadores.Nombre AS Nombre,

 	tbl_resultados.Id_Nomina AS Id_Nomina,

 	tbl_resultados.fecha AS fecha,

 	tbl_resultados.Salarioxtrt AS Salarioxtrt,

 	tbl_resultados.Salariocret AS Salariocret,

 	tbl_resultados.ImporteSS AS ImporteSS,

 	tbl_detallesres.IdTrab AS IdTrab,

 	tbl_detallesres.IdArea AS IdArea,

 	tbl_detallesres.IdCC AS IdCC,

 	tbl_detallesres.SEscala AS SEscala,

 	tbl_detallesres.TRT AS TRT,

 	tbl_detallesres.TotalDedu AS TotalDedu,

 	tbl_detallesres.Salariotrt AS Salariotrt,

 	tbl_detallesres.Salarioxres AS Salarioxres,

 	tbl_detallesres.Salariomret AS Salariomret,

 	tbl_detallesres.ImporSS AS ImporSS,

 	tbl_detallesres.Neto AS Neto,

 	tbl_empresa.CodREEUP AS CodREEUP,

 	tbl_empresa.Descripcion AS Descripcion,

 	tbl_entidades.NEnt AS NEnt,

 	tbl_area.Descripcion AS Descripcion,

 	tbl_resultados.ImporNeto AS ImporNeto,

 	tbl_resultados.CodUEB AS CodUEB,

 	tbl_tiponomina.Tipos AS Tipos,

 	tbl_submayor.SDiasAct AS SDiasAct,

 	tbl_submayor.SImpAct AS SImpAct,

 	tbl_trabajadores.CI AS CI,

 	tbl_detallesres.PAP AS PAP,

 	tbl_centrocosto.descripcion AS tbl_centrocosto_descripcion,

 	tbl_detallesres.TotalSal AS tbl_detallesres_TotalSal,

 	tbl_resultados.SalarioxRes AS tbl_resultados_SalarioxRes

FROM

 	tbl_trabajadores tbl_trabajadores INNER JOIN tbl_submayor tbl_submayor ON tbl_trabajadores.NControl = tbl_submayor.IdTrab

 	INNER JOIN tbl_detallesres tbl_detallesres ON tbl_trabajadores.NControl = tbl_detallesres.IdTrab

 	INNER JOIN tbl_area tbl_area ON tbl_trabajadores.IdArea = tbl_area.IdArea

 	AND tbl_area.IdArea = tbl_detallesres.IdArea

 	AND tbl_area.IdArea = tbl_submayor.IdArea

 	INNER JOIN tbl_centrocosto tbl_centrocosto ON tbl_area.IdArea = tbl_centrocosto.IdArea

 	AND tbl_centrocosto.CodCC = tbl_detallesres.IdCC

 	INNER JOIN tbl_resultados tbl_resultados ON tbl_detallesres.Id_nomina = tbl_resultados.Id_Nomina

 	INNER JOIN tbl_entidades tbl_entidades ON tbl_resultados.CodUEB = tbl_entidades.CodUEB

 	INNER JOIN tbl_tiponomina tbl_tiponomina ON tbl_resultados.IdNom = tbl_tiponomina.Id

 	INNER JOIN tbl_empresa tbl_empresa ON tbl_entidades.CodUEB = tbl_empresa.CodUEB

WHERE

 	tbl_resultados.Id_Nomina = '{idnom}'

GROUP BY

 	tbl_resultados.Id_Nomina,

 	tbl_detallesres.IdTrab,

 	tbl_detallesres.IdCC

ORDER BY

 	tbl_detallesres.IdCC ASC,

 	tbl_detallesres.IdTrab ASC";

    	$cmd = Yii::app()->db->createCommand($q);

    	$result = $cmd->queryScalar();

    	Yii::app()->jasPHP->create(getcwd() . '/Reportes/', 'Nomina_por_Resultados.jrxml', array('title' => $result,));

	}



Esta consulta es la misma que tengo en el reporte elaborado en iReport con el parametro de la condicion.

esta funcion la estoy llamando mediante un boton creado en el admin, donde llama por id en este caso (tbl_resultados.Id_Nomina)

Este es el boton:




<?php

$this->widget('zii.widgets.grid.CGridView', array(

	'id' => 'tbl-datos-grid',

	'dataProvider' => $model->search(),

	'filter' => $model,

	'columns' => array(

   		

 		array(

        	'header' => 'Imprimir Nómina',

        	'class' => 'CButtonColumn',

        	'template' => '{imprimir}',

        	'buttons' => array(

            	'imprimir' => array(

                	'label' => 'Imprimir Nómina de Salario',

                	'imageUrl' => Yii::app()->request->baseUrl . '/images/prin1.png',

                	'url' => '$this->grid->controller->createUrl("/tblDatos/Reportes", array("id"=>$data->Id))',

            	),

        	),

    	),

    	'Numero',

    	'fecha',

 		'CodUEB',

 	

    	array(

        	'header' => 'Calcular Pago por Resultados',

        	'class' => 'CButtonColumn',

        	'template' => '{cancelar}',

        	'buttons' => array(

            	'cancelar' => array(

                	'label' => 'Calcular Nómina de Resultados',

                	'imageUrl' => Yii::app()->request->baseUrl . '/images/Calcular.png',

                	'url' => '$this->grid->controller->createUrl("/tblDatos/calcularResultados", array("id"=>$data->Id))',

            	),

        	),

    	),

	),

));

?>



Cuando ejecuto la accion del botón me genera este error:

CDbException

		CDbCommand falló al ejecutar la sentencia SQL: SQLSTATE[42000]: Syntax  error or access violation: 1064 You have an error in your SQL syntax;  check the manual that corresponds to your MySQL server version for the  right syntax to use near '{idnom}

GROUP BY …

Neceito ayuda con esto, si alguien tiene experiencia en el uso de esta extension.

[quote=“rafaelrosales”]

Hola comunidad, quiero utilizar esta extension para hacer un reporte creado con JasperSoft iRepor, tengo el reporte elaborado y ubicado en la carpeta Reportes dentro del proyecto, llamo asi el reporte:

en el controlador tengo la funcioin Reportes

El problema es que necesito correr los reportes generados con iReport con parametros, por las ventajas que da al hacerlo visual y necesito hacer reportes con agrupamiento, subtotales y totales, ademas de hacer el reporte de facturas, he probado con varias extensiones y con niguna lo he logrado, hasta ahora utilizo exportar a excel y html puro, pero no es lo que quiero.

Alguna sugerencia?

Buenas, Rafael.

1º- La consulta te saca ese error pq existe un error de sintaxis SQL. Yo no lo veo (tampoco he revisado minuciosamente la consulta), pero tiene que estar. Has ejecutado la consulta en un cliente SQL?

2º- He intentado probar la extensión iReport y parece que no está acabada o no está bien diseñada. Prueba a deshabilitar los warnings en el servidor a ver si te vá. Primero de nada debes descargar el TCPDF y copiarlo a un directorio llamado "tcpdf" dentro de extendions/ireport.

3º- Que tipo de informes deseas crear? Informes tipo hoja de cálculo para poder interactuar con ellos o simplemente para presentar información de forma bonita? Yo para lo primero exporto en csv (más rápido y cualquier aplicación de hojas de cálculo te lo abre) y para lo segundo, creo una página con el diseño y directamente la imprimo en pdf.

Un saludo.

Hola lagogz gracias por responder, en realidad puse lo que me dijiste, copie tcpdf dentro de las extensiones ireport y dentro de jasphp, ya que estoy intentando utilizar ambas extensiones por separado, o sea, o una o la otra.

como dijiste ejecute la consulta aparte sola y no me da error, para ello utilice dos programas SqlYong y Toad for Mysql y en ambos corre bien.

Al intentar utlizar la extension jasphp, que es la funcion que pongo en este post, ahora al utlizar esta extension me genera un error con un fichero que esta dentro de esta extension en la carpeta utils, el error es:

Cuando intento utlizar la extension ireport con otra funcion que alterno a la hora de llamarla, me deja la pagina en blanco, esta es la accion del controlador para esa extension:




public function actionReportes() {

	$model=new TblResultados;

            	if(!empty($_POST['TblResultados']['Id_Nomina']))

            	{

            	// echo $_POST['TblResultados']['Id_Nomina'];

            	Yii::import('application.ext.extensions.ireport.*');

            	$repo=dirname(__FILE__).'/Reportes/Nomina_por_Resultados.jrxml';

            	error_reporting(0);

            	$AReport = new IReport($repo);              	

            	$AReport->parameters = array("idnom"=>1);

            	$AReport->execute();

            	} 		

 	}



esta es la imagen que queda con esta extension

En este caso 17812-0173 es el parametro que tengo hecho en el reporte y lo llama con la extension.

En realidad lo que intento hacer son reportes agrupamiento y subtotales y totales finales, y hacer reportes como el de una factura, por eso es que quiero utlizar reportes hechos previamente con iReport.

Te agradeceria cualquier ayuda

Mira te pongo esta imagen que es el reporte que estoy intentando hacer ahora, esta en edición con iReport, para que observes los agrupamientos qure decia:

Hola de nuevo aclaro, cuando utlizo la extension jasPHP y pongo el parametro en la consulta del iReport, me genera el error DE CDbException

		CDbCommand falló al ejecutar la sentencia SQL: SQLSTATE[42000]:  Syntax  error or access violation: 1064 You have an error in your SQL  syntax;  check the manual that corresponds to your MySQL server version  for the  right syntax to use near '{idnom}

GROUP BY …

cuando le quito el parametro de la consulta en el iReport del reporte, entonces me genera el error del fichero que esta dentro de esta extension en la carpeta utils, parece que yii se pierde a la hora de leer los parametros del iReport, por eso necesito saber como se maneja esta parte, si declaro el parametro en el iReport y se lo pongo a la consulta, segun esta imagen

Por favor necesito saber como se maneja esto de los parametros en yii