Domanda

Mentre mi rendo conto che ho potuto solo mostrare la forma off-screen e nasconderlo, insieme a molte altre forme di WinForms wizardry hackish, preferisco rimanere con il percorso zen e ottenere questo fatto a destra. Ho un rapporto locale SSRS (quindi senza server) che voglio dare all'utente l'opzione di visualizzazione o la stampa (in altre parole, non voglio per costringerli a vedere per la stampa). Purtroppo, il controllo ReportViewer lamenta il suo "stato" quando si tenta di stampare o come componente Sto creando in modo esplicito nel mio codice (all'interno di un blocco utilizzando (), ovviamente) o se cerco di istanziare la mia forma spettatore e basta stampare senza mai mostrarla.

C'è un modo per fare questo che mi sta bene, o devo solo mostrare che off-schermo e andare avanti con la mia vita?

È stato utile?

Soluzione

Ho un campione che fa questo ha postato sul mio blog qui: http://blogs.msdn.com/brianhartman/archive/2009/02/27/manually-printing-a-report.aspx

L'oggetto LocalReport può essere istanziata indipendentemente dal controllo ReportViewer e utilizzato direttamente nel codice di esempio assegnata a quella post. Oppure si può passare ReportViewer.LocalReport, anche se non prima di visualizzare il report nell'interfaccia utente.

Altri suggerimenti

Check this out e vedere se aiuta ... http://scruffylookingcatherder.com/archive/2007/12/07/printing-reporting-services-2005-reports.aspx

Una piccola spiegazione: E 'utilizzando il servizio web SSRS per il rendering del report a un'immagine EMF poi inviare l'immagine alla stampante

.
Private Sub btnReceipt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReceipt.Click


    My.Forms.FormA5.ReportViewer.LocalReport.DataSources.Clear()
    Dim cmd = New SqlClient.SqlCommand("Select * from V_Sale where InvoiceNo=" & Me.txtInvoice.Text, cn)
    Dim dr = cmd.ExecuteReader()
    Dim dt As New DataTable
    dt.Load(dr)
    dr.Close()
    Dim rpt As New ReportViewer
    rpt.LocalReport.DataSources.Clear()
    rpt.LocalReport.DataSources.Add(New ReportDataSource("posds_receipt", dt))
    rpt.LocalReport.ReportEmbeddedResource = "POSsystem.receipt.rdlc"
    rpt.SetDisplayMode(DisplayMode.PrintLayout)
    rpt.ZoomMode = ZoomMode.FullPage

    Dim printDialog1 As PrintDialog = New PrintDialog
    printDialog1.Document = PrintDocument1
    Dim result As DialogResult = printDialog1.ShowDialog
    If (result = DialogResult.OK) Then
        PrintDocument1.Print()
    End If

End Sub
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top