1.資料來源的使用,當從外部新增資料庫檔案或更新資料庫檔案時,可以直接將解決方案中的資料庫檔案替換掉,但是如果程式設計介面中用到了資料繫結,涉及到了資料來源的話,如果要將資料來源中的內容也更新的話,可以從伺服器資源管理器中直接拖過來。(我太傻了,以前都不知道)
2.為報表繫結資料集
3.在報表中如果用到了某乙個資料庫中的多個表。為乙個報表填充某乙個資料集時,可以設定將多個表填充到資料集中,然後再將資料集填充給報表。
//填充資料集
detiallisttableadapter1.fill(sendproductdataset1.detiallist,hadrows);
sendtotallisttableadapter1.fill(sendproductdataset1.sendtotallist,hadrows);
#region 判斷記錄是否夠7行,如果不夠,加空白行;
int currentrecordcount = sendproductdataset1.detiallist.rows.count;
if (currentrecordcount < recordcount)
}#endregion
#region 建立報表例項
crystalreportsend sendreport = new crystalreportsend();
sendreport.setdatasource(sendproductdataset1);
reportdocument document = (reportdocument)sendreport;
this.crystalreportviewer1.reportsource = document;
#endregion
4.水晶報表中設計
在頁首和頁尾中的設定基本上沒什麼特殊的地方,如果想要在這兩個地方顯示什麼內容,就將自己新加的字段或資料庫字段放在此處即可正常顯示。
而在詳細資訊部分新增的內容則需要注意了,如果報表體中有多行內容格式相同,在這裡只需要設計一行即可,在執行時,程式會根據填充的資料集按設定的報表詳細資訊中個格式依次顯示,而不需要在設計時就畫出多行。
5.使用的小函式
strsum = strsum.padleft(9, ' ');該函式為字串的操作,如果字元轉長度不夠9為,在左邊用空格填充。
string.format("", totalsum);將數字儲存為字串,並且保留兩位小數
6.為報表新增臨時資料集,而不是填充資料庫的資料集
datarow tdr = sendproductdataset1.sendtotallist.addsendtotallistrow(,,,,);addsendtotallistrow為自動生成的對應資料庫中表名的方法,其引數為對應資料庫中各個欄位的具體的值。
注意:雖然可以為水晶報表填充臨時的資料集,但是還要通過資料集這個中間的部分,填充後,如果臨時資料集中的內容可能會回傳到資料庫中,所以還要清空一下。清空可以清空整個資料集,也可以清空指定的表,這裡我清空了兩個表
sendproductdataset1.detiallist.clear();
sendproductdataset1.sendtotallist.clear();
因為整個程式中用到的資料集都是同乙個,在其他的地方可能會用到某個表繫結到某個控制項,清空整個資料集會出錯,還是用到哪個清空那個。
水晶報表在顯示時,會將詳細部分內容重複7次(這個不確定,有可能是根據詳細部分設計窗格的高度自動調整的),如果資料集中資料不夠7條,可以自己填充空白行
datarow dr = sendproductdataset1.detiallist.newrow();
sendproductdataset1.detiallist.rows.add(dr);
7.我的windows程式寫好之後有段時間一直是需要點選兩下退出符號才可以退出,原來是在強制轉換某個物件時,好象是沒有判斷是否為空、還是占用了什麼資源導致的,解決辦法是,占用的繫結表endedit()在update一下。
8.關於datagridview
倒序刪除datagridview中的內容
int rowsselectcount = datagridviewsend.selectedrows.count;for (int i = rowsselectcount; i >= 1; i--)//
從下往上刪,避免沙漏效應
注意:datagridview的clear方法,這個雖說清空了內容,但只是我們看不到了,實際上還在,要用removeat依次刪除。
水晶報表列印
水晶報表列印問題 reportdocument areportdocument new reportdocument 載入報表 子報表資料來源 areportdocument.subreports sonrpt.rpt setdatasource sonds 傳遞引數 areportdocument...
水晶報表的列印
using system using system.data using system.configuration using system.collections using system.web using system.web.security using system.web.ui usin...
列印水晶報表流程
列印水晶報表流程 一 資料的查詢與篩選 通過分組查詢 多表聯查等方法查詢出所需要的資料進行列印 二 給水晶報表設計資料來源與模板 在設計水晶報表前得有一系列的準備工作,首先得建立乙個資料夾在資料夾裡建立資料集和安裝水晶報表軟體。圖例 資料夾printreport 將上面查詢出來的資料轉化為datat...