PB判斷資料視窗資料是否更改及原始值與當前值
dwcontrol.GetItemStatus ( row, column, Primary! )可以獲取該緩衝區內指定單元的狀態,當引數column為0時,
表示讀取整個列的修改狀態。有以下狀態。 NotModified! :指定單元的資料和原始資料相同,沒有修改過。
DataModified!:指定單元的資料和原始資料不同,修改過。
New!:該資料行是新增加的,但還沒有在該行上輸入資料。
NewModified!:該資料行是新增加的,並且已經在該行上錄入了資料。
dwcontrol.GetItemString( row, column {, dwbuffer, originalvalue } ) 引數
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