/
Default.aspx.vb
53 lines (48 loc) · 2.16 KB
/
Default.aspx.vb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Imports DevExpress.DashboardCommon
Imports DevExpress.DashboardWeb
Imports DevExpress.Pdf
Imports System
Imports System.Collections.Generic
Imports System.IO
Imports System.Linq
Namespace ASPxDashboard_ServerExport
Partial Public Class [Default]
Inherits System.Web.UI.Page
Private fileStorage As New DashboardFileStorage("App_Data/Dashboards")
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
ASPxDashboard1.AllowExportDashboard = False
ASPxDashboard1.SetDashboardStorage(fileStorage)
End Sub
Protected Sub ASPxButton1_Click(ByVal sender As Object, ByVal e As EventArgs)
If ASPxHiddenField1.Get("dashboardState") IsNot Nothing AndAlso ASPxHiddenField1.Get("filterItems") IsNot Nothing Then
Dim dashboardStateJson As String = ASPxHiddenField1.Get("dashboardState").ToString()
Dim parameters() As String = ASPxHiddenField1.Get("filterItems").ToString().Split("|"c)
Dim resultStream As New MemoryStream()
Using documentProcessor As New PdfDocumentProcessor()
documentProcessor.CreateEmptyDocument(resultStream)
For i As Integer = 0 To parameters.Length - 1
Dim dashboardState As New DashboardState()
dashboardState.LoadFromJson(dashboardStateJson)
Dim filterItemState = dashboardState.Items.Where(Function(item) item.ItemName = "comboBoxDashboardItem1").FirstOrDefault()
If filterItemState IsNot Nothing Then
filterItemState.MasterFilterValues.Clear()
filterItemState.MasterFilterValues.Add(New Object() { parameters(i) })
End If
Dim pdfOptions As New DashboardPdfExportOptions()
pdfOptions.ShowTitle = DevExpress.Utils.DefaultBoolean.False
Dim exporter As New ASPxDashboardExporter(ASPxDashboard1)
Using stream As New MemoryStream()
exporter.ExportToPdf("Dashboard1", stream, New System.Drawing.Size(1024, 768), dashboardState, pdfOptions)
documentProcessor.AppendDocument(stream)
End Using
Next i
End Using
resultStream.Seek(0, SeekOrigin.Begin)
Page.Response.Clear()
Page.Response.ContentType = "application/pdf"
Response.BinaryWrite(resultStream.ToArray())
Page.Response.End()
End If
End Sub
End Class
End Namespace