¿Cómo exportar un informe durante el uso de ActiveReports
-
26-09-2019 - |
Pregunta
Estoy usando Active Reports dentro de mi programa de VB para generar un informe basado en los datos de mi. Ahora mismo tengo la multa abertura de informe y está permitiendo al usuario imprimir, copiar, buscar, etc. No estoy seguro de cómo añadir la funcionalidad para permitir al usuario elegir para exportar la tabla una vez que el programa se está ejecutando.
He estado buscando en muchos tutoriales pero siempre hay algo que lo hace incapaz de trabajar en mi programa. Por ejemplo este foro da el código exacto para lo que quiero, ya que añadir una botón de exportar a la barra de herramientas y luego añade la funcionalidad para el botón. Desafortunadamente no soy capaz de acceder a la barra de herramientas. Acceden con Me.Toolbar
y soy incapaz de acceder a él de esta manera.
Otro foro aquí no agrega la exportación a la barra de herramientas y en su lugar se inserta directamente en el código, pero no estoy seguro de qué importar para permitir que lo haga de esta manera como mi proyecto no reconoce ActiveReportsPDFExport.ARExportPDF
.
ACTUALIZACIÓN:
Se han encontrado una manera de exportar a PDF mediante la adición a la ActiveReport en el formato de diseño un DataDynamics.ActiveReports.Export.Pdf.PdfExport
y luego llamar a mi código PdfExport1.Export(Me.Document, "D:\Kyra\HELP.pdf")
Problema:
- Esto se llama al final de mi función que abre el informe activo. Quiero que el usuario sea capaz de elegir exportar el informe y luego tener la opción de elegir el formato y la ubicación en la que desea guardar el informe.
Solución
A continuación se muestra el código para agregar un botón Exportar PDF a la barra de herramientas ActiveReports usando VB.NET y 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
Este código funciona dentro de una pantalla con un visor de ActiveReports en forma de HTE llamado "Viewer1".
Espero que esta ayuda,
Scott Willeke
GrapeCity
Otros consejos
Sólo tienes que seguir a lo largo de las instrucciones aquí . En concreto, es el botón que añaden 'cmdExport' que permite al usuario iniciar la exportación.
Este código de trabajo para mí, sólo tiene que pasar que Webviewer objeto.
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;
}