Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di Rickycast
    Registrato dal
    Apr 2007
    residenza
    CHIERI (TO)
    Messaggi
    242

    [VB.NET] Salvare un report .RDLC in PDF da programma

    Mi riferisco al titolo di un Post in inglese che suona così: "Save RDLC reports as PDF programmatically" e che dovrebbe risolvere esattamente il mio problema, ossia stamparmi in PDF alcuni Report.rdlc che sono faticosamente riuscito a creare dentro alla mia Solution. Non so se posso postare il Link, trattandosi di altro Forum, ma il Codice è questo:

    codice:
    We defined a control called rptViewer1 which can be visible or not depending of your needs.
    strFormat should contain "PDF" and strNomFicher the full path. 
    BTW the variable names and functions are in french, but that will work anyway :)
    
          Public Sub CreerFichierRapport(ByVal strNomFichier As String, ByVal strFormat As String)
            Dim bytes() As Byte
            Dim strDeviceInfo As String = ""
            Dim strMimeType As String = ""
            Dim strEncoding As String = ""
            Dim strExtension As String = ""
            Dim strStreams() As String
            Dim warnings() As Warning
            Dim oFileStream As FileStream
            _stream = New List(Of Stream)
            Try
                bytes = rptViewer1.LocalReport.Render(strFormat, strDeviceInfo, strMimeType, strEncoding, strExtension, strStreams, warnings)
    
                oFileStream = New FileStream(strNomFichier, FileMode.Create)
                oFileStream.Write(bytes, 0, bytes.Length)
                _stream.Add(oFileStream)
            Finally
                If Not IsNothing(oFileStream) Then
                    oFileStream.Close()
                    oFileStream.Dispose()
                End If
            End Try
        End Sub

    Non sono riuscito ad utilizzarlo per dalmeno due motivi.
    1 - la stringa di codice "_stream = New List(Of Stream)" è corretto che sia su una singola riga oppure è la continuazione della riga precedente?
    2 - cosa vuol dire: "Abbiamo definito un controllo chiamato rptViewer1 che può essere ....."?
    Ammesso che la stringa di codice al punto 1 si possa risolvere con qualche prova, non ho assolutamente capito come "definire un controllo chiamato rptViewer"

    C'è anche una seconda versione ma anche questa presenta lo stesso problema di definizione del controllo:

    codice:
                  
    Imports Microsoft.Reporting.WebForms
    Imports System.IO
    
    Public Class RenderToPDF
        Public Sub Save(ByVal viewer As ReportViewer, ByVal savePath As String)
            Dim Bytes() As Byte = viewer.LocalReport.Render("PDF", "", Nothing, Nothing, Nothing, Nothing, Nothing)
    
            Using Stream As New FileStream(savePath, FileMode.Create)
                Stream.Write(Bytes, 0, Bytes.Length)
            End Using
        End Sub
    End Class

    Qualcuno sa come si fa a definire questo benedetto controllo?

    So che non c'è molto in giro a proposito dei Report di Visual Studio e credo che questo piccolo codice potrebbe risolvere molti problemi. Mi auguro che qualcuno possa aiutarmi a farlo funzionare.
    Per parte mia sono disponibile a dare tutte le informazioni che sono riuscito a trovare per importare un Report di Access in un progetto VB .Net. E funziona benissimo. Se a qualcuno serve me lo chieda nella risposta.

  2. #2
    Utente di HTML.it L'avatar di Rickycast
    Registrato dal
    Apr 2007
    residenza
    CHIERI (TO)
    Messaggi
    242
    Risolto parzialmente
    Il controllo in questione è una Form, nella quale inserire un ReportViewer che faccia riferimento al Report che si vuole visualizzare.
    All'apertura della Form viene prodotto il File PDF.
    Peccato che funzioni solo in Progettazione. Con il File .exe nascono errori che impediscono la stampa.
    Apro una nuova discussione a questo proposito.
    Se comunque qualcuno vuole informazioni più dettagliate per quello che sono riuscito a fare, sono a disposizione.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2021 vBulletin Solutions, Inc. All rights reserved.