2014年8月1日 星期五

利用CrystalReport元件產出PDF報表

利用CrystalReport元件產出PDF報表


http://www.dotblogs.com.tw/621122/archive/2011/05/13/25004.aspx

  1. 先拉出一個rpt,直接連到資料來源,並設計好報表頁面layout
  2. 在需要產出的報表的頁面,放置一個按鈕,點下按鈕執行crystal元件的程式
    先load設計好的rpt,再將資料設定給rpt的datasource,然後再export出來既可
    filetype可以有pdf, excel, word...等
 注意事項:
  • CRRedist2008_x86.msi 所在路徑C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\CrystalReports10_5
  • CRRedist2008_x86_cht.msi(繁體中文)所在路徑C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\CrystalReports10_5\zh-CHT

Protected Sub Export(ByVal FileType As CrystalDecisions.Shared.ExportFormatType, ByVal FileName As String, ByVal ExportModel As Boolean)
        Dim report As New CrystalDecisions.CrystalReports.Engine.ReportDocument
        Dim dv As Data.DataView

        dv = ApplyFormSqlDataSource.Select(DataSourceSelectArguments.Empty)

        report.Load(Server.MapPath("tracking.rpt"))
        report.SetDataSource(dv.Table())

        report.ExportToHttpResponse(FileType, Response, ExportModel, FileName)

    End Sub

    Protected Sub reptButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles reptButton.Click
        Export(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, "tracking" & Now.ToString("yyyyMMdd") & ".pdf", True)
    End Sub


使用Crystal Reports列印時自動設定為直式或橫式


建一個print.aspx(專門繫結report1.rpt, report2.rpt, report3.rpt, ......)
由各個form來決定要印那張report並傳參數給print.aspx
而橫印,直印就交給各個rpt去設定囉..

不是在.rpt檔中設定好直印或橫印..
然後在畫面上的toolbar上按下print鈕(若是設定activeX)就會彈出一個指定printer的畫面
按下print就會照著rpt檔案上設定好的格式(橫式/直式)把報表印出來.

P.S.若是設定成橫的但還是直直的給他印出來..那麼有可能就是CrystalReport的問題了..
參考下面這篇改2個html內容就可以搞定喲..
http://technicalsupport.businessobjects.com/KanisaSupportSite/search.do?cmd=displayKC&docType=kc&externalId=2716447&sliceId=&dialogID=18868089&stateId=1%200%2018870010 

在rpt畫面中按右鍵->設計->設定印表機 就可以設定A4,A3,B4..... 也可以設定直印或橫印囉~

修改server上的crystalprinthost.html

if (window.dialogArguments.paperorientation) 
{ objectTag +="
objectTag += window.dialogArguments.paperorientation; 
objectTag += "\">"; }

(系統之.NET有自動更新) , 跑下面指令就又好啦
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis -i
開始安裝 ASP.NET (2.0.50727)。
.................
完成安裝 ASP.NET (2.0.50727)。


沒有留言: