當前位置:編程學習大全網 - 編程語言 - 在PB中如何控制Datewindow列的修改屬性[2]

在PB中如何控制Datewindow列的修改屬性[2]

  方法三 利用修改列的EDIT屬性中的DisplayOnly屬性值

 語法為 dw_ Object columnname Edit DisplayOnly=value 或 dw_ Modify( columnname Edit DisplayOnly{=value} )

 參數說明 columnname:要保護的列名

 value:表示該列是否為只顯示(DisplayOnly)狀態 它有兩個取值 Yes和No Yes表示不允許用戶輸入數據(只顯示) No則相反 默認值是No

 例如 如果要使列name設置為只顯示 可以在相應事件的腳本中包含下列代碼

 dw_ Object name Edit DisplayOnly=Yes

 或者 dw_ Modify( name Edit DisplayOnly=Yes )

 用該方法時列雖不能被修改 但該列能得到焦點 上述的其它方法則不能

  三 有選擇的保護某些行

 上述方法將對DataWindow的所有行起作用 但要想只保護其中的某些行 則需要用列的保護(Protect)屬性(取值同上述方法二) 但這是在建立DataWindow時實現的 方法為 在DataWindow畫板(Painter)中 雙擊相應的列 彈出Column Object 對話框 選取Expressions頁 在Protect後的框中寫入if(條件表達式 ) 靈活運用條件表達式可以獲得多種保護效果

 ( )只允許修改新插入的行

 在壹個DataWindow中 有時會有這樣的需要 已有的數據只能瀏覽不允許修改 只有用戶新輸入的數據才允許修改 此時表達式為 if(isrownew() ) 或者if(not isrownew() )

 ( )某壹列的保護情況要根據其它列的數據進行

 如在員工工資管理中 只有工作年限大於 年時才允許輸入知識分子補貼(bt) 則列bt的Protect後的框中輸入 if(integer(mid(string(today() yyyymmdd ) )) – integer(mid(workdata ))> )

 ( )要保護的行只有在執行時才能確定 並且不斷變化例如在員工工資管理中 假設工資的修改只有該工資的輸入者是變化的 且壹般情況下只有在執行時才能確定條件需要壹個變量 這就需要在建立DataWindow時為其指定壹個檢索數據的參數(如flag) 然後在可修改列的Protect後的框中輸入(user_name是該DataWindow中的壹列 代表輸入者的名稱)

 if (user_name=flag )

 在實際應用時還要註意參數的實際類型

 ( )在表中增加壹個標誌列

 上述方法基本上均要求要保護的行有壹定的規律可循 當這些行沒有規律時 可以在相應的表中專門增加壹個標誌列(設列名為flag) 取值為 和 然後在其它列的Protect後的框中直接輸入flag的表達式 運行時若該行的flag= 在該行相應的列處於保護狀態 對於標誌列值的修改 可以由數據管理員修改或根據某種情況在程序中靈活設置

? 編輯推薦

? ASP NET開發培訓視頻教程

? Microsoft NET框架程序設計視頻教程

lishixinzhi/Article/program/PB/201311/24606

  • 上一篇:粉末冶金四軸定位加工編程
  • 下一篇:數學建模的基本過程有哪些
  • copyright 2024編程學習大全網