轉(zhuǎn)帖|其它|編輯:郝浩|2012-01-15 23:48:57.000|閱讀 538 次
概述:在這里先介紹下ActiveReports。ActiveReports是.net下出色的報(bào)表開發(fā)工具,我最喜歡它的地方就是提供了單獨(dú)的代碼文件,你能夠操作數(shù)據(jù)源,也可以控制報(bào)表的顯示等等,很靈活。但是可能由于宣傳不足,國內(nèi)用的比較少,這兩天用上了最新的ActiveReports for .net 3.0,發(fā)現(xiàn)比起2.0,變化是比較大的,要從2.0遷移到3.0,還要費(fèi)一點(diǎn)功夫。下面說說升級后的主要區(qū)別和要注意的幾個(gè)地方,其中包含了一些朋友在本系列前面的隨筆的評論中提到的問題。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
在這里先介紹下ActiveReports。ActiveReports是.net下出色的報(bào)表開發(fā)工具,我最喜歡它的地方就是提供了單獨(dú)的代碼文件,你能夠操作數(shù)據(jù)源,也可以控制報(bào)表的顯示等等,很靈活。但是可能由于宣傳不足,國內(nèi)用的比較少,這兩天用上了最新的ActiveReports for .net 3.0,發(fā)現(xiàn)比起2.0,變化是比較大的,要從2.0遷移到3.0,還要費(fèi)一點(diǎn)功夫。下面說說升級后的主要區(qū)別和要注意的幾個(gè)地方,其中包含了一些朋友在本系列前面的隨筆的評論中提到的問題。
安裝:
我的安裝過程可謂是一波三折。先卸載掉了2.0,安裝3.0后發(fā)現(xiàn)VS2005每次啟動(dòng)后都提示“包加載錯(cuò)誤”,要求使用“devenv /resetskippkgs”重新加載的提示。所有的窗體都無法打開設(shè)計(jì)器,而且給項(xiàng)目添加新項(xiàng)的時(shí)候也沒有顯示ActiveReports的文件。根據(jù)提示在網(wǎng)上搜了一遍,按照微軟提供的資料也無法解決,無奈之下只好修復(fù)VS2005,完成后窗體設(shè)計(jì)器可以打開了,這才松了口氣,重新安裝ActiveReports,這次沒有出現(xiàn)什么問題,一次OK。
安裝完了,第一件事就是打開幫助看看有什么新的變化,但是很不幸,幫助無法打開,只好又執(zhí)行了一次幫助安裝目錄下的H2Reg.exe /r,才把幫助搞定。
這下整個(gè)安裝過程才完成,可以正式開始了。
可視化設(shè)計(jì)器:
設(shè)計(jì)器中最明顯的變化就是添加了“Preview”的Tab頁,可以設(shè)計(jì)好布局后直接在這里預(yù)覽。3.0版 本還在工具欄里提供了在設(shè)計(jì)期放大,縮小瀏覽布局的按鈕,剛安裝后并不顯示,需要在工具欄配置中選中。這是個(gè)很方便的功能,因?yàn)樵谧饕恍┍砀袷降膱?bào)表時(shí), 經(jīng)常在設(shè)計(jì)期看到線都是對齊的,但是在打印出來后常常有中斷或者偏差,有了這個(gè)功能,在設(shè)計(jì)期就能方便地檢查這些錯(cuò)誤。
還有就是在2.0中,打開報(bào)表設(shè)計(jì)器的時(shí)候會(huì)顯示ReportExplore,現(xiàn)在ReportExplore設(shè)計(jì)成和類解決方案,屬性等窗口一樣的模式,可以和這些窗口重疊在一起顯示。ReportExplore中的Fileds節(jié)點(diǎn)增加了下級:Bound和Caculated。
代碼遷移:
在3.0版本中,程序集名稱,命名空間都已經(jīng)變了,以前用2.0寫的報(bào)表都編譯不了,如果仍然要使用rpx+cs文件的方式,就要自己修改代碼,重新添加項(xiàng)目引用。3.0中也提供了工具,用來轉(zhuǎn)換2.0下的報(bào)表。該工具是“工具”菜單下的ActiveRepots File Convert,根據(jù)向?qū)мD(zhuǎn)換完成后,你會(huì)發(fā)現(xiàn),原先的報(bào)表的圖表變成了和組件一樣的圖標(biāo),原來的Rpx文件已經(jīng)不存在了,一個(gè)報(bào)表的文件組成變成了.cs + resx,同樣你如果新建一個(gè)報(bào)表,也是cs+resx這樣的文件組合。這應(yīng)當(dāng)是3.0中最大的變化了,所以如果你安裝了3.0后,看到原來的rpx文件的圖標(biāo)是未知文件類型的,請不要奇怪。
3.0中還提供了從Access導(dǎo)入報(bào)表的功能,你可以在給項(xiàng)目添加新項(xiàng)的時(shí)候看到“ActiveReports 3.0 Access Import Wizard”的項(xiàng),提供了一個(gè)向?qū)韽闹付ǖ腁ccess庫中導(dǎo)入報(bào)表。
問題
ActiveReport提供了一個(gè)很重要的功能-End User,并且有一個(gè)示例程序,實(shí)現(xiàn)了一個(gè)報(bào)表設(shè)計(jì)器。在這個(gè)示例程序中,如果使用了中文字段名,并且顯示在Report Explore的Fileds節(jié)點(diǎn)中,從Report Explore向報(bào)表上拖放的時(shí)候會(huì)產(chǎn)生一個(gè)錯(cuò)誤,提示控件名不合法。
這是因?yàn)樵谕戏诺臅r(shí)候會(huì)自動(dòng)生成一個(gè)和字段名相像的TextBox框,名字為“txt+字段名”,所以會(huì)報(bào)出錯(cuò)誤。但是在2.0中卻沒有這個(gè)錯(cuò)誤,當(dāng)出現(xiàn)中文字段名時(shí),生成對應(yīng)的TextBox會(huì)自動(dòng)更名,使用合法的名字。所以這應(yīng)當(dāng)是3.0中的一個(gè)bug。
要重現(xiàn)這個(gè)bug,只需要在EndUser示例的窗口的Load事件中添加下面的代碼:
DataTable dt = new DataTable();
dt.Columns.Add("中國");
dt.Columns.Add("123123");
dt.Columns.Add("asdf");
dt.TableName = "table1";
DataSet ds = new DataSet();
ds.Tables.Add(dt);
this.arDesigner.Report.DataSource = ds;
this.arDesigner.Report.DataMember = ds.Tables[0].TableName;
程序啟動(dòng)后會(huì)在Report Explore中看到添加的字段,直接拖放到報(bào)表上就能看到錯(cuò)誤了。
雖然有這個(gè)問題,但是并不妨礙使用中文字段,只要不使用拖放功能就可以了。
粗略的看了下,撿自己覺得重要的寫了。完整的更新列表還請看幫助里的“What’s New”。最新版的ActiveReports for .net 3.0可以在DataDynamic的官方網(wǎng)站上下載,已經(jīng)是帶SP1的了。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:網(wǎng)絡(luò)轉(zhuǎn)載