最近公司接了乙個專案,要給客戶做許多報表,並且是中國式的報表,本人就用了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.在報表中如果用到...