PB判斷資料視窗資料是否更改及原始值與當前值

2021-08-09 11:59:00 字數 1527 閱讀 2960

dwcontrol.getitemstatus ( row, column, primary! )可以獲取該緩衝區內指定單元的狀態,當引數column為0時,

表示讀取整個列的修改狀態。有以下狀態。  notmodified! :指定單元的資料和原始資料相同,沒有修改過。   

datamodified!:指定單元的資料和原始資料不同,修改過。   

new!:該資料行是新增加的,但還沒有在該行上輸入資料。    

newmodified!:該資料行是新增加的,並且已經在該行上錄入了資料。      

dwcontrol.getitemstring(   row,   column     )      引數       

dwcontrol:資料視窗控制項名 

row:long型,要得到資料值的單元所在的行         

column:要得到資料值的單元所在的列,該列的資料型別必須是string型別。column引數可以是列號(integer型別),也可以是列名(string型別)。       

dwbuffer:dwbuffer列舉型別,指示想得到資料視窗哪個緩衝區的值。有效取值為:             

primary!   -   預設值,得到主緩衝區中的資料(未被刪除或過濾掉的資料)            

delete!   -   得到刪除緩衝區中的資料(從資料視窗中已經刪除的資料)            

filter!   -   得到過濾緩衝區中的資料(從資料視窗中已經過濾掉的資料)         

originalvalue:boolean型別,指示要得到指定單元(由行/列值決定)的原始值還是當前值。有效取值為:           

true:得到原始值(從資料庫中檢索出的初始值,該值不受當前修改的影響)          

false:該引數的預設值,表示函式將得到指定單元的當前值。            

返回值string。函式執行成功時,返回指定單元的string型資料值;如果指定單元的資料值為null,則函式返回null;如果發生錯誤,函式返回空字串("");

如果任何引數的值為null,則getitemstring()函式返回null。

**(未定義變數)  li_colcount = long(dw_1.describe("datawindow.column.count"))//取列數   

for li_i = 1 to li_colcount        

ls_colname = dw_1.describe('#' + string(li_i) + '.name')  

i = dw_1.getitemstring(dw_1.getrow(),ls_colname,primary!,true) //原始值   

j = dw_1.getitemstring(dw_1.getrow(),ls_colname,primary!,false)   //當前值 

if  i < > j then   

messagebox(『』,』資料修改過』) 

end if 

next

PB資料視窗

資料視窗小結 資料視窗進行刪除資料時 int zgxx id integer sle 3.text prepare sqlsa from delete from zgxx where id execute sqlsa using zg id2 messagebox 提示 刪除完畢 應用場景 主要注意...

PB判斷是否有重複資料

使用update函式儲存資料之前,通常要判斷資料視窗中是否有主鍵重複的資料,如果有重複則不允許提交。如果我們不編寫程式判斷,資料視窗本身業可以進行校驗,但是顯示的都是英文的提示資訊。為此,我們通常在dberror事件中返回1以遮蔽該英文的提示資訊,然後編寫程式進行主鍵重複判斷。進行主鍵重複判斷,實現...

PB判斷是否有重複資料

使用update函式儲存資料之前,通常要判斷資料視窗中是否有主鍵重複的資料,如果有重複則不允許提交。如果我們不編寫程式判斷,資料視窗本身業可以進行校驗,但是顯示的都是英文的提示資訊。為此,我們通常在dberror事件中返回1以遮蔽該英文的提示資訊,然後編寫程式進行主鍵重複判斷。進行主鍵重複判斷,實現...