문제

나는 다른 많은 형태의 Winforms Hackish Wizardry와 함께 화면에서 형식을 보여주고 숨길 수 있다는 것을 알고 있지만, Zen Path를 고수하고 올바르게 끝내고 싶습니다. 사용자에게 시청 또는 인쇄 옵션을 제공하고 싶은 SSRS 로컬 보고서 (서버 없음)가 있습니다 (즉, 인쇄하도록 강요하고 싶지 않습니다). 불행히도, ReportViewer Control은 내 코드에서 명시 적으로 작성하거나 (물론 사용 () 블록 내부)에서 명시 적으로 작성하거나 시청자 양식을 인스턴스화하려고 시도하는 경우 "상태"에 대해 불평합니다. 그것을 보여주지 않고 인쇄하십시오.

나와 잘 어울릴 수있는 수단이 있습니까, 아니면 화면에서 그것을 보여주고 내 인생을 계속 진행해야합니까?

도움이 되었습니까?

해결책

여기에 내 블로그에 게시 된 샘플이 있습니다. http://blogs.msdn.com/brianhartman/archive/2009/02/27/manally-printing-a-report.aspx

Local Report 객체는 ReportViewer 컨트롤과 독립적으로 인스턴스화 할 수 있으며 해당 블로그 게시물에 첨부 된 샘플 코드에서 직접 사용될 수 있습니다. 또는 UI에 보고서를 처음 표시하지 않더라도 ReportViewer.localReport를 전달할 수 있습니다.

다른 팁

이것을 확인하고 도움이되는지 확인하십시오 ...http://scruffylookingcatherder.com/archive/2007/12/07/printing-reporting-services-2005-reports.aspx

약간의 설명 : SSRS 웹 서비스를 사용하여 보고서를 EMF 이미지로 렌더링 한 다음 이미지를 프린터로 보냅니다.

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
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top