David
发布于 2014-12-11 / 13 阅读 / 0 评论 / 0 点赞

PowerBuilder 使用DataWindow中表達式控制字段屬性

標題有點長,不要在意。 網上關於PB的教程比較少,有時候資料都找不到,這遊戲太難了。 Begin 有時候數據窗口裏需要顯示很多不同的數據,但有時候是基於其他數據再決定是否顯示更多,如果用程序控制的話,那會變得非常複雜,不好修改。 需求:

有A,B,C,D,E,F字段

要顯示C字段和D字段,取決與B字段是否有內容(非空)

當A字段等於指定內容時,F字段背景顏色改為藍色.....

當F字段小於1000時,E字段可供用戶輸入,否則不能輸入,但可以複製其內容。

表達式類似與Excel的表達式,有基本的sum,max,min,if等等,數學運算什麼的不在話下,利用if判斷即可解決上面的需求,再也不用寫那麼多代碼來控制。 寫教程確實很麻煩,你會做跟寫教程是不同的,很多細節問題需要描述。 看截圖(怎麼新建數據窗口暫時先不講),紅色框內就是通往天國的階梯。 屬性頁 我點..... 表達式 注意functions列表,這下有的玩了,不可能一個個說具體怎麼用,好好研究吧,參數類型跟他括號內X、S有關係。 回到之前所說的需求上 第一個:

可不可見很明顯是用visible,但是在表達式裏是不能直接寫TrueFalse,只能寫布爾類型的二進制,true=非零,False=0.表達式:if(B <> '',1,0)

第二個:

在Font屬性頁下,背景顏色對應英文Background Color,此頁下有很多可以用表達式控制,用代碼控制界面真心很蛋疼。在表達式中,顏色是以RGB形式存在,一般只用那幾種顏色,手打即可。表達式:if(A = 'David',rgb(0,0,255),rgb(0,0,0))

第三個:

在General頁下,找到Protect屬性,中文好像叫保護的意思,這裡需要注意下表達式返回值,Protect為True時則不能修改。表達式:if(F < 1000,0,1)

文章比較簡單,沒什麼好說的,就這樣。