JavaFree.org | RubyOnBr.org

Relatórios no RGhost

Acompanhar Relatórios no RGhost 12 posts, 4 participantes

Avatar Paulo Pessoa 15 posts

Caros,
sou novo na linguagem e venho pesquisando o RGhost alguns dias, mas parece muito difícil achar algum coisa q exemplifique ou mostre algo. estou pra ficar louco com isso…
Tenho muito relatórios pra implementar usando jruby on rails, simples e complexos (e até gráficos!)
Algum santo aqui pode me ajudar mostrando algum exemplo de código (se possível completo) pra renderizar um relatório ? e o enviando para o browser

tudo que ví, ouví, lí, escutei.. é q o RGhost é muito bom! Mas to achando o troço muito complicado e trabalhoso… e as dúvidas são muuuitas, por exemplo:
- como usar o método text alinhando na página
- como usar o método show concatenando com variáveis públicas (como no text e text_in), p.ex: text(“Página current_page de count_pages”) !?
- tags, pra q serve? é obrigatório? como setar a fonte e tamanho do meu texto quando imprimo ele?
- Documentação da API do RGhost existe?
- ao instaciar um Grid::Rails.new, e setar o style ‘grid.style(:border_lines)’ não funciona direito, mas ao instanciar através do rails_grid funciona! bug?!
- acho estranho usar os metodos next_row, goto_row, moveto… o mais prático seria dizer nos métodos em qual ‘row’ ou ‘x,y’ gostaria de imprimir meu texto, gráfico, etc.

Enfim, minha pequena humilde opinião diz que o RGhost pode ser uma ferramenta muito potente para relatórios, mas falta demais a praticidade que o Rails já oferece.

Alguém dá uma ajuda!!??

 
Avatar Mereghost 1476 posts

Paulo:

RGhost não faz nada “automágico” para você sem ser gerar o documentos.

  1. Tu pode passar o parâmetro :align => :page_center por exemplo
  2. Que eu me lembre, não havia problema nenhum em usar as variáveis do PS no método show, mas minha memória não está das melhores hoje.
  3. Tags são o mais próximo de estilos pré definidos de fontes
  4. Existe sim.
  5. Instanciar ou atribuir?
  6. Você pode. Só precisa saber onde (na medida escolhida) tu quer escrever. Vide text_in.
 
Logo_eiq Kivanio 239 posts

Paulo,

você pode ver um exemplo no http://github.com/kivanio/acts_as_payment/tree/master
mais precisamente em: http://github.com/kivanio/acts_as_payment/blob/549dd3b7174fe914bfa5c8ebb6a6fe491112ac73/lib/boleto/bancobrasil.rb

uso o RGhost para o pdf.

 
Avatar Shairon Toledo 1428 posts

Veja aqui 40 páginas de wiki

@mere

my_dictionary << ‘automágico’ #vou usar sem a sua permissão :)

 
Avatar Paulo Pessoa 15 posts

valeu as dicas e exemplos.

mas o codigo abaixo ainda nao consigo alinhar, e nem acesso variaveis PS: (so acesso vars PS com ‘text_in’! e so alinho com :page_right com ‘show’)

@shairon
essa wiki eu ja tinha visto, mas nao tem nada mais alem do RDoc e do PDF :P (sem querer ser reclamao.. hehe)

valeu!

 
Avatar Mereghost 1476 posts

Então Paulo, quando às variáveis do PS o Shairon pode falar melhor.

Agora quanto ao Text, TextIn e Show acho que tu tá querendo fazer a coisa errada com a classe errada.

Show → Exibe o texto na linha atual no alinhamento especificado com a cor especificada.
Text → Exibe o texto na linha atual efetuando o “wrap” nos espaços e usando as tags especificadas no texto.
TextIn → exibe o texto na posição escolhida com o tag ou cor especificada.

Seria bacana ter todas as funcionalidades numa coisa só? Certamente. O problema é que eu sei tanto PS quanto eu sei búlgaro, ou seja, nada. É possível que o PS gerado por cada uma das classes seja BEM diferente e por questões de performance seja melhor mantê-los separados.

 
Avatar Shairon Toledo 1428 posts

Em postscript não temos um alinhamento, tive que fazer na mão. Como o Mere falou sempre tem um motivo: quando se cria objectos temos que definir a responsabilidade de cada um, senão usaríamos um objeto grande pra fazer coisa pequena o que interferiria na performance da API. Outra coisa se as classes TextIn, TextArea, Text e Show tivessem o mesmo comportamento seria necessário apenas uma, concorda? De forma semelhante temos interpolação de Strings em ruby usando " " e ’ ’ não faz.

essa wiki eu ja tinha visto, mas nao tem nada mais alem do RDoc e do PDF :P (sem querer ser reclamao.. hehe)

O projeto é aberto, e aberto de tal modo que todos possam colaborar. Estou esperando a sua colaboração com os exemplos que vc já tem.

 
Avatar Paulo Pessoa 15 posts

Valeu pela ajuda dos colegas!

Vou postar aki o meu exemplo, e tb mais algumas dúvidas q surgiram.
Eu criei um modulo RGhostHelpers, com meu metodo generate, onde será montado o cabecalho do relatorio, passando um Grid::Rails como parametro, e gerando o pdf:

E no meu controller, crio e monto meu Grid que irá na pagina. Todos meus relatorios terao o formato de cabecalho e um grid listando os registros:

No meu application.rb, criei uma funcao para renderizar meu pdf na tela:

E este é o meu arquivo template a ser renderizado com o pdf ‘embeded’:

So pra botar mais ‘lenha’ na convera :), agora tenho umas ‘pequenas’ duvidas.. meu relatorio ta funcionando certinho, mas to pensando em merolhá-lo… e se caso for possível vcs me dêem uma solucao… as dúvidas são as seguintes:
1. como fazer quebra de linha automatica nas colunas, ou mesmo nao deixar passar o conteudo para outra coluna qdo ultrapassa na largura
2. como fazer um rodapé
3. como criar uma linha somatoria no final dos registros (acho q ja vi algo semelhante q nao me lembro)
4. como fazer pra agrupar registros do grid do meu relatorio com rghost (…esse eh o mais importante q preciso)

valeu!

 
Avatar Shairon Toledo 1428 posts

1. Ainda não é possível, previsto para versão 0.8.5(julho 2009)

2. Da mesma forma que vc está fazendo o cabeçalho, pra reduzir código use templates EPS e foca só no posicionamento dos dados, daí vc pode trocar seu template/formulário sem reprogramar seu código.

3. é uma linha a mais no array de dados utilizados no método Grid#data, ou criar outra grid como o resultado.

4. não entendi, agrupar pelo que?

 
Avatar Mereghost 1476 posts

Olha, agrupar não é bem uma coisa que tenha haver com o RGhost. =p

 
Avatar Paulo Pessoa 15 posts

Sobre o agrupamento de linhas, falei tipo por ex. listar um pedido e seus items abaixo, ordenado por pedido. Tudo bem, retifico então, não tem muito a ver com RGhost.. mas pensei q tivesse algum suporte, sei la, ou algo parecido.. tipo como faz-se no IReport com as bandas, através de uma coluna na tabela pai eu iria agrupar os registros filhos. Mas td bem, vi q posso fazer no código.
…é o costume ainda do IReport/Jasper.

Ah, e outra, pra gerar um EPS, vou ter q usar o Corel msm?! nao tem outra ferramenta (se possivel free p/ windus) ??

 
Avatar Shairon Toledo 1428 posts

Openoffice, gimp, illustrator, inkscape, etc… exporte o eps sem thumbnails