有關網格 Grid 控制項的一些想法

2021-06-16 03:59:12 字數 1206 閱讀 1319

實際應用中經常和**打交道,尤其是資料庫專案開發中。在vb6中,使用過vsflexgrid,那絕對是乙個好東西,資料方面:支援資料庫繫結和虛模式;外觀上:支援行列隱藏、滾動條隱藏、行列凍結、合併單元格等。

現在有個想法,就是能否有乙個實現報表式的控制項,並能支援虛模式及繫結資料庫,這裡所謂的報表式,是指網格控制項不是單一的二維資料表視覺化,而是有一些報表功能,如有表頭和表足(或者叫頂部固定行、底部固定行,可多行,能單元格合併),表頭(或列頭)、表足往往蘊含豐富資訊,如分組列頭,表足顯示單元格匯聚資訊等。

一、在vb6下考慮過用幾個網格合併做乙個自定義的控制項,似乎可以,但外觀上有些彆扭。因ms把vb甩在半路上,只好轉到mfc。

二、在mfc下,修改chris maundermfc grid control 似乎也可以,但工作量很大,目前實現了表頭、表足,單元格合併(參考huang wei**),行列凍結,改進gridcellcheck和gridcellcombo單元格型別。表頭表足工作在實模式下,另建立其對應的後台單元格物件陣列做維護。但在資料繫結虛模式下遇到問題,沒能做下去。

三、修改bcg的bcgpgridctrl1200,重點是表頭表足部分。

修正了幾個小bug(本想向bcg報告,但英文差,怕表達不清):

1、當設定了表頭或表足,並顯示行頭時,滾動視窗行頭重繪錯亂,垂直滾動條與表足交叉部閃爍。

pgrid->enablerowheader (true);

pgrid->enablelinenumbers ();

// 測試表頭足高

pgrid->setgridheaderheight(20);

pgrid->setgridfooterheight(40);

(解決方法:修改cbcgpgridctrl::ongetrowheaderrect() 及 cbcgpgridctrl::ondraw())

2、當設定了凍結列,並設定調整列寬時不顯示內容,在調整凍結列下一列的列寬時,該列內容被凍結列遮蓋

// 凍結第2列

pgrid->freezecolumns (2, false); 

// 拖動列寬調節時,不顯示內容

pgrid->setshowdragcontext(false);

(解決方法:修改cbcgpgridctrl::onlbuttonup())

3、調整表頭布局。將自定義表頭部分調到列頭上方。

。。。(待續)

有關UPDATE操作的一些想法

我們平常寫 的時候,無疑都會接觸大量的資料curd操作。第一反應是這太簡單了,那麼你在編寫update操作的時候是怎樣的邏輯呢?比較下面兩段偽 sql update table name set a a b b c c where id id res db query sql if res else...

有關讀書求知的一些想法

在求知的過程中,我們經常會要面對這樣,那樣的 以讀書為例,一部經典的好教材,想要把它讀通,搞明白,弄紮實,除了在讀的過程中理解作者想要描述的字面意思以外,往往還需要通過作大量的相關習題及實驗來建立起更為紮實,深刻的認識,而捧著厚厚的一本書,人類心理潛在的占有本能又往往會驅使著自己以最快的速度將這部教...

有關U盤掛載的一些想法

原來一直採用網上現成的核心,所以u盤很容易就掛上了。也沒發現特殊的指令碼。可是換了另外乙個核心debian下的,就發現有熱插拔事件但 dev下沒有裝置,頭痛了幾天。首先想到的是仿照debian啟動指令碼,執行rcs。它裡面只有乙個指令碼exec etc init.d rc s.原來它是啟動rc指令碼...