Como você exporta um relatório enquanto usa o ActiveReports
-
26-09-2019 - |
Pergunta
Estou usando relatórios ativos no meu programa VB para gerar um relatório com base nos meus dados. No momento, tenho o relatório de abertura e está permitindo que o usuário imprima, copie, encontre etc. Não tenho certeza de como adicionar a funcionalidade para permitir que o usuário opte por exportar o gráfico assim que o programa estiver em execução.
Eu tenho analisado muitos tutoriais, mas sempre há algo que torna incapaz de trabalhar no meu programa. Por exemplo isto O fórum fornece o código exato para o que eu quero, pois eles adicionam um botão de exportação à barra de ferramentas e, em seguida, adiciona a funcionalidade ao botão. Infelizmente, não consigo acessar a barra de ferramentas. Eles acessam com Me.Toolbar
E não consigo acessá -lo dessa maneira.
Outro fórum aqui Não adiciona a exportação à barra de ferramentas e, em vez disso, a insere diretamente no código, mas não tenho certeza do que importar para me permitir fazê -lo dessa maneira, pois meu projeto não reconhece ActiveReportsPDFExport.ARExportPDF
.
ATUALIZAR:
Encontrou uma maneira de exportar para PDF adicionando ao ActiveReport no formato de design a DataDynamics.ActiveReports.Export.Pdf.PdfExport
E então chamando do meu código PdfExport1.Export(Me.Document, "D:\Kyra\HELP.pdf")
Problema:
- Isso é chamado no final da minha função, que abre o relatório ativo. Quero que o usuário possa optar por exportar o relatório e ter a opção de escolher o formato e o local onde desejam salvar o relatório.
Solução
Abaixo está o código para adicionar um botão de exportação em PDF à barra de ferramentas do ActiveReports usando o VB.NET e o ActiveReports 6:
Const pdfExportToolID As Long = 42
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim myExportTool As DataDynamics.ActiveReports.Toolbar.Button
myExportTool = New DataDynamics.ActiveReports.Toolbar.Button()
myExportTool.ButtonStyle = DataDynamics.ActiveReports.Toolbar.ButtonStyle.Text
myExportTool.Caption = "Export to PDF"
myExportTool.Id = pdfExportToolID
Me.Viewer1.Toolbar.Tools.Add(myExportTool)
' load report:
Dim rpt As New NewActiveReport1()
Me.Viewer1.Document = rpt.Document
rpt.Run(False)
End Sub
Private Sub Viewer1_ToolClick(ByVal sender As System.Object, ByVal e As DataDynamics.ActiveReports.Toolbar.ToolClickEventArgs) Handles Viewer1.ToolClick
If (e.Tool.Id = pdfExportToolID) Then
Dim pdf As New DataDynamics.ActiveReports.Export.Pdf.PdfExport()
pdf.Export(Me.Viewer1.Document, "C:\users\scott\junk\myActiveReport.pdf")
End If
End Sub
Esse código funciona dentro de um formulário com um visualizador do ActiveReports no formulário HTE chamado "Viewer1".
Espero que isto ajude,
Scott Willeke
GrapeCity
Outras dicas
Basta seguir as instruções aqui. Especificamente, é o botão que eles adicionam 'cmdexport' que permite que o usuário inicie a exportação.
Esse código está funcionando para mim, basta passar no objeto WebViewer.
ABC.Run();
ARWebViewer.Report = ABC;
ExportToExcel(ARWebViewer); // call ExportToExcel method,
public void ExportToExcel(DataDynamics.ActiveReports.Web.WebViewer objWebviewer)
{
DataDynamics.ActiveReports.Export.Xls.XlsExport XLSexport = new DataDynamics.ActiveReports.Export.Xls.XlsExport();
System.IO.MemoryStream memStream = new System.IO.MemoryStream();
if (XLSexport == null)
XLSexport = new DataDynamics.ActiveReports.Export.Xls.XlsExport();
XLSexport.AutoRowHeight = true;
XLSexport.MinColumnWidth = (float)0.2;
XLSexport.RemoveVerticalSpace = true;
XLSexport.UseCellMerging = true;
XLSexport.Export(objWebviewer.Report.Document, memStream);
memStream.Position = 0;
Response.ContentType = "application/Xls";
Response.AddHeader("content-disposition", "attachment; filename=" + ajDoc + ".Xls");
Response.BinaryWrite(memStream.ToArray());
Response.End();
XLSexport = null;
}