|
如何讓報表即時更新? |
觀看回應
|
|
1. 先讓Master更新,比如重新Active,或者SetWhere (Master為資料來源InfoDataset) 2. 然後執行crystalReportViewer1.RefreshReport();
|
|
|
|
如何將Stored Procedure的結果丟到Client端的InfoDataSet呢? |
觀看回應
|
|
這個可以通過一些變通的方法實現 1. 在Server端放一個InfoCommand,sql語句設成跟您存儲過程返回回來的欄位一樣,例如:select 'abc' as f1, 0.0 as f2....from table where 1=0 只是為了取得table的結構而已。 2. 在Client端使用一個InfoDataSet,比如叫Master,就關聯到步驟1的InfoCommand。 3. 按照Report正常設計。 4. 在設定資料來源時,改成如下: if (ret[0].ToString() == "0") { //將返回的內容導入到Master中,這樣就可以用報表顯示出來 Master.RealDataSet.Tables[0].Merge((DataTable)ret[1]); idgStat.DataSource = ret[1];//這個是用於顯示在Gridview上. //再加上下麵兩句,就將報表顯示出來了 this.CrystalReport11.SetDataSource(Master.RealDataSet); crystalReportViewer1.ReportSource = CrystalReport11; } 以上程式,請依據自己的環境適當修改。
|
|
|
|
報表在運行出現資料庫登陸框? |
觀看回應
|
|
在運行報表時如果將對應的xml刪除會出現DataBase的登陸對話框,有2種方法可以避免這種現象,可按各自的需要選擇: 1. 如設計檔所說,在設計畫面,點擊ReportViewer的右上角,點擊“Clear Report Source”,這種方法的運行結果是在Form開啟的時候不會顯示資料,只有當查詢後才會顯示。 2. 在Form_Load的事件中,增加程式來設定報表的資料源,這種方法的運行結果是在Form打開的一瞬間就可以看到報表,增加的程式: MyReport11.SetDataSource(myInfoDataSet.RealDataSet); crystalReportViewer1.ReportSource = MyReport11;
|
|
|
|
發佈後,USER點印表會將整個Client當掉,提示資訊:The type initializer for 'CrystalDecisions.CrystalReports.Engine.ReportDocument' threw an exception |
觀看回應
|
|
請安裝CRRedist2005_x86.msi,該文件請至Visual Studio2005的安裝目錄下Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\CrystalReports查找。
|
|
|
|
在Server端增加一欄位,並且將Client的DataSet重新Save to Report且xml檔中也已增加新的欄位,但報表的欄位如何更新? |
觀看回應
|
|
1. 右鍵選中DataBase Fields,選擇"LogOn or Off Server"。 2. 選擇Create New connection\ADO.NET\NewDataSet。 3. 點擊Log off按鈕,並關閉。 4. 右鍵選中Database Fields,選擇“Verify DataBase” 。
|
|
|