水晶報表10 列印 匯出按鈕不能用

2021-04-13 09:38:35 字數 1510 閱讀 8584

最近公司接了乙個專案,要給客戶做許多報表,並且是中國式的報表,本人就用了c#+水晶報表10進行了開發,但是中間遇到了乙個問題,」動態設定水晶報表的資料來源後,列印、匯出、查詢等按鈕不能用,即使用水晶報表的工具欄時,出現的不是列印、匯出、查詢的結果,而是一張空白」出現這個問題挺鬱悶的,於是在網上也查詢了一番,但是網友們也都遇見到這個問題,都 沒有給出解決的辦法。無奈之下,本人專門研究了一番,最後

費了十牛三虎之力,終於找到了解決的辦法,下面列出來,以饗讀者,希望能給遇到此問題的朋友一定的幫助。

web窗體中有兩個控制項,

crystalreportviewer1  

和crystalreportsource1

,資料來源:

dataset **

: protected

crystaldecisions.web.crystalreportviewer crv;

reportdocument reportdoc=new reportdocument() ;    if

(!ispostback)

上面就是常見的**,並且**不存在錯誤,那讀者要問了,上面沒有錯誤,但是到預覽報表時,要列印、匯出、查詢特定的頁面時為什麼還是空白頁面呢?

哈哈,下面將解決這個問題,請往下看 if

(!ispostback)

sqlconndata.open();

string

str="select * from brigderoad where (station='"+userstr+"') or (year='"+yearstr+"') "; //

查詢特定的表

sqldataadapter myadapter=new sqldataadapter (str,sqlconndata);

addressds ds=new addressds();

myadapter.fill (ds,"brigderoad");//

繫結到資料來源

string

指定到特定的報表          if

(!reportdoc.isloaded )

reportdoc.load(filepath);

reportdoc.setdatasource(ds);

crv.reportsource=reportdoc;

看到了吧,只需要

if語句後的**放在

if(!ispostback)

的後面就可以了,呵呵,囉唆了那麼多,就這麼簡單。ispostback指示該頁是否正為響應客戶端回發而載入,或者它是否正被首次載入和訪問,當執行完

if(!ispostback)

之後有比訊把所查詢的表重新繫結資料來源,這樣報表中有了資料,所以水晶報表的工具欄就可以用了。 總結

: if(!ispostback)

執行之後要把表重新繫結到資料來源,這樣才不會錯誤。

水晶報表匯出

private void page load object sender,system.eventargs e region web form designer generated code override protected void oninit eventargs e required me...

水晶報表列印

水晶報表列印問題 reportdocument areportdocument new reportdocument 載入報表 子報表資料來源 areportdocument.subreports sonrpt.rpt setdatasource sonds 傳遞引數 areportdocument...

水晶報表列印

1.資料來源的使用,當從外部新增資料庫檔案或更新資料庫檔案時,可以直接將解決方案中的資料庫檔案替換掉,但是如果程式設計介面中用到了資料繫結,涉及到了資料來源的話,如果要將資料來源中的內容也更新的話,可以從伺服器資源管理器中直接拖過來。我太傻了,以前都不知道 2.為報表繫結資料集 3.在報表中如果用到...