FxGrid出世(附帶完整原始碼)

來源:互聯網
上載者:User

 經過6天的連續奮戰,FxGrid組件開發完成,今天正式投入使用。這個我把這個Grid作為一個輕量級組件,以彌補開發上的部分需求。

現在介紹一下這個組件的特點:
1、支援介面設計,能夠設計出任意複雜的表頭;
2、能夠設計每個欄位的合計列為,合計列為包括:None,Sum,Avg,Count;
3、能夠設定每個欄位的中文顯示名稱;
4、能夠設定每個欄位的資料對其方式;
5、能夠設定表頭的顏色;
6、能夠設定每個欄位的唯讀屬性;
7、雙擊儲存格,觸發雙擊事件;
8、提供擴充介面,當某行某個儲存格被選中時,通過該介面,能夠控制該儲存格的唯讀屬性(該能夠能夠滿足複雜表格式資料的編輯)
9、支援DataTable和DataView資料來源

以下是該控制項在設計時的狀態

以下是該控制項在運行時的狀態

 

該組件的缺點:
1、不支援滑鼠滾輪;
2、是一個.Net組件,只能運行於.Net環境中。

該組件存在的理由:
1、通過表格作為錄入介面時,要求表格的表頭能夠顯示更加複雜的內容;
2、作為表格,能夠設定是否需要顯示合計值;
3、當有需求要求將查詢資料和操作資料放在起一處理時(這樣做的好處是減少介面數量),該組件的擴充介面提供了對當前選擇儲存格的唯讀屬性的控制功能。

總而言之,這個表格沒有PowerBuilder的DataWindow那麼強大,也沒有Crystal Report那麼華麗,它只是一個輕量級的Grid(和我自己一樣^_^),對於它的誕生理由,我一直都在思考,我也希望各位能夠各抒己見。
(有關Grid的設計,我會繼續下去,這個控制項太具有挑戰性了。但是下面的路該怎麼走,我有幾點想法:
1、參照MFC中的View概念,去研究
2、.Net下有關控制項的構造
以上是技術上的考慮,從需求分析上
3、進一步細化開發中對Grid的需求,這種細化方法和商人細化市場的思想差不多)

以下是這個組件的原始碼,用C++.Net編寫完成,由於本人對C++.Net的使用時間只有2個多月,代碼拙劣的地方還請高手指教。
(Afx是微軟的Team Dev,Fx是我自己的定義,呵呵!
這個組件不足之處,希望各位不吝賜教。
有關組件設計與系統分析,非常希望能夠和更多的朋友交流。聯絡QQ:64528619)

原始碼點擊http://blog.csdn.net/firefox1/archive/2007/01/07/1476553.aspx

 首先是設計檢視,該視圖描述了Grid在建立過程中資料轉換的過程,可以說是一個DFD資料流圖,但從嚴格意義上說,它不是DFD,只是我為了能夠更加清楚的描述資料的轉換過程而製作的一個描述工具。其實我們平時的編碼過程也就是一個資料轉換過程,我也通過這種方式來分析代碼,感覺效果還是挺不錯。通過這種描述方法,這個控制項在測試時幾乎沒有出現功能性問題,一步到位。

下面我將這幅圖展現給大家,雖然有點亂,但是如果仔細看,就能夠找到資料轉換的過程,我也很希望大家能夠談談自己在組件設計和程式碼分析上的經驗。 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.