PB數據窗口對象之信息修改

〓修改數據窗口信息
爲了在運行時修改數據窗口對象特徵,應該使用Modify函數,而不是直接訪問語法。該函數的語法如下:
dwcontrol.Modify(modstring)
其中,dwcontrol是數據窗口控件名稱,既可以是數據窗口也可以是子數據窗口,還可以是datastore對象。modstring是修改字符串,用來指示要修改哪些對象的哪些屬性。如果修改成功函數則返回空字符串,如果修改的語法錯誤則返回對錯誤的描述,格式是:line n Column incorrect syntax,這裏是第n列是從modstring開始計數的錯誤位置。
數據窗口對象可以在運行時使用合適的語法修改其外觀、行爲和數據庫信息。通過提供完整的對象規範,甚至可以在數據窗口對象內部創建和刪除對象。
使用modstring參數可以指定CreateDestroyAttribute alteration三種類型的語句。

創建對象
可以使用下面的語法來添加對象(如文本、計算域以及位圖):
Create object(settings)
其中,settings爲將要創建的對象定義的一組特性和值,定義對象時,用戶必須提供足夠的信息。
想要得到某個對象的正確語法的最好的方法就是導出一個包含對象的簡單的數據窗口。然後就能把對象的語法剪切並粘貼到應用程序中。另一種辦法是使用那些能成爲數據窗口內特定對象顯示語法的許多工具之一(它們正變得越來越商業化)
下面的示例用來說明這種格式,假設用戶剛剛從頭開始動態地創建了一個完全新的數據窗口,現在需要在標題頭放置一個公司標誌,其語法是:
string ls_modify,ls_result
ls_modify = "Create bitmap(band = background filename = 'c:\logo.bmp' x ='60' y = '8' width = '1308' height = '513' border = '0' name = logo)"
ls_result = dw_1.modify(ls_modify)
if ls_result <> "" then
messagebox("
提示",ls_result)
end if
這段代碼爲用戶剛剛創建的報表數據窗口在恰當的位置創建標識。

刪除對象
除了可以在數據窗口內創建對象外,還可以使用下面語法刪除對象:
Destroy [Column] object
這裏的object是數據窗口對象內要刪除對象的名字。若要把列和列的數據從緩衝區中刪除,需要指定Column關鍵字。
例如,上一個示例中向動態創建的報表中添加了一個公司標誌。如果用戶把這一功能作爲運行時的選項,比如說通過複選框,那麼就不僅需要能夠創建對象而且還需要刪除該對象。下面是用於刪除的代碼:
string ls_result
ls_result = dw_1.modify("destroy logo")
if ls_result <> "" then
messagebox("
錯誤",ls_result)
end if
下面的示例使用這種modify格式刪除列及其相關的標籤:

string ls_result
ls_result = dw_1.modify("destory column salary destroy salary_t")
if ls_result <> "" then
messagebox("
錯誤",ls_result)
end if

特性修改
Attribute alteration
類型的語句格式是modify三種格式中最常用的一種,這種語法的格式如下:
objectname.attribute = value
按照被影響的attribute的不同,value可以是下面類型中的任何一種:
a)
常量:指簡單的、不使用表達式的特性修改值。如:

columnname.band = footer
b)
帶引號的常量:也是指簡單的特性修改值。如:
columname.height = '65'
c)
表達式:由一個默認值及其後的表達式組成,它的返回值與特性的數據類型相同。如:
'167725~tif(emp_status=~'A~',255,16777215)'
請注意這種表達式的格式。整個表達式括在單引號中,表達式需要缺省值,而且該值通過Tab(~t)與餘下的表達式隔開。表達式返回0或者1,它們是特性的有效值。
在實際使用時,這種格式的語句經常簡單寫成屬性訪問格式。如:
dw_1.modify("oval_1.background.color = rgb(255,0,128)")
和以下直接屬性訪問方式是等價的:
dw_1.object.oval_1.background.color = rgb(255,0,128)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章