最近做的項目中需要根據數據繪制折線圖,於是就想利用VS2005自帶的報表工具做。一開始很順利,後來發現頁面繪制的圖表,不能隨參數變化而變化,為此折騰了大半個下午,真是陰溝裡翻船,最後發現缺少對 ReportViewer.LocalReport.Refresh 的調用,加班讓我腦袋混沌了很多……
不過到現在還弄不明白的是,在發布系統的時候出現的問題。我是直接利用VS2005的 publish 功能發布系統,它采用預編譯的方式,我去掉了“Allow this precompiled site to be updatable”選項,發布到服務器上去之後,報表無法顯示,經過一些測試,發現原因可能是無法找到報表文件路徑,為此,我將aspx頁面中的 ReportPath改成相對地址,還是不行;後來去掉aspx文件中的ReportPath屬性,改在cs文件中利用 Server.MapPath方法,結果仍然不行。實在沒有辦法,只好將“Allow this precompiled site to be updatable”選項選中,publish,然後服務器上報表文件可用了,選中這個選項,我想可能會對性能有些許影響,但是目前進度很近,也只能先這樣了,如果以後找到了這個問題的答案,我會在此補充。
[2006-2-13]編輯:
看來可能找到原因了,在publish的預編譯後,報表文件在發布到服務器後和其他aspx文件等一樣變成了一種“marker”文件,只要把原來的報表文件覆蓋掉這個“marker”文件就可以了。這或許也算是VS2005的一個問題?