#開始使用:grid++report 可以在 visual c#.net 與 visual basic.net 下的 winform 專案中使用。在專案中使用 grid++report 之前,首先必須對 grid++report 的引用。
在 visual studio.net(2003/2005/2008/2010)中引用 grid++report 的過程:
首先開啟或新建 visual studio.net 專案。
★在『工具箱』面板中加入 grid++report 對應構件:
1、在『工具箱』面板中右擊滑鼠按鈕開啟彈出式關聯選單,執行選單項『新增/移除項...』,開啟『自定義工具箱』視窗。(注:vs.net2005及以後版本的選單項名稱為『選擇項...』,視窗名為『選擇工具箱』。)
2、在『自定義工具箱』視窗中選擇『com』選項卡,從列表中選取對『grid++report displayviewer 5.6』與『grid++report printviewer 5.6』兩項。
3、執行『確定』按鈕關閉『自定義工具箱』視窗,在『工具箱』面板中會加入兩個控制項項:『grid++report displayviewer 5.6』與『grid++report printviewer 5.6』,此時我們可以象使用其它控制項一樣使用這兩個控制項。
4、如果在專案中需要為使用者提供執行時設計報表的功能,需要使用類似的過程加入對『grid++report designer 5.6』的引用。
★在專案中加入 grid++report 型別庫的引用:
1、開啟 『解決方案資源管理器』視窗,展開專案節點。
2、在『引用』節點上右擊滑鼠按鈕開啟彈出式關聯選單,執行選單項『新增引用...』,開啟『新增引用』視窗。
3、在『新增引用』視窗中選擇『com』選項卡,在列表中雙擊『grid++report engine5.0 type library』項。
4、執行『確定』按鈕關閉『新增引用』視窗,完成新增過程。
5、如果在專案中需要為使用者提供執行時設計報表的功能,需要使用類似的過程加入對『grid++report designer5.0 type library』的引用。
注:如果在設計 form 上要加入查詢顯示控制項或列印顯示控制項,上面對型別庫的引用步驟可以不做,因為在控制項被加入到 form 中的時候,專案會自動加入對型別庫的引用。
★關於c#與vb.net開發相容64位winform程式說明:
設定winform 專案的目標平台為「x86」可以保證用 grid++ 開發的軟體在64位windows下正常執行。設定說明:
1、c#: 專案->屬性->生成->目標平台->x86
2、vb.net: 專案->屬性->編譯->高階編譯選項...->目標cpu->x86
3、也可以在專案的配置管理器中將「any cpu」平台去掉,增加「x86」平台。操作選單:生成->配置管理器->活動解決方案平台,下拉選擇「新建...」項可以在開啟的對話方塊中增加「x86」平台,下拉選擇「編輯...」項可以在開啟的對話方塊中移除「any cpu」平台。
4、如果是在windows7 64位或其它64位系統下開發,也一定要按以上要求設定專案的目標平台。
5、在 vs2005/2008/2010 中都通過測試,在windows server 2008與windows7 的 64 位系統下都可以正常發布。例子 11.customdesign 公升級到vs2005/2008/2010 並把目標平台改為「x86」,製作出來的安裝程式就可以在各種windows系統下安裝執行。
★發布你的專案,用vs.net製作安裝程式:
1、先建立安裝專案:在解決方案資源管理器的根節點上點右鍵,在彈出的選單裡執行「新增->新建專案...」,建立乙個「安裝專案」。
2、加入專案發布檔案:在解決方案資源管理器的新建立的安裝專案節點上點右鍵,在彈出的選單裡執行「新增->專案輸出...」,在開啟的視窗裡選擇「主輸出」,這樣可以把程式的發布檔案自動加入到安裝專案中。
3、設定grid++report的dll檔案為com自註冊:分別設定「gregn50.dll」與「grdes50.dll」的「register」屬性為「vsdrfcomselfreg」。
★關於c#與vb.net中資料多次重複填入的問題:
原因: 掛接報表事件的**被多次執行,因此同一事件函式被多次掛接上;在事件一次觸發過程中,這個事件函式會被多次呼叫。如 fetchrecord 事件就會多次填入報表資料,從而造成報表資料重複。
解決方式1:移動掛接報表事件的**的位置,讓這些**只執行一次。一般是在 from 的啟動函式或事件中。如下c#與vb.net**:
public form1()
private sub form1_load(byval sender as system.object, byval e as system.eventargs) handles mybase.load
...'連線報表事件
addhandler report.initialize, addressof reportinitialize
addhandler report.fetchrecord, addressof reportfetchrecord
addhandler report.processrecord, addressof reportprocessrecord
addhandler report.groupbegin, addressof reportgroupbegin
addhandler report.sectionformat, addressof reportsectionformat
...end sub
解決方式2:在掛接事件前,先移除原來的掛接事件。如下c#與vb.net**:
report.fetchrecord -= new _igri***reportevents_fetchrecordeventhandler(reportfetchrecord);
report.fetchrecord += new _igri***reportevents_fetchrecordeventhandler(reportfetchrecord);
removehandler report.fetchrecord, addressof reportfetchrecord
addhandler report.fetchrecord, addressof reportfetchrecord
grid 報表使用時注意事項
開始使用 grid report 可以在 visual c net 與 visual basic.net 下的 winform 專案中使用。在專案中使用 grid report 之前,首先必須對 grid report 的引用。在 visual studio.net 2003 2005 2008 2...
iostream使用時注意事項
標準io庫在3個頭檔案中定義 iostream是從流中讀寫,fstream是從檔案的讀寫,而sstream是從字串中去讀寫。io物件有乙個很重要的特點,就是不能複製或者賦值。這意味兩點 第一,io物件不能儲存在容器中,第二,形參或者函式的返回值也不能是io型別。如果需要傳遞io物件,則需要使用引用。...
Selectors使用時注意事項
1.serversocketchannel和socketchannel必須配置成非阻塞的 2.每次輪詢後,得到selectionkey後,必須從選擇集裡remove掉 iteratorkeys selector.selectedkeys iterator while keys.hasnext 3.如...