五、數(shù)據(jù)窗口中實(shí)現(xiàn)自動折行
有時為了界面的考慮需要將一些長字段折行顯示,但又不能確保在所有情況下都會出現(xiàn)長字段。比如,我們要求當(dāng)客戶地址超過50個字符時將它分兩行顯示,對于沒滿50個字符的客戶仍然按照正常格式顯示。
具體如下:
1、在數(shù)據(jù)窗口中選擇要自動折行的列Address。
2、選擇位置屬性(Position)并選中Autosize Height選項(xiàng)
3、 選擇編輯屬性(Edit)并去掉Auto Horz Scroll選項(xiàng)
4、選擇數(shù)據(jù)窗口中細(xì)目帶的屬性Autosize Height選項(xiàng)。注意,是當(dāng)你拖動細(xì)目欄時出現(xiàn)的屬性。
設(shè)置完畢后在左下角預(yù)覽窗口中將顯示圖例的結(jié)果。
在進(jìn)行列自動折行顯示的時候,還要注意一點(diǎn),系統(tǒng)判斷自動折行的斷點(diǎn)是以空格或標(biāo)點(diǎn)符號為依據(jù)的,如果我們輸入一長串字符且中間沒有任何標(biāo)點(diǎn)符號或空隔的話,即使該字符串再長也無濟(jì)于事。因此,我們一定要提醒用戶在錄入時適當(dāng)?shù)募尤胍恍┛崭窕蚧剀嚒?BR> 六、數(shù)據(jù)窗口中記錄顏色的隔層顯示
相信你一定見過這樣的顯示,第一行記錄的背景色是淺黃色,第二行記錄的背景色是白色,第三行又是淺黃色,第四行又是白色……,依次類推。
要想讓顯示的數(shù)據(jù)達(dá)到上述效果,我們首先要知道的是這些數(shù)據(jù)存放在數(shù)據(jù)窗口中的什么地方。很顯然,數(shù)據(jù)窗口中的所有數(shù)據(jù)是在細(xì)目帶中列出的,因此只要在細(xì)目帶中設(shè)置一些數(shù)據(jù)屬性就會影響到這個細(xì)目帶中的所有內(nèi)容。具體實(shí)現(xiàn)如下:
1、打開數(shù)據(jù)窗口,單擊細(xì)目帶(Detail),注意是點(diǎn)擊有“Detail”字的一欄,不是它存放數(shù)據(jù)的地方。點(diǎn)擊它鼠標(biāo)會出現(xiàn)上下小箭頭。
2、選擇常規(guī)屬性,單擊顏色屬性(Color)旁邊的一個帶有紅色圖標(biāo)的小按鈕。
3、在表達(dá)式一欄中輸入
if ( Mod( GetRow(), 2) = 0, RGB(255, 255, 200), RGB(255, 255, 255))
// RGB(255, 255, 200),淺黃色
OK,預(yù)欄一下,效果不錯,大功告成。
七、實(shí)現(xiàn)數(shù)據(jù)窗口的動態(tài)排序
在用到Windows的資源管理器的時候,當(dāng)我們需要按照文件的類型或名稱排序的時候只要用鼠標(biāo)點(diǎn)擊一下相應(yīng)的標(biāo)題欄,系統(tǒng)會按照升序或降序交替排序,這完全取決于用戶鼠標(biāo)點(diǎn)擊的奇偶數(shù)。如此方便的操作何不用到我們的數(shù)據(jù)窗口中——實(shí)現(xiàn)按某列的動態(tài)排序。
為了實(shí)現(xiàn)上述功能,程序首先需要用到一個全局變量(相對于PB來說可以用窗體變量),用它來控制連續(xù)兩次點(diǎn)擊之間的排序方向。因?yàn)樽侄蔚呐判蚍较蛑挥猩蚝徒敌騼煞N,所以我們可以用一個Boolean型。本例中是Boolean ib_flag。接著在數(shù)據(jù)窗口控件的Clicked事件中寫上如下代碼
/*****************************程序代碼******************************/
String ls_column, ls_sort
ls_column = this.GetObjectAtPointer() // 得到鼠標(biāo)按下位置的對象名
ls_column = left(ls_column, len(ls_column) - 2) // 得到列標(biāo)題名字
if not Lower(right(ls_column, 2)) = "_t" then return// 如果不是缺省的列標(biāo)題,即以“_t”結(jié)尾或鼠標(biāo)根本沒有點(diǎn)在列標(biāo)題上則退出
有時為了界面的考慮需要將一些長字段折行顯示,但又不能確保在所有情況下都會出現(xiàn)長字段。比如,我們要求當(dāng)客戶地址超過50個字符時將它分兩行顯示,對于沒滿50個字符的客戶仍然按照正常格式顯示。
具體如下:
1、在數(shù)據(jù)窗口中選擇要自動折行的列Address。
2、選擇位置屬性(Position)并選中Autosize Height選項(xiàng)
3、 選擇編輯屬性(Edit)并去掉Auto Horz Scroll選項(xiàng)
4、選擇數(shù)據(jù)窗口中細(xì)目帶的屬性Autosize Height選項(xiàng)。注意,是當(dāng)你拖動細(xì)目欄時出現(xiàn)的屬性。
設(shè)置完畢后在左下角預(yù)覽窗口中將顯示圖例的結(jié)果。
在進(jìn)行列自動折行顯示的時候,還要注意一點(diǎn),系統(tǒng)判斷自動折行的斷點(diǎn)是以空格或標(biāo)點(diǎn)符號為依據(jù)的,如果我們輸入一長串字符且中間沒有任何標(biāo)點(diǎn)符號或空隔的話,即使該字符串再長也無濟(jì)于事。因此,我們一定要提醒用戶在錄入時適當(dāng)?shù)募尤胍恍┛崭窕蚧剀嚒?BR> 六、數(shù)據(jù)窗口中記錄顏色的隔層顯示
相信你一定見過這樣的顯示,第一行記錄的背景色是淺黃色,第二行記錄的背景色是白色,第三行又是淺黃色,第四行又是白色……,依次類推。
要想讓顯示的數(shù)據(jù)達(dá)到上述效果,我們首先要知道的是這些數(shù)據(jù)存放在數(shù)據(jù)窗口中的什么地方。很顯然,數(shù)據(jù)窗口中的所有數(shù)據(jù)是在細(xì)目帶中列出的,因此只要在細(xì)目帶中設(shè)置一些數(shù)據(jù)屬性就會影響到這個細(xì)目帶中的所有內(nèi)容。具體實(shí)現(xiàn)如下:
1、打開數(shù)據(jù)窗口,單擊細(xì)目帶(Detail),注意是點(diǎn)擊有“Detail”字的一欄,不是它存放數(shù)據(jù)的地方。點(diǎn)擊它鼠標(biāo)會出現(xiàn)上下小箭頭。
2、選擇常規(guī)屬性,單擊顏色屬性(Color)旁邊的一個帶有紅色圖標(biāo)的小按鈕。
3、在表達(dá)式一欄中輸入
if ( Mod( GetRow(), 2) = 0, RGB(255, 255, 200), RGB(255, 255, 255))
// RGB(255, 255, 200),淺黃色
OK,預(yù)欄一下,效果不錯,大功告成。
七、實(shí)現(xiàn)數(shù)據(jù)窗口的動態(tài)排序
在用到Windows的資源管理器的時候,當(dāng)我們需要按照文件的類型或名稱排序的時候只要用鼠標(biāo)點(diǎn)擊一下相應(yīng)的標(biāo)題欄,系統(tǒng)會按照升序或降序交替排序,這完全取決于用戶鼠標(biāo)點(diǎn)擊的奇偶數(shù)。如此方便的操作何不用到我們的數(shù)據(jù)窗口中——實(shí)現(xiàn)按某列的動態(tài)排序。
為了實(shí)現(xiàn)上述功能,程序首先需要用到一個全局變量(相對于PB來說可以用窗體變量),用它來控制連續(xù)兩次點(diǎn)擊之間的排序方向。因?yàn)樽侄蔚呐判蚍较蛑挥猩蚝徒敌騼煞N,所以我們可以用一個Boolean型。本例中是Boolean ib_flag。接著在數(shù)據(jù)窗口控件的Clicked事件中寫上如下代碼
/*****************************程序代碼******************************/
String ls_column, ls_sort
ls_column = this.GetObjectAtPointer() // 得到鼠標(biāo)按下位置的對象名
ls_column = left(ls_column, len(ls_column) - 2) // 得到列標(biāo)題名字
if not Lower(right(ls_column, 2)) = "_t" then return// 如果不是缺省的列標(biāo)題,即以“_t”結(jié)尾或鼠標(biāo)根本沒有點(diǎn)在列標(biāo)題上則退出

