Как экспортировать отчет при использовании ActiveReports

Я использую Active Reports в своей программе VB для создания отчета на основе моих данных. Прямо сейчас отчет открывается нормально, и он позволяет пользователю печатать, копировать, находить и т. д. Я не уверен, как добавить функциональность, позволяющую пользователю выбрать экспорт диаграммы после запуска программы.

Я просматривал множество руководств, но всегда есть что-то, что делает его невозможным для работы в моей программе. Например, этот форум дает точный код того, что я хочу, поскольку они добавляют кнопку экспорта на панель инструментов, а затем добавляет функциональность к кнопке. К сожалению, я не могу получить доступ к панели инструментов. Они получают к нему доступ с помощью Me.Toolbar, и я не могу получить к нему доступ таким образом.

Другой форум здесь не добавляет экспорт на панель инструментов, а вместо этого вставляет его непосредственно в код, но я не уверен, что импортировать, чтобы позволить мне сделать это таким образом, поскольку мой проект не распознает ActiveReportsPDFExport.ARExportPDF.

ОБНОВЛЕНИЕ:

Нашел способ экспорта в PDF, добавив в ActiveReport в формате дизайна DataDynamics.ActiveReports.Export.Pdf.PdfExport и затем вызвав из моего кода PdfExport1.Export(Me.Document, "D:\Kyra\HELP.pdf")

Проблема:

  1. Это вызывается в конце моей функции, которая открывает активный отчет. Я хочу, чтобы пользователь мог выбрать экспорт отчета, а затем ему была предоставлена ​​возможность выбрать формат и место, где он хочет сохранить отчет.

person Kyra    schedule 10.06.2010    source источник


Ответы (3)


Ниже приведен код для добавления кнопки экспорта PDF на панель инструментов ActiveReports с использованием VB.NET и 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

Этот код работает внутри формы с ActiveReports Viewer в форме с именем «Viewer1».

Надеюсь это поможет,

Scott Willeke
GrapeCity
person Scott Willeke    schedule 27.07.2010

Просто следуйте инструкциям здесь. В частности, они добавили кнопку «cmdExport», которая позволяет пользователю начать экспорт.

person Hans Olsson    schedule 11.06.2010
comment
Я добавил кнопку, но не могу установить заголовок или событие onClick. Единственное событие, которое он может сделать, это 'Disposed' - person Kyra; 15.06.2010
comment
Я также пробовал datadynamics.com/Help/AR2Std/, но не могу найдите (в наборе инструментов или добавьте в набор инструментов) элемент ActiveX Viewer Control. Я нашел код, который гипотетически может экспортировать (Me.HtmlExport1.Export(rpt.Document, Application.StartupPath + \\HTMLExpt.html)) ), но я хочу, чтобы это был выбор пользователей, а не автоматически. Кроме того, я нашел freevbcode.com/ShowCode.Asp?ID=1617, но я не могу получить доступ к панели инструментов. Когда я пойду Я. панель инструментов не появляется. - person Kyra; 15.06.2010
comment
@Kyra: Не уверен, что понимаю, но когда у вас открыта форма в дизайнере, просто попробуйте дважды щелкнуть кнопку, и она автоматически добавит обработчик кликов. - person Hans Olsson; 15.06.2010
comment
Боюсь, я не так много знаю об ActiveReports, я делал очень простые вещи некоторое время назад, поэтому я не уверен, почему у вас возникают эти проблемы. - person Hans Olsson; 15.06.2010

Этот код работает для меня, просто передайте ему объект 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;
    }
person Ajay Patel    schedule 08.05.2015