Instalação dos Relatórios na versão 2.1.0

Esse erro aconteceu por que você deve ter executado 2 vezes as migrations, não deve ser isso que está travando seu relatório.


Bom, podemos tentar fazer o seguinte:
Abra o arquivo i-educar/vendor/cossou/jasperphp/src/JasperPHP/JasperPHP.php
Na linha 186 adiciona esse comando: echo $this->the_command;exit;
Salva o arquivo e tenta gerar o relatório.
Na nova aba que abriu no navegador ter uma string, essa é a string com os comandos para gerar o teu relatório, remova o final dessa string, o final dela deve ter algo como 2>&1 copie o resto dessa string e cole no terminal do container do i-educar, após isso mande executar, cola o retorno do comando aqui para nós.

Eu iria fazer isso em minha instalação, mas meu banco de dados está sem nada, preciso achar um backup ou algo assim.

image

Após alterado esse arquivo, o resultado ao executar o relatório foi:

/application/vendor/cossou/jasperphp/src/JasperPHP/../JasperStarter/bin/jasperstarter compile /root/i-educar/ieducar/modules/Reports/ReportSources/students-per-class.jrxml -o /root/i-educar/ieducar/modules/Reports/ReportSources/students-per-class

Não apareceu, como disse nessa parte (não consegui executar esse passo):

Na nova aba que abriu no navegador ter uma string, essa é a string com os comandos para gerar o teu relatório, remova o final dessa string, o final dela deve ter algo como 2>&1 copie o resto dessa string e cole no terminal do container do i-educar, após isso mande executar, cola o retorno do comando aqui para nós.

Bom dia.
Você não consegue executar esse comando no terminal de dentro do container do docker?

Bom dia,

Copiar todo esse conteúdo e jogar no terminal?

Em qual dos containers? Pq tem um ieduar-php, ieducar-ngnix, …

Isso, copia o comando e joga no terminal do ieducar-php

Assim:

image

Parece que ele não achou o arquivo jasperstarter, tem como você navegar até a pasta bin?
cd /application/vendor/cossou/jasperphp/src/JasperPHP/…/JasperStarter/bin

e depois vai até essa pasta:
cd /application/i-educar/ieducar/modules/Reports/ReportSources

e depois até essa:
cd /root/i-educar/ieducar/modules/Reports/ReportSources

Está um pouco estranho essa estrutura de pastas desses comandos.

cd /application/vendor/cossou/jasperphp/src/JasperPHP/…/JasperStarter/bin
image
E a bin está aqui:
image

cd /application/i-educar/ieducar/modules/Reports/ReportSources
R. Não tem essa pasta (em negrito) /application/i-educar/ieducar/modules/Reports/ReportSources
image

cd /root/i-educar/ieducar/modules/Reports/ReportSources
Essa aqui acesso, fora do container do Docker:

No ieducar.ini em report.source_path coloca:
/application/ieducar/modules/Reports/ReportSources

Após executa o relatório de novo e poe aqui a saida da string do comando.

A Saída foi:

/application/vendor/cossou/jasperphp/src/JasperPHP/../JasperStarter/bin/jasperstarter compile /application/ieducar/modules/Reports/ReportSourcesstudents-per-class.jrxml -o /application/ieducar/modules/Reports/ReportSourcesstudents-per-class

`

E quando você executa:
/application/vendor/cossou/jasperphp/src/JasperPHP/…/JasperStarter/bin/jasperstarter compile /application/ieducar/modules/Reports/ReportSourcesstudents-per-class.jrxml -o /application/ieducar/modules/Reports/ReportSourcesstudents-per-class

no terminal do container ieducar-php, aparece alguma mensagem?

Dá aquela mesma mensagem, porque a saída é a mesma.

Da a mensagem de No such file or directory?

Isso.

Mas ele não encontra qual diretório?

Quando tava entrando no Container, ele já tava abrindo a pasta application
root@298aa6020481:/application#

Aí dei um ** cd\ ** e rodei o a string, aí saíu isso:

P.S. Faltando a barra no final do ReportSources/ . vou inserir e rodar novamente.

Rodei novamente, e executou, não apareceu mensagem

Agora sim, quando executei novamente relatório apareceu aquela string que você falou no começo:

/application/vendor/cossou/jasperphp/src/JasperPHP/../JasperStarter/bin/jasperstarter process /application/ieducar/modules/Reports/ReportSources/students-per-class.jasper -o /application/ieducar/modules/Reports/ReportSources/1545311384-1230492334 -f pdf -r /application/vendor/cossou/jasperphp/src/JasperPHP/../../../../../ -P ano=2018 instituicao=1 escola=0 curso=0 serie=0 turma=0 situacao=10 data_inicial="" data_final="" proerd=0 dependencia=0 database="ieducar" SUBREPORT_DIR="/application/ieducar/modules/Reports/ReportSources/" data_emissao=0 logo="/application/ieducar/modules/Reports/ReportLogos/brasil.png" source="/application/ieducar/modules/Reports/ReportSources/1545311384-212291453" -t json --json-query main --data-file /application/ieducar/modules/Reports/ReportSources/1545311384-212291453 2>&1

Veja na pasta /application/ieducar/modules/Reports/ se tem algum pdf lá

Isso ai, remove o final dela e executa ela no container do ieducar-php

Deu essa mensagem:
Error filling reportjava.io.FileNotFoundException: /application/ieducar/modules/Reports/ReportSources/1545311384-212291453

Lembra desse comando echo $this->the_command;exit;, remove ele do arquivo e executa o relatório pela navegador.