Autor Tópico: [RESOLVIDO]Relatórios com IReport  (Lida 2970 vezes)

Vandacardoso

  • Avançado
  • ****
  • Mensagens: 272
Re:Relatórios com IReport
« Responder #30 Online: Outubro 12, 2015, 08:38:40 am »
Não terminou porque será?
Resumindo demanda conhecimento de java, servidor, php e integração.
Galera não quero ser redundante mas trabalho com SC a mais de 6 anos e posso garantir que não existe no mercado nada pronto bonitinho, a unica ferramenta que ja vi de geração de relatório que entrega um resultado 90% satisfatório  sem muita dor de cabeça porque encapsula tudo com flex (linguagem de programação Adobe) é essa: http://flex.stimulsoft.com/
Acho uma ferramenta cara e também precisa de conhecimento avançado de SQL pra conseguir extrair tudo que a ferramenta proporciona.

Na minha humilde opinião acho que a NM poderia sim ajudar simplificando o PDF Report, embora pra mim não faça falta porque trabalho muito bem com as consultas em Formato Livre do SC, então sinceramente sejam expertos e aprendam com os erros dos outros, foquem em ter um resultado satisfatório usando o SC, estudem a ferramenta e deixem de buscar soluções mirabolantes porque pra mim o SC ainda é o que tem de melhor na geração de relatórios e falo isso com conhecimento de causa porque também fiquei muito frustrado com a ferramenta no começo e andei e gastei dinheiro buscando uma solução, sendo que só precisava me esforçar um pouco mais pra chegar em algo satisfatório com o SC.

Saulo, como você mostra informação de outra tabela (tipo mestre detalhe) no formato livre das consultas?

saulobborges

  • Expert
  • *****
  • Mensagens: 1392
    • SGi Sistemas
    • Email
Re:Relatórios com IReport
« Responder #31 Online: Outubro 12, 2015, 11:56:05 pm »
Use uma subconsulta que pode ser em formato livre ou não e chame essa subconsulta como você faz pra chamar um campo comum dentro do html do formato livre.

Vandacardoso

  • Avançado
  • ****
  • Mensagens: 272
Re:Relatórios com IReport
« Responder #32 Online: Outubro 13, 2015, 05:43:08 am »
Use uma subconsulta que pode ser em formato livre ou não e chame essa subconsulta como você faz pra chamar um campo comum dentro do html do formato livre.
Obrigada Saulo. Funcionou perfeitinho.
Mas agora mais uma questão. A minha subconsulta que é em formato livre e com base numa grid_view tem vários registos. O problema é que ela aparece como outra tabela e não como outro registo (ou seja linha). Por exemplo, tenho 2 registos e ele em vez de juntar e pôr registo 1 e registo 2 na mesma tabela não. O que faz é desenha a tabela com o registo 1 e depois a tabela com o registo 2. Como posso resolver este problema?

Vandacardoso

  • Avançado
  • ****
  • Mensagens: 272
Re:Relatórios com IReport
« Responder #33 Online: Outubro 14, 2015, 05:05:55 am »
Bom dia,

Volto a colocar a questão: será que alguém já conseguiu resolver o problema de no formato livre e na subconsulta quando temos múltiplos registos eles aparecerem apenas numa tabela? Ou seja, os registo devem aparecer todos na mesma tabela em vez de serem criada várias mostrando 1 registo em cada.

saulobborges

  • Expert
  • *****
  • Mensagens: 1392
    • SGi Sistemas
    • Email
Re:Relatórios com IReport
« Responder #34 Online: Outubro 14, 2015, 08:33:19 am »
Não é um problema Vanda, veja bem, o layout que você criou roda pra cada interação no banco de dados assim pra cada registro encontrado que corresponda a sua cláusula select ele vai gerar uma copia do layout com os dados do registro atual e assim sucessivamente.
O formato livre é mais indicado como layout da parte principal do relatório assim com é o mestre / detalhe de um formulário, formulário pai traz as informações únicas e os detalhes trazem seus relacionamentos.

Vandacardoso

  • Avançado
  • ****
  • Mensagens: 272
Re:Relatórios com IReport
« Responder #35 Online: Outubro 14, 2015, 09:48:38 am »
Não é um problema Vanda, veja bem, o layout que você criou roda pra cada interação no banco de dados assim pra cada registro encontrado que corresponda a sua cláusula select ele vai gerar uma copia do layout com os dados do registro atual e assim sucessivamente.
O formato livre é mais indicado como layout da parte principal do relatório assim com é o mestre / detalhe de um formulário, formulário pai traz as informações únicas e os detalhes trazem seus relacionamentos.
Certo Saulo. Isso entendi. Mas não haverá uma instrução SQL, Javascript ou PHP que possamos escrever no SQL ou criar um método em que diga que essa subconsulta é de múltiplos registos? E depois isso reflectir-se no layout?
Tentei no SQL da subconsulta escrever na área de Preparação do SQL isto: WHERE id_agregado IN (1,2), . Esta instrução deveria dizer para mostrar o registo 1 e 2. Mas não deu certo. Também já andei a tentar descobrir como no SC está definida a consulta horizontal de múltiplos registos mas ainda não consegui perceber. O SC podia facilitar os relatórios em formato livre já que são a maneira mais fácil e simples de os criar em vez de usar o PDF que leva tempo e é muito aborrecido de elaborar. COm isto quero dizer que devia permitir em formato livre fazer subconsultas sem recorrermos ao que recorremos agora.
« Última modificação: Outubro 14, 2015, 09:51:40 am por Vandacardoso »

saulobborges

  • Expert
  • *****
  • Mensagens: 1392
    • SGi Sistemas
    • Email
Re:Relatórios com IReport
« Responder #36 Online: Outubro 14, 2015, 10:09:01 am »
Não se pode confundir subconsulta do SC com subconsultas (subquery`s) no SQL.
Se a sua intenção é limitar a quantidade registros é só ir na subconsulta e colocar um LIMIT 2 no final do comando select principal.

Haroldo

  • Expert
  • *****
  • Mensagens: 6293
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Relatórios com IReport
« Responder #37 Online: Outubro 14, 2015, 10:18:17 am »
Vanda.

Crie um campo {subconsulta} no formato livre.

No evento onrecord vc cria um sc_select, monta uma tabela html com o resultado, guarda numa variável, e no final {Subconsulta}=$_var_html;


Importe esse exemplo, ele não vai funcionar mas poderá olhar o código fonte:

http://scriptcaseajax.com.br/ftp/sc_201510141021_export_RATWEB_IW.zip


exemplo gerado:
http://scriptcaseajax.com.br/ftp/sc_pdf_20131212172226_105_ratweb_print.pdf



« Última modificação: Outubro 14, 2015, 10:30:11 am por Haroldo »

Vandacardoso

  • Avançado
  • ****
  • Mensagens: 272
Re:Relatórios com IReport
« Responder #38 Online: Outubro 14, 2015, 03:14:37 pm »
Não se pode confundir subconsulta do SC com subconsultas (subquery`s) no SQL.
Se a sua intenção é limitar a quantidade registros é só ir na subconsulta e colocar um LIMIT 2 no final do comando select principal.
Saulo eu não quero limitar os registos. O que quero é que apareçam todos na mesma tabela, só isso. Não quero que apareçam 30 tabelas se eu tiver 30 registos.

Vandacardoso

  • Avançado
  • ****
  • Mensagens: 272
Re:Relatórios com IReport
« Responder #39 Online: Outubro 14, 2015, 03:15:40 pm »
Vanda.

Crie um campo {subconsulta} no formato livre.

No evento onrecord vc cria um sc_select, monta uma tabela html com o resultado, guarda numa variável, e no final {Subconsulta}=$_var_html;


Importe esse exemplo, ele não vai funcionar mas poderá olhar o código fonte:

http://scriptcaseajax.com.br/ftp/sc_201510141021_export_RATWEB_IW.zip


exemplo gerado:
http://scriptcaseajax.com.br/ftp/sc_pdf_20131212172226_105_ratweb_print.pdf
Haroldo, amanhã vou tentar fazer como explica aqui. Hoje já não vou ter tempo. Depois digo se deu para atingir os objectivos. Obrigada

Vandacardoso

  • Avançado
  • ****
  • Mensagens: 272
Re:Relatórios com IReport
« Responder #40 Online: Outubro 14, 2015, 05:15:36 pm »
Vanda.

Crie um campo {subconsulta} no formato livre.

No evento onrecord vc cria um sc_select, monta uma tabela html com o resultado, guarda numa variável, e no final {Subconsulta}=$_var_html;


Importe esse exemplo, ele não vai funcionar mas poderá olhar o código fonte:

http://scriptcaseajax.com.br/ftp/sc_201510141021_export_RATWEB_IW.zip


exemplo gerado:
http://scriptcaseajax.com.br/ftp/sc_pdf_20131212172226_105_ratweb_print.pdf

Afinal estive a tentar fazer. Vamos lá ver Haroldo, tentei orientação com o seu exemplo (vi todo o código fonte do html da sua tabela). E o resultado que aparece no pdf na tabela de baixo é o que eu queria. A sua mostra 2 registos diferentes porque é isso que tem a tabela. É isso que pretendo.
Mas é assim, agradeço muito a ajuda, mas ainda sei muito pouco dessas coisas de criar variáveis. Sei ir ao onRecord e escrever sc_select e depois pôr os campos, até aí tudo bem, mas e depois? Não sei como fazer!!!!
Criei um método e comecei (numa tentativa de criar a variável) por escrever $agregado, depois colei o html da minha tabela, gravei. Fui ao Html da Consulta principal e onde tinha escrito {agregado} (que é a subconsulta) escrevi {agregado}=$agregado. Nada, deu erro. Só podia rsrsr.
Sinceramente não sei o que estou a fazer mal. Tenho o html criado, fiz o sc_select no onRecord mas o resto tentei e não consegui.
;-(
« Última modificação: Outubro 14, 2015, 05:18:41 pm por Vandacardoso »

Vandacardoso

  • Avançado
  • ****
  • Mensagens: 272
Re:Relatórios com IReport
« Responder #41 Online: Outubro 14, 2015, 05:44:48 pm »
Uma imagem de como aparece o meu relatório e na parte de baixo a subconsulta que não devia aparecer dessa forma.

saulobborges

  • Expert
  • *****
  • Mensagens: 1392
    • SGi Sistemas
    • Email
Re:Relatórios com IReport
« Responder #42 Online: Outubro 14, 2015, 07:37:38 pm »
Vanda se a subconsulta é uma grid de registros relacionados porque vocês esta fazendo a subconsulta com formato livre também? Faça como uma grid normal.

Allan Medeiros

  • Expert
  • *****
  • Mensagens: 504
    • Email
Re:Relatórios com IReport
« Responder #43 Online: Outubro 15, 2015, 09:27:55 am »
Cada subconsulta é como se fosse um campo. Você pode incluí-la no formato livre.
Manda uma imagem do que vc tá tentando fazer pra gente entender melhor.
[]s
Allan Medeiros
Analista de Informática
__________________________________________
Companhia de Processamento de Dados da Paraíba
medeiros@codata.pb.gov.br

Haroldo

  • Expert
  • *****
  • Mensagens: 6293
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Relatórios com IReport
« Responder #44 Online: Outubro 15, 2015, 10:00:08 am »
Vanda,


Olhou o exemplo que te passei?

AO montar o campo, você tem que montar o  cabeçalho e rodapé da tabela html fora do loop de leitura dos registros.
« Última modificação: Outubro 15, 2015, 10:29:24 am por Haroldo »