CRYSTAL REPORT/VB.NET

NICKOSOFT 22/10/2015 08:35:54
#452878
sobre demora o único contra q tenho com o CR é na primeiro relatório a ser exibido, seja meia pagina ou 5mil paginas, ele demora muito, parece fazer uma pre carga de todos arquivos envolvidos no suporte ao CR, já os seguintes, podem ter as 5mil paginas, abrem rápido e muito rápido.....

montar dessa forma foi a melhor opção q consegui qnd precisei gerar lotes de boletos, em torno de 5mil boletos/mês, e como praticamente tudo no boleto muda, e exige o calculo, tanto do código de barra como da linha digitavel entre cálculos menores dentro desses, geração do arquivo de remessa ao banco, eu fiquei mais a vontade de ir um a um jogando nos datatable, pra depois de concluído enviar tudo ao CR, na época estava com medo pelo tamanho do relatório, qnts dias levaria pra abrir o CR, mas vi q independe do tamanho do relatório em si, o lance esta mais ligado a primeira exibição ou não...so gostaria de descobrir como fazer essa pre carga dos arquivos durante o uso do programa, pra agilizar na hora do relatório...no fim adotei como definitiva essa forma mesmo....mas tem varias formas de montar mesmo....
MOUSER 26/10/2015 15:44:49
#453105
Citação:

:
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...

  
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....


Neste caso precisarei criar uma classe também NICKOSOFT?
MOUSER 26/10/2015 15:48:20
#453106
Criar uma classe, dentro da classe desenvolver o dataset e depois chama-lo nesta Sub. Por exemplo, Eu vi que criou uma variável blLivro New Livro, o [Ô]Livro[Ô] é uma classe que você criou?
NICKOSOFT 26/10/2015 20:03:07
#453121
vc pode substituir a chamada por uma simples rotina q carregue o dataset com os dados do banco de dados...algo assim já atende...
  
Using connection As OleDbConnection = AbreConexao()
Using da As OleDbDataAdapter = New OleDbDataAdapter(sql, connection)
Dim ds As DataSet = Nothing
ds = New DataSet()
da.Fill(ds)
Return ds
End Using
End Using


da interface chamo essa função na camada de negócios, e dai chama uma função na camada de dados q retorna a dataset pra negócios e repassa a interface...
MOUSER 16/11/2015 16:42:24
#453997
Galera, terminei um soft, vou complementar agora com o sistema crystal report para gerar relatórios em geral, vou só esperar terminar de baixar o cristal report para importar no visual studio, e já vou começar a fazer os testes. (Internet de casa, 100 mb para baixar demora 10 horas, 1 gb 1 dia).
NICKOSOFT 17/11/2015 06:27:36
#454013
ainda bem q o arquivo não é tao grande......
mas vc pode baixar em algum lugar de internet mais rápida e levar pra casa no pen driver, e apenas fazer a instalação, o download não tem q ser obrigatoriamente feito no micro onde vai funcionar.....é um simples arquivo de instalação q implementa o suporte completo ao CR
se não to enganado, se vc não for exibir o relatório em tela, se optar por usar o código q gera automaticamente o PDF do arquivo, não precisa nem essa instalação, o VS já apresenta esse suporte nativo...
MOUSER 17/11/2015 08:54:05
#454019
PDF seria mais interessante para mim pela mobilidade, você teria alguma ideia para desenvolver?
NICKOSOFT 17/11/2015 10:07:02
#454027
é via código, tem postado em algum lugar aqui, vou procurar, mas de qq forma qnd faco a geração do pdf direto, primeiro vejo muito em tela pra fazer ajustes até chegar no ponto q quero......
NICKOSOFT 17/11/2015 10:20:18
#454029
fui ler mais pra cima é aqui no tópico mesmo q eu mostro o código de exportar pra pdf sem exibir o relatório em tela....
MOUSER 17/11/2015 17:31:03
#454045
Vou dar uma lida, a ideia do Crystal Report era criar uma janela e exibir o relatorio e a pessoa decide se imprime ou se salva, mas analisei melhor, por que não já salvar e depois a pessoa pode abrir e imprimir futuramente em PDF? (Obs: Me refiro aquele mesmo sistema que tive problemas ao pesquisar datas rsrsrs).
Página 2 de 3 [23 registro(s)]
Tópico encerrado , respostas não são mais permitidas