Jump to content
samesdavis

[Resolvido] Crystal Reports – Relatórios Embebidos

Recommended Posts

samesdavis

Como faço para ter esse mesmo efeito de inserir os arquivos de relatório dentro do EXE ?

No Report Viewer uso esse método:

http://www.jorgepaulino.com/2009/06/vbnet-microsoft-reports-relatorios.html

Mas no Crystal eu não sei como usar.

Alguém pode ajudar?

Eu carrego os arquivos de relatório assim:

Imports CrystalDecisions.CrystalReports.Engine

Imports CrystalDecisions.Shared

Dim Report As New Frm_Report

Dim cSQL As String = Nothing

Dim dsPrint As New DataSet

Dim crReportDocument As New ReportDocument

With Report

If Me.cboNomeAutor.Text = Nothing Then

cSQL = "SELECT * FROM Qry_RptJur_NomeAutor"

Else

cSQL = "SELECT * FROM Qry_RptJur_NomeAutor WHERE ID_SOC = " & Me.cboNomeAutor.SelectedValue

End If

dsPrint = Banco.RetornarDataSet(cSQL)

Try

Dim strReportPath As String = Application.StartupPath & "\JurNomeAutor.rpt"

With crReportDocument

.Load(strReportPath)

.SummaryInfo.ReportAuthor = "EMPRESA"

.SummaryInfo.ReportTitle = "Nome do autor"

.SetDataSource(dsPrint.Tables(0))

End With

Dim ofrmPrintPreview As New Frm_Report

With ofrmPrintPreview

.crPrintPreview.ReportSource = crReportDocument

.Show()

End With

Catch ex As Exception

MsgBox("Ocorreu o seguinte erro: " & Chr(10) & ex.Message, MsgBoxStyle.Critical)

Exit Sub

End Try

End With

Share this post


Link to post
Share on other sites
Nelson Sousa

Amigão,

Com relatórios "Embedded REsources" você os declara assim:

    Dim cr_Relatorio As New ReportDocument
    cr_Relatorio = New Nome_Seu_Relatorio


Um Abraço,

Nelson Sousa

Share this post


Link to post
Share on other sites
samesdavis

Ficou incompleto

O Nome_seu_relatorio deve ser colcocado entre " " ?

e depois desses comandos? o que coloco dentro do load ?

digamos que o nome do meu relatório é: DespesasCli.rpt

então devo colocoar assim ?

crReportDocument = New DespesasCli

Mas no load vai apresentar erro que o conteúdo não é do tipo String:

crReportdocument.Load(crReportDocument)

Share this post


Link to post
Share on other sites
Nelson Sousa

Olha só,

O Relatório vai ser tratado como uma classe do seu projeto. Não precisa aspas, não terá mais LOAD. O código completo ficaria mais ou menos assim:

	 Dim cr_Relatorio As New ReportDocument
 '1 passo: carregar o relatório
	 cr_Relatorio = New Nome_Seu_Relatorio
	 cr_Relatorio.SummaryInfo.ReportAuthor = Application.ProductName & " - " & Application.ProductVersion
	 cr_Relatorio.SummaryInfo.ReportTitle = "Escreva aqui o título do seu relatório"
	 'crReportdocument.SummaryInfo.ReportComments = "Escreva aqui algum comentário para seu relatório"

	 'se quiser configurar para impressão em Landscape
	 'crReportdocument.PrintOptions.PaperOrientation = PaperOrientation.Landscape
	 '2 passo: passar os dados para o relatório (datatable)
	 'carregando os dados
	 ds = Busca.RetornarDataSet(strSql)
	 cr_Relatorio.SetDataSource(ds.Tables(0))
	 '
	 'visualizando o relatório
	 '
	 'criar uma instância do form printpreview
	 Dim ofrmPrintPreview As New Nome_Do_Seu_Frm_Report
	 'definindo o ReportSource do printpreview
	 ' ofrmPrintPreview.crPrintPreview.DisplayGroupTree = False
	 ofrmPrintPreview.crPrintPreview.ReportSource = cr_Relatorio
	 'exibir o form
	 ofrmPrintPreview.Show()

Edited by Nelson Sousa

Um Abraço,

Nelson Sousa

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.