Ireports + sql server + nome de tabela usada na query mudando por parametro
7 respostas
thiagofacanha
Opa pessoal…Alguem sabe como faço para que o nome da tabela usada na query do IReports possa ser mudada por parametro?
meu codigo é o seguinte
Select*from(SELECTtb.usr,tb.dstname,COUNT(tb.dstname)count,ROW_NUMBER()OVER(ORDERBYCOUNT(tb.dstname)DESC)AS'RowNumber'FROM[rawsyslogdb_20081113].[dbo].[sw_0006B1308FF8]tbWHEREtb.[USR]=$P{P_USU}ANDtb.dstnamenotlike'10.0%'--Exclui os servidoresANDtb.dstnamenotlike'%mail%'--Exclui emailsANDtb.dstnamenotIN('74.52.208.234','69.64.46.2','74.52.150.42')--DesconhecidoANDtb.msgisnull--Apenas sites acessados.. sem conexoes de informação.GROUPBYtb.usr,tb.dstname)tabwheretab.RowNumber<11
Tem como colocar um parametro no nome da tabela? pois a aplicacao cria uma tabela para cada dia…
Já possuo o select para pegar a data no formato do nome da tabela.
Opa pessoal…Alguem sabe como faço para que o nome da tabela usada na query do IReports possa ser mudada por parametro?
meu codigo é o seguinte
Select*from(SELECTtb.usr,tb.dstname,COUNT(tb.dstname)count,ROW_NUMBER()OVER(ORDERBYCOUNT(tb.dstname)DESC)AS'RowNumber'FROM[rawsyslogdb_20081113].[dbo].[sw_0006B1308FF8]tbWHEREtb.[USR]=$P{P_USU}ANDtb.dstnamenotlike'10.0%'--Exclui os servidoresANDtb.dstnamenotlike'%mail%'--Exclui emailsANDtb.dstnamenotIN('74.52.208.234','69.64.46.2','74.52.150.42')--DesconhecidoANDtb.msgisnull--Apenas sites acessados.. sem conexoes de informação.GROUPBYtb.usr,tb.dstname)tabwheretab.RowNumber<11
Tem como colocar um parametro no nome da tabela? pois a aplicacao cria uma tabela para cada dia…
Já possuo o select para pegar a data no formato do nome da tabela.
select'20'+CONVERT(VARCHAR(16),GETDATE(),12)dat
Caso alguem tenha uma luz avisa ok?
pelo que eu entendi… vc pode fazzer isso
Select*from(SELECTtb.usr,tb.dstname,COUNT(tb.dstname)count,ROW_NUMBER()OVER(ORDERBYCOUNT(tb.dstname)DESC)AS'RowNumber'FROM$P{tabela}tbWHEREtb.[USR]=$P{P_USU}ANDtb.dstnamenotlike'10.0%'--Exclui os servidoresANDtb.dstnamenotlike'%mail%'--Exclui emailsANDtb.dstnamenotIN('74.52.208.234','69.64.46.2','74.52.150.42')--DesconhecidoANDtb.msgisnull--Apenas sites acessados.. sem conexoes de informação.GROUPBYtb.usr,tb.dstname)tabwheretab.RowNumber<11
crie o parametro $P{tabela} em view | parameters e aliemnte-o na sua aplicação através de um map …
“Query parameter not found: P_TAB"
Sendo que eu criei o parametro… e quando estou na query ele fica dizendo"Unrecognized SQL escape ‘p’ at line position 55”
Esses erros aparecem quando tento simular no ireports mesmo…
CarlosEduardoDantas
brother… nesse seu caso acho que já é mais interessante fazer a consulta na aplicação e mandar para o relatório apenas os dados… assim:
Stringurl="jdbc:mysql://localhost/banco";Stringuser="root";Stringsenha="root";Class.forName("com.mysql.jdbc.Driver");Connectioncon=DriverManager.getConnection(url,user,senha);ResultSetrs=stm.executeQuery("select * from [rawsyslogdb_20081113].[dbo].[sw_0006B1308FF8]");/* Implementação da Interface JRDataSource para DataSource ResultSet */JRResultSetDataSourcejrRS=newJRResultSetDataSource(rs);/* Executa o Relatório */JasperPrintimpressao=JasperFillManager.fillReport(relatorio,null,jrRS);
entao o relatorio nao terá a consulta… apenas receberá a resposta pela classe JRResultSetDataSource
thiagofacanha
O problema é que estou usando apenas o Ireports e o jasperServer.
Só se eu fizesse toda a consulta no jasperserver e passasse tudo que preciso por parametro pro ireports… :idea:
Mas nem sei se vai dar certo. Posso acabar tendo o mesmo problema lá… mas vou tentar aki
CarlosEduardoDantas
thiagofacanha:
O problema é que estou usando apenas o Ireports e o jasperServer.
Só se eu fizesse toda a consulta no jasperserver e passasse tudo que preciso por parametro pro ireports… :idea:
Mas nem sei se vai dar certo. Posso acabar tendo o mesmo problema lá… mas vou tentar aki
me perdoe pela ignorancia… mas do que se trata o jasperServer? É alguma ferramenta de carga de dados da jaspersoft?
estou perguntando pq de qq forma vc precisa de alguma coisa pra rodar o seu .jasper… e até aonde eu conheço, vc vai precisar do jasperReports, logo concluo que o codigo que te mostrei no post anterior pode ser perfeitamente portável para a sua aplicacao.
thiagofacanha
O JasperServer é um servidor de relatórios da mesma empresa do ireports.
Eu mando para ele os jrxml e ele gera os relatorios envia por email em data programadas ou gera pelo usuario mediante entrada com usuario e senha…
Por isso que acho q o código não pode me ajudar. Pq não terei nenhuma pagina jsp entre meu jrxml e a criação do pdf.
estou pesquisando sobre Tabelas Variáveis do sql server para ver se acho uma luz… mas acho q tbm não vai dar…
:´(
Acha que mesmo com o jasper server dá para fazer algo?
Vlw
CarlosEduardoDantas
thiagofacanha:
O JasperServer é um servidor de relatórios da mesma empresa do ireports.
Eu mando para ele os jrxml e ele gera os relatorios envia por email em data programadas ou gera pelo usuario mediante entrada com usuario e senha…
Por isso que acho q o código não pode me ajudar. Pq não terei nenhuma pagina jsp entre meu jrxml e a criação do pdf.
estou pesquisando sobre Tabelas Variáveis do sql server para ver se acho uma luz… mas acho q tbm não vai dar…
:´(
Acha que mesmo com o jasper server dá para fazer algo?
Vlw
humm… interessante… eu sabia que a jasperSoft dispoem de vários produtos… mas só conheço o jasperReports e o iReport que são free claro… o jasperServer é novo pra mim… obrigado
bem… neste caso… a solucao de momento que eu estou pensando… é gambiarra… mas depois pensamos em outra… vc pode editar a query do seu jrxml… ou seja… cada vez que precisar de uma tabela nova, vc modifica o seu .jrxml no fonte… como ele nem é compilado ainda, é facil de fazer… basta colocar o conteudo do .jrxml em uma string e dar um replace dentro do conteudo de