• VS2003下水晶報表的列印2/3


    VS2003下水晶報表的列印比較麻煩,看到有些朋友在為此而苦惱,分享一下偶的做法:
    如果是局域網內中,可參考下面的步驟:
    1.增加列印按鈕,其代碼如下

     Dim rpt As ReportDocument = Session("report")
     Dim pv() As String = Split(TextBox1.Text, ";")'TextBox1.text為點列印按鈕時返回的印表機及邊界的設定值,以;分隔
     Dim margins As CrystalDecisions.Shared.PageMargins
            If pv(0) > pv(1) Then
                If Not IsStartupScriptRegistered("Startup") Then
                    Page.RegisterStartupScript("Startup", "<script language=javascript>window.alert('列印頁數設定錯誤!@_@')</script>")
                End If
                Exit Sub
            End If

            ' 取得 PageMargins 結構並設定
            '  報表的邊界。
            margins = rpt.PrintOptions.PageMargins
            margins.leftMargin = pv(6)
            margins.rightMargin = pv(7)
            margins.topMargin = pv(4)
            margins.bottomMargin = pv(5)
            ' 套用頁面邊界。
            rpt.PrintOptions.ApplyPageMargins(margins)

            ' 選取印表機。
            rpt.PrintOptions.PrinterName = pv(3)
            ' 列印報表。將 startPageN 及 endPageN 
            '  參數設定為 0 即可列印所有頁面。
            Try
                rpt.PrintToPrinter(pv(2), False, pv(0), pv(1))
            Catch exp As LoadSaveReportException
                If Not IsStartupScriptRegistered("Startup") Then
                    Page.RegisterStartupScript("Startup", "<script language=javascript>window.alert('開啟報表檔時發生錯誤!@_@')</script>")
                End If
            Catch exp As PrintException
                If Not IsStartupScriptRegistered("Startup") Then
                    Page.RegisterStartupScript("Startup", "<script language=javascript>window.alert('列印時發生錯誤,請檢查印表機相關設定!@_@')</script>")
                End If
            Catch exp As Exception
                If Not IsStartupScriptRegistered("Startup") Then
                    Page.RegisterStartupScript("Startup", "<script language=javascript>window.alert('錯誤來源:" & exp.Source & "!@_@')</script>")
                End If
            End Try

    2.增設列印設定頁面,包括印表機名稱及邊界,列印頁數等的設定,當點列印按鈕後秀出該列印設定頁面並將值返回至報表頁面的TextBox1中
    P.S.值得注意:
    1.服務器上要安裝所需用的印表機,建議印表機位址設成IP或用PrintServer
    2.印表機盡可能選用功能完備的,偶之前有遇到過用HP1022對有些報表印不出,有些卻正常,而換用HP1200或HP3300,HP3390,EPSON LQ-680K等均正常
  • 相关阅读:
    西门子SCL读写DB数据
    LeetCode8.字符串转换整数(atoi) JavaScript
    LeetCode8.字符串转换整数(atoi) JavaScript
    WebRequestSugar
    iosblock用法
    datasci
    UINavigationController学习笔记
    iOSTab bar
    自定义tab bar控件 学习资料
    Ios tab Bar 使用方法
  • 原文地址:https://www.cnblogs.com/daisylh/p/638948.html
Copyright © 2020-2023  润新知