Closed LMoota closed 7 years ago
Estoy intentando enviar parámetros al ireport, pero no funciona... Helpme
I'm trying to send parameters to ireport, but does not work ... Help Me
try updating the library composer update
@geekcom vc pode me passar um exemplo passando uma collection ou array para o ireport?
olá @gilvannfilho, o que exatamente você precisa?, forneça mais detalhes...
@geekcom preciso passar uma collection ou array por parâmetro a partir do seu pacote e montar o details do relatório
@geekcom vc tem alguma novidade?
opa @gilvannfilho , você pode passar parâmetros usando o array específico para isso, é bem simples observe o trecho de exemplo completo abaixo:
you can use the parameter using the specific array for this, it's quite simple note the full sample excerpt below:
$jasper = new JasperPHP;
$input = '/your_input_path/your_report.jasper';
$output = '/your_output_path';
$extension= 'pdf';
$locale = 'pt_BR';
$jasper->process(
$input,
$output,
$extension,
[
'parameter_1' => 'title',
'parameter_2' => 'name',
],
[
'driver' => 'postgres',
'username' => 'DB_USERNAME',
'password' => 'DB_PASSWORD',
'host' => 'DB_HOST',
'database' => 'DB_DATABASE',
'schema' => 'DB_SCHEMA',
'port' => '5432'
],
$locale
)->execute();
Outra coisa @gilvannfilho , no jasper studio ao editar ou criar seu relatório .jrxml você deve "capturar" o valor do parâmetro passado no array da seguinte forma:
Another thing @gilvannfilho, in jasper studio when editing or creating your .jrxml report you must "capture" the value of the parameter "passed" in the array as follows:
$P{parameter_1}, $P{parameter_2} ....
@geekcom existe um jdbc para sql server??? como faço pra instala-lo no pacote??? Somente encontrei o MySQL e PostGress. Estou tentando aplicar o exemplo que vc recomendou o @gilvannfilho usar.
@geekcom is there a jdbc for sql server ??? How do I install it in the package ??? I just found MySQL and PostGress. I am trying to apply the example you recommended the @gilvannfilho use.
@geekcom apos baixar esse arquivo basta coloca-lo na pasta "/vendor/geekcom/src/JasperStarter/jdbc/"??? Ou necessito instalar???
@isaacbatista, nesse caso você precisa "criar" uma conexão JDBC
@isaacbatista, in which case you need to "create" a JDBC connection
@geekcom PODES ME ENSINAR COMO?
@isaacbatista, qual o ambiente que você tem aí?
me adicione no skype que te mostro como fazer>>> danielrodrigueslima
LINUX UBUNTU
baixe o Jasper Studio aqui , depois crie uma conexão JDBC nele, a partir dai fica tudo muito fácil.
@geekcom aqui na empresa é bloqueado o Skype, teriamos que nos falar mais tarde quando chegar em casa... outra coisa... já possuo o Jasper Studio onde produzi o jrxml com um Data Adapter com o JDBC SQL. Qual seria o próximo passo?
@isaacbatista , ao que parece você já tem tudo que precisa em seu ambiente, basta gerar seu relatório, observe aqui, o array que tem os dados de conexão "monta" a conexão com o jdbc, com isso você não precisa se preocupar, outra coisa que você pode fazer é checar o comando que está sendo gerado é dá um print()
no método output()
, assim você pode ver o comando que está sendo gerado.
require __DIR__ . '/vendor/autoload.php';
use JasperPHP\JasperPHP;
$input = '/your_input_path/your_report.jasper';
$output = '/your_output_path';
$format = 'pdf';
$locale = 'en';
$jasper = new JasperPHP;
print $jasper->process(
$input,
$output,
$format,
[],
[
'driver' => 'postgres',
'username' => 'DB_USERNAME',
'password' => 'DB_PASSWORD',
'host' => 'DB_HOST',
'database' => 'DB_DATABASE',
'schema' => 'DB_SCHEMA',
'port' => '5432'
],
$locale
)->output();
@geekcom meu amigo, fiz tudo que me pediste, porém, continuo com o mesmo problema. Mas agora tenho algumas msgs novas dos erros.
Quando printei o método "output()" pude ver o comando executado:
#the_command: "./jasperstarter --locale pt_BR process "/home/vagrant/Projetos/PHP/Laravel/sim-web/public/report/municipios_inSQL.jrxml" -o "/home/vagrant/Projetos/PHP/Laravel/sim-web/public/report/1481571002_Municipios" -f pdf -t generic -u sim_con -p sim_con -H 10.10.10.155 -n sim6teste --db-port 1433 --db-driver com.microsoft.sqlserver.jdbc.SQLServerDriver --db-url jdbc:sqlserver://10.10.10.155:1433;databaseName=sim6teste --jdbc-dir /vendor/geekcom/phpjasper/src/JasperStarter/jdbc/"
Então resolvi executá-lo na console:
vagrant@homestead:~/Projetos/PHP/Laravel/sim-web/vendor/geekcom/phpjasper/src/JasperStarter/bin$ ./jasperstarter --locale pt_BR process "/home/vagrant/Projetos/PHP/Laravel/sim-web/public/report/municipios_inSQL.jrxml" -o "/home/vagrant/Projetos/PHP/Laravel/sim-web/public/report/1481570522_Municipios" -f pdf -t generic -u sim_con -p sim_con -H 10.10.10.155 -n sim6teste --db-port 1433 --db-driver com.microsoft.sqlserver.jdbc.SQLServerDriver --db-url jdbc:sqlserver://10.10.10.155:1433;databaseName=sim6teste --jdbc-dir /vendor/geekcom/phpjasper/src/JasperStarter/jdbc/
Error filling reportError executing SQL statement for: sql. --jdbc-dir: command not found
Então, resolvi retirar o --jdbc-dir /vendor/geekcom/phpjasper/src/JasperStarter/jdbc/
e executar novamente e tive esse erro:
vagrant@homestead:~/Projetos/PHP/Laravel/sim-web/vendor/geekcom/phpjasper/src/JasperStarter/bin$ ./jasperstarter --locale pt_BR process "/home/vagrant/Projetos/PHP/Laravel/sim-web/public/report/municipios_inSQL.jrxml" -o "/home/vagrant/Projetos/PHP/Laravel/sim-web/public/report/1481570522_Municipios" -f pdf -t generic -u sim_con -p sim_con -H 10.10.10.155 -n sim6teste --db-port 1433 --db-driver com.microsoft.sqlserver.jdbc.SQLServerDriver --db-url jdbc:sqlserver://10.10.10.155:1433;databaseName=sim6teste
Error filling reportError executing SQL statement for: sql.
Bom, dai eu não tive mais nenhuma luz... Será que vc já passou por isso?
@isaacbatista, esse erro é gerado por algum problema na sintaxe da sua query, Error executing SQL statement, mas de qualquer forma verifique se o arquivo jdbc para o mssql está no caminho indicado:
--jdbc-dir /vendor/geekcom/phpjasper/src/JasperStarter/jdbc/
, depois revise suas querys em busca de algum erro, uma boa sugestão é você "rodar" sua consulta em em algum SGBD, você está no caminho certo e próximo de resolver esse problema, tente e me fale o que aconteceu.
This error is generated by some problem in the syntax of your query, Error executing SQL statement, but in any case verify that the jdbc file for mssql is in the indicated path:
--jdbc-dir /vendor/geekcom/phpjasper/src/JasperStarter/jdbc/
, then review your querys for some error, a good suggestion is you "run" your query in some DBMS, you're on the way Sure and close to solving this problem, try and tell me what happened.
@geekcom vamos ver no Skype mesmo... Te adicionei!
Hey @isaacbatista to close this issue follows the final solution, it's ok and tested:
$input = __DIR__ . '/input/MSSQL.jrxml';
$output = __DIR__ . '/output';
$format = 'pdf';
$locale = 'pt_BR';
$jdbc_dir = __DIR__ . '/vendor/geekcom/phpjasper/src/JasperStarter/jdbc/';
$jasper = new JasperPHP;
$jasper->process(
$input,
$output,
$format,
array(),
[
'driver' => 'generic',
'host' => '127.0.0.1',
'port' => '1433',
'database' => 'DBName',
'username' => 'userName',
'password' => 'password',
'jdbc_driver' => 'com.microsoft.sqlserver.jdbc.SQLServerDriver',
'jdbc_url' => 'jdbc:sqlserver://127.0.0.1:1433;databaseName=DBName',
'jdbc_dir' => $jdbc_dir
],
$locale
)->execute();
I'm trying to pass as a given parameter of type array and my parameter is an ArrayList, also tried as collectible. In CMD always says: Parameter of type "java.util.Collection" with value x is not supported. I tried several possible ways. Can anyone help me?
Eu estou tentando passar como um determinado parâmetro, meu parâmetro é um ArrayList , também tentei como Collection. Em CMD sempre diz : Parâmetro do tipo " java.util.Collection " com o valor x não é suportado. Eu tentei várias maneiras possíveis . Alguém pode me ajudar?