国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開發(fā) > 綜合 > 正文

在PB中如何控制DATAWINDOW列的修改屬性

2024-07-21 02:10:21
字體:
供稿:網(wǎng)友
在pb中如何控制datawindow列的修改屬性

在編制管理信息應(yīng)用系統(tǒng)中,一般都會(huì)遇到一個(gè)共同問題,那就是如何根據(jù)不同情況去控制表中的數(shù)據(jù)列,比如對(duì)于同一datawindow不同的用戶有不同的操作(如對(duì)于數(shù)據(jù)錄入人員可以更改數(shù)據(jù),而對(duì)于查詢?nèi)藛T一般不能更改數(shù)據(jù)),下面就以一個(gè)簡(jiǎn)單的工資表為例來說明利用pb如何在datawindow中控制列的修改方式。工資表基本列如下:代碼姓名工作時(shí)間基礎(chǔ)工資浮動(dòng)工資崗位工資知識(shí)分子補(bǔ)貼其它工資codenameworkdatabasesamovesa stationsabtothersacharvarcharchardecimaldecimaldecimaldecimaldeciaml在pb中有兩種方式可控制列屬性,一是靜態(tài)方式,另一種是動(dòng)態(tài)方式實(shí)現(xiàn)。所謂靜態(tài)方式就是在列的屬性上通過選項(xiàng)實(shí)現(xiàn)。所謂動(dòng)態(tài)方式就是利用編程實(shí)現(xiàn)。現(xiàn)分別給予介紹:一、靜態(tài)方法(1)在datawindow中選中某列后點(diǎn)mouse右鍵,選“properities”后系統(tǒng)彈出一標(biāo)簽,選中“edit”標(biāo)簽,將“display only”選項(xiàng)制為有較;(2)或者選中“expression”標(biāo)簽,在“protect express”中填入“1”;(3)或者選中“expression”標(biāo)簽,在“protect express”中填入條件表達(dá)式,如工作時(shí)間不滿一年的人員不能修改,則寫入“if (daysafter(date(workdate),today()) <= 365,1,0)”;(4)在datawindow中,將某列的tab order 值制為0,則該列因得不到焦點(diǎn)而不能被修改;(5)在datawindow painter 狀態(tài)下選取rows菜單,再選取update properties,彈出specify update properties對(duì)話框,將allow updates 設(shè)為空。二、動(dòng)態(tài)修改方法(1)將整個(gè)datawindow設(shè)置為保護(hù)方式:利用datawindow object的readonly 屬性可以將整個(gè)datawindow 設(shè)置為保護(hù)方式。語(yǔ)法為:dw_1.object.datawindow.readonly=value 或 dw_1.modify(“datawindow.readonly{=value}”),其中:value表示datawindow是否為只讀(read-only)狀態(tài),它有兩個(gè)取值:yes 和no。yes表示使datawindow為read-only;no 則相反,默認(rèn)值是no。例如:如果要使datawindow設(shè)置為保護(hù)方式,可以在相應(yīng)事件的腳本中包含下列代碼:dw_1.modify(“datawindow.readonly=yes”) 或者為:dw_1.object.datawindow.readonly=yes(2)只保護(hù)datawindow的某些列方法一:利用列的protect屬性語(yǔ)法為:dw_1.object.name.protect=integer 或 dw_1.modify(“columnname.protect{=integer}”)。參數(shù)說明:cloumnname:為要保護(hù)的列名;integer:為該列的保護(hù)狀態(tài),值為0或false時(shí)該列不受保護(hù);值為1或true時(shí)該列受到保護(hù)。例如,要將列name設(shè)置為保護(hù)狀態(tài),則相應(yīng)的代碼為:dw_1.object.name.protect=1 或者為:dw_1.moidfy(“name.protect=1”)方法二:利用列的tabsequence屬性,在程序執(zhí)行時(shí)可以根據(jù)需要將該列的taborder置為0,從而達(dá)到保護(hù)的目的。語(yǔ)法為:dw_1.object.name.tabsequence= number或dw_1.modify(“columnname.tabsequence{=number}”)參數(shù)說明:columnname:要保護(hù)的列名;number:該列的taborder值(0-32000)。例如,要將列name設(shè)置為保護(hù)狀態(tài),相應(yīng)的代碼為:dw_1.object.name.tabsequence=0或者:dw_1.modify(“name.tabsequence=0”)方法三:利用修改列的edit屬性中的displayonly屬性值。語(yǔ)法為:dw_1.object.columnname.edit.displayonly=value 或 dw_1.modify(“columnname.edit.displayonly{=value}”)參數(shù)說明:columnname:要保護(hù)的列名;value:表示該列是否為只顯示(displayonly)狀態(tài),它有兩個(gè)取值:yes和no。yes表示不允許用戶輸入數(shù)據(jù)(只顯示):no則相反,默認(rèn)值是no。例如:如果要使列name設(shè)置為只顯示,可以在相應(yīng)事件的腳本中包含下列代碼:dw_1.object.name.edit.displayonly=yes或者:dw_1.modify(“name.edit.displayonly=yes”)用該方法時(shí)列雖不能被修改,但該列能得到焦點(diǎn),上述的其它方法則不能。三、有選擇的保護(hù)某些行上述方法將對(duì)datawindow的所有行起作用,但要想只保護(hù)其中的某些行,則需要用列的保護(hù)(protect)屬性(取值同上述方法二),但這是在建立datawindow時(shí)實(shí)現(xiàn)的。方法為:在datawindow畫板(painter)中,雙擊相應(yīng)的列,彈出column object 對(duì)話框,選取expressions頁(yè),在protect后的框中寫入if(條件表達(dá)式,1,0)。靈活運(yùn)用條件表達(dá)式可以獲得多種保護(hù)效果。(1)只允許修改新插入的行在一個(gè)datawindow中,有時(shí)會(huì)有這樣的需要:已有的數(shù)據(jù)只能瀏覽不允許修改,只有用戶新輸入的數(shù)據(jù)才允許修改,此時(shí)表達(dá)式為:if(isrownew(),0,1),或者if(not isrownew(),1,0)(2)某一列的保護(hù)情況要根據(jù)其它列的數(shù)據(jù)進(jìn)行如在員工工資管理中,只有工作年限大于5年時(shí)才允許輸入知識(shí)分子補(bǔ)貼(bt),則列bt的protect后的框中輸入:if(integer(mid(string(today(),’yyyymmdd’),1,4)) – integer(mid(workdata,1,4))>5,0,1)(3)要保護(hù)的行只有在執(zhí)行時(shí)才能確定,并且不斷變化例如在員工工資管理中,假設(shè)工資的修改只有該工資的輸入者是變化的,且一般情況下只有在執(zhí)行時(shí)才能確定條件需要一個(gè)變量,這就需要在建立datawindow時(shí)為其指定一個(gè)檢索數(shù)據(jù)的參數(shù)(如flag),然后在可修改列的protect后的框中輸入(user_name是該datawindow中的一列,代表輸入者的名稱):if (user_name=flag,0,1)在實(shí)際應(yīng)用時(shí)還要注意參數(shù)的實(shí)際類型。(4)在表中增加一個(gè)標(biāo)志列上述方法基本上均要求要保護(hù)的行有一定的規(guī)律可循,當(dāng)這些行沒有規(guī)律時(shí),可以在相應(yīng)的表中專門增加一個(gè)標(biāo)志列(設(shè)列名為flag),取值為1和0,然后在其它列的protect后的框中直接輸入flag的表達(dá)式。運(yùn)行時(shí)若該行的flag=1,在該行相應(yīng)的列處于保護(hù)狀態(tài)。對(duì)于標(biāo)志列值的修改,可以由數(shù)據(jù)管理員修改或根據(jù)某種情況在程序中靈活設(shè)置。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 平泉县| 阳高县| 洪湖市| 马山县| 闵行区| 阿鲁科尔沁旗| 禄劝| 临泉县| 汽车| 商河县| 岳普湖县| 巴彦县| 镇雄县| 金塔县| 临高县| 贵州省| 广南县| 凌云县| 荥阳市| 红河县| 阿坝县| 晴隆县| 清苑县| 屏东县| 绥阳县| 晋中市| 墨竹工卡县| 涟水县| 天津市| 尼玛县| 辉南县| 镇安县| 云林县| 枣阳市| 秦安县| 盱眙县| 古交市| 石屏县| 沛县| 大名县| 临朐县|