CRYSTAL REPORT/VB.NET
Galera, comecei agora a pesquisar sobre Crystal Report, aproveitando a empolgação, gostaria de receber ajuda de amigos como montar um modelo de relatório no Crystal Report? como é colocado as informações da tabela (SQL Server) no relatório? é possÃvel colocar todas as informações de uma DataGridView em um relatório do CrystalReport? Como?
E já aproveitando, é possÃvel salvar o relatório com uma copia, (Um PDF (Bloqueado para edições) e um em XML)?
Na verdade, você trabalha com o conceito de Fonte de Dados. Pode ser um DataTable, um DataSet... Então, você pode passar o que você quiser pro seu relatório. Até os dados do gridview (através da propriedade DataSource).
Sobre salvar o relatório com uma cópia, eu não entendi muito bem. Você quer passar o relatório pro formato PDF? Mas como assim passar o relatório para xml?
Abraços!
Sobre salvar o relatório com uma cópia, eu não entendi muito bem. Você quer passar o relatório pro formato PDF? Mas como assim passar o relatório para xml?
Abraços!
De onde tirar os dados ja foi dito, salvar o relatorio, se vc incluir o crystal report view no form vai ver q tem botao de exportacao q suporta pdf, nao recordo de xml
No momento em que a função salvar for executada, tem que gerar um arquivo em PDF e um arquivo XML.Em relação ao Crystal Report, não conheço nenhum algorÃtimo para gerar o relatório.
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Dim rpt As New RptCashbill
CType(rpt,ReportDocument).ExportToDisk(ExportFormatType.PortableDocFormat,[Ô]C:/Report.pdf[Ô])
assim é uma forma de exportar sem precisar mostrar na tela
Citação::
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Dim rpt As New RptCashbill
CType(rpt,ReportDocument).ExportToDisk(ExportFormatType.PortableDocFormat,[Ô]C:/Report.pdf[Ô])
assim é uma forma de exportar sem precisar mostrar na tela
NICKOSOFT Você me deu uma idéia de como salvar os dois arquivos em uma unica caixa de dialogo para salvar. Agora só falta criar uma tela para apresentar a tabela.
Ex: Select Data, ValorTotalDia, Valor From t_TotalDia Where Data like [ô] (data) [ô]
No crystal report tem que ter o resultado completo dessa pesquisa!
Todo o resultado dessa pesquisa, Pode ser um pra varios resultados, mas tem que ser colocado no relatorio gerado pelo Crystal Report, nem que tenha que gerar 2, 3, 5, N paginas.
então seu problema é desde o começo, vc quer saber como criar o relatório? se for a parte de código pode ser assim...
pode parecer confuso, mas esta em camada, de qq forma da pra entender q vc precisa de um dataset ali no inicio....
gosto de fazer meus relatórios baseados em dataset dentro do projeto, então tenho um dataset dentro do projeto com os diversos datatable, sendo um pra cada relatório, ou vários no caso de sub reports....alimento esses datatable com o q quero q apareca no relatório, e assim vai....no caso nem tela de visualização do relatório eu fiz, so pra mostrar até o ponto q ele salva e acabou....
Private Sub SalvarListaPDFToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SalvarListaPDFToolStripMenuItem.Click
Dim bllLivro As New Livro
bllLivro.Caminho = Application.StartupPath
Dim ds As DataSet
ds = bllLivro.Busca([Ô]select livros.titulo as Titulo,editoras.nome as Editora,autores.nome as Autor from ((livros inner join editoras on livros.editora=editoras.id)inner join autores on livros.autor=autores.id) order by livros.titulo asc[Ô])
If ds.Tables(0).Rows.Count <= 0 Then
MessageBox.Show([Ô]Sem registros[Ô])
Else
Dim Tabela As New dsLivraria.dtListaLivrosDataTable
Dim LinhaTB As dsLivraria.dtListaLivrosRow
For index = 0 To ds.Tables(0).Rows.Count - 1
LinhaTB = Tabela.NewRow()
LinhaTB([Ô]titulo[Ô]) = ds.Tables(0).Rows(index).Item([Ô]titulo[Ô]).ToString
LinhaTB([Ô]autor[Ô]) = ds.Tables(0).Rows(index).Item([Ô]autor[Ô]).ToString
LinhaTB([Ô]editora[Ô]) = ds.Tables(0).Rows(index).Item([Ô]editora[Ô]).ToString
Tabela.AdddtListaLivrosRow(LinhaTB)
Next
Dim DT As DataTable = Tabela
Dim oRP As ReportDocument
oRP = New crpListaLivros
oRP.SetDataSource(DT)
Dim saveFileDialog1 As New SaveFileDialog()
saveFileDialog1.Filter = [Ô]Arquivo PDF (*.PDF)|*.PDF[Ô]
saveFileDialog1.FilterIndex = 2
saveFileDialog1.RestoreDirectory = True
If saveFileDialog1.ShowDialog() = DialogResult.OK Then
CType(oRP, ReportDocument).ExportToDisk(ExportFormatType.PortableDocFormat, saveFileDialog1.FileName)
End If
End If
End Sub
pode parecer confuso, mas esta em camada, de qq forma da pra entender q vc precisa de um dataset ali no inicio....
gosto de fazer meus relatórios baseados em dataset dentro do projeto, então tenho um dataset dentro do projeto com os diversos datatable, sendo um pra cada relatório, ou vários no caso de sub reports....alimento esses datatable com o q quero q apareca no relatório, e assim vai....no caso nem tela de visualização do relatório eu fiz, so pra mostrar até o ponto q ele salva e acabou....
Não entendi muito bem o seu problema, porém vamos lá..
Quando as informações partem de um grid, eu faço igual o NICKOSOFT e igual o pessoal do VBMania ensinou..
Não utilizo DataSet e DataSet Tipado devido aos meus relatórios terem alterações constantes, então por isso utilizo comandos SQL para elaborar os relatórios
1. Aqui eu seleciono MyODBC (utilizo MySQL Server) daà ao invés de puxar a tabela do banco eu clico em Add Command
2. Ai você coloca o comando e pode adicionar parâmetros ex:
Para gerar apenas .PDF tem uma EXPORT OPTIONS dentro das propriedades do Crystal Reports Viewer que você só
libera o export para .PDF então quando voce clica em Export ele só aparece .PDF, não aparece WORD,PDF,CRYSTAL REPORTS,EXCEL etc...
obs: tinha varios problemas com o Crystal agora usando Query[ô]s SQL é só alegria, sem contar que tenho alguns relatórios com DataSets ainda e via Query
o relatório imprimi 20 página em menos de 2 segundos, com dataset demora bem mais pra dar um Load em relatórios grandes..
Porém vai da necessidade, existem relatórios que eu faço igual o NICKOSOFT, que são só informação de grid ai eu rodo todos os registros do grid e tem relatórios que faço ainda por DataSet, aà vai de você ver a necessidade, por ex: eu que tenho alguns relatórios gigantes e várias mudanças compensa mais por query do que por DataSet..
Quando as informações partem de um grid, eu faço igual o NICKOSOFT e igual o pessoal do VBMania ensinou..
Não utilizo DataSet e DataSet Tipado devido aos meus relatórios terem alterações constantes, então por isso utilizo comandos SQL para elaborar os relatórios
1. Aqui eu seleciono MyODBC (utilizo MySQL Server) daà ao invés de puxar a tabela do banco eu clico em Add Command
2. Ai você coloca o comando e pode adicionar parâmetros ex:
Para gerar apenas .PDF tem uma EXPORT OPTIONS dentro das propriedades do Crystal Reports Viewer que você só
libera o export para .PDF então quando voce clica em Export ele só aparece .PDF, não aparece WORD,PDF,CRYSTAL REPORTS,EXCEL etc...
obs: tinha varios problemas com o Crystal agora usando Query[ô]s SQL é só alegria, sem contar que tenho alguns relatórios com DataSets ainda e via Query
o relatório imprimi 20 página em menos de 2 segundos, com dataset demora bem mais pra dar um Load em relatórios grandes..
Porém vai da necessidade, existem relatórios que eu faço igual o NICKOSOFT, que são só informação de grid ai eu rodo todos os registros do grid e tem relatórios que faço ainda por DataSet, aà vai de você ver a necessidade, por ex: eu que tenho alguns relatórios gigantes e várias mudanças compensa mais por query do que por DataSet..
Hoje a noite vou desenvolver 2 janelas de teste e executar as duas maneiras, achei interessante as duas formas.
Tópico encerrado , respostas não são mais permitidas