999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

PowerBuilder中數(shù)據(jù)窗口之屬性編程技術(shù)

2008-12-31 00:00:00秦飛舟
電腦知識與技術(shù) 2008年19期

摘要:數(shù)據(jù)窗口對象及其所有實體(如列、文本、圖形、圖像等)都有一組屬性值。本文主要介紹了如何編寫代碼查看和修改這些屬性,以達到在程序運行過程中動態(tài)修改數(shù)據(jù)窗口的數(shù)據(jù)源和外觀界面的目的。

關(guān)鍵詞:PowerBuilder;數(shù)據(jù)窗口;getsqlselect函數(shù);describe函數(shù);modify函數(shù)

中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)19-30063-02

How to Script about Datawindow in Languages of PowerBuilder

QIN Fei-zhou

(College of Physic Electronic Information, Ningxia University, Yinchuan 750021, China)

Abstract: Each column and graphic object in the DataWindow has a set of properties, which are listed in the DataWindow Reference. You specify one or more properties as a string and Describe returns the values of the properties.

Key words: PowerBuilder; DataWindow; Function of getsqlselect; describe and modify

數(shù)據(jù)庫類應(yīng)用系統(tǒng)的開發(fā),主要目的是組織處理數(shù)據(jù)。而數(shù)據(jù)窗口對象是PowerBuilder提供給開發(fā)人員一個操作數(shù)據(jù)的強有力的工具,也是PowerBuilder與其他面向?qū)ο蟮臄?shù)據(jù)庫應(yīng)用前端開發(fā)工具的最主要的區(qū)別之一。通過數(shù)據(jù)窗口控件,開發(fā)人員可以查詢并修改數(shù)據(jù)、改變數(shù)據(jù)的表現(xiàn)形式、處理錯誤及共享數(shù)據(jù)等。

數(shù)據(jù)庫窗口對象是用于查詢、顯示和維護來自關(guān)系型數(shù)據(jù)庫或其他數(shù)據(jù)源(如Excel或dBASE文件)數(shù)據(jù)的對象。在數(shù)據(jù)窗口對象中可以定義數(shù)據(jù)的顯示格式、顯示風格和其他數(shù)據(jù)屬性,使數(shù)據(jù)對用戶更加直觀和更有意義。開發(fā)人員可以通過定義數(shù)據(jù)窗口對象來指定數(shù)據(jù)源、表現(xiàn)風格以及其他數(shù)據(jù)屬性,但利用編程對數(shù)據(jù)窗口進行修改則更應(yīng)該是開發(fā)者所必需掌握的技術(shù)。下面將主要介紹幾種關(guān)于數(shù)據(jù)窗口的編程方法。

1 動態(tài)修改數(shù)據(jù)窗口對象的數(shù)據(jù)源

當我們建立一個數(shù)據(jù)窗口時必須確定其數(shù)據(jù)源,一旦這個數(shù)據(jù)窗口建立完畢后,它的數(shù)據(jù)源也就確定了。如果想改變改變數(shù)據(jù)源,可用以下兩種方法實現(xiàn)。

方法1:

string d_name

dw_1.dataobject=d_name

dw_1.settransobject(sqlca);

這段代碼可以動態(tài)地修改數(shù)據(jù)窗口控件dw_1所關(guān)聯(lián)的數(shù)據(jù)窗口對象。數(shù)據(jù)窗口對象的名稱放在字符串變量d_name中,數(shù)據(jù)窗口控件dw_1所關(guān)聯(lián)的數(shù)據(jù)窗口對象隨變量d_name的變化而變。

方法2:

string OldSyn, NewSyn

//獲取與數(shù)據(jù)窗口dw_emp相關(guān)的SQL SELECT語句

OldSyn = dw_emp.GetSQLSelect()

//指定新的SQL SELECT語句

NewSyn = 'SELECT employee.EMP_Name FROM employee WHERE salary < 100000'

IF dw_emp.Retrieve() = 0 THEN

dw_emp.SetSQLSelect(NewSyn) //為dw_emp設(shè)置新的SQL SELECT語句

dw_emp.Retrieve()

END IF

用上述方法可以為數(shù)據(jù)窗口改變SQL SELECT語句。這兩個方法都可以改變數(shù)據(jù)窗口的數(shù)據(jù)源,方法一的代價是需要作多個數(shù)據(jù)窗口,方法二的適用范圍是用戶對數(shù)據(jù)進行隱蔽操作。開發(fā)人員可根據(jù)實際需要進行選擇使用。

2 修改數(shù)據(jù)窗口所包含對象的屬性

數(shù)據(jù)窗口對象屬性主要用來存儲控制數(shù)據(jù)窗口對象行為的有關(guān)信息。開發(fā)人員通過修改這些內(nèi)容可以給用戶提供一個外形動態(tài)變化的數(shù)據(jù)窗口,而無須做多個類似的數(shù)據(jù)窗口。這里所講的屬性不是數(shù)據(jù)窗口控件的屬性,而是在數(shù)據(jù)窗口控件中所顯示的對象(如column、text)的屬性。在數(shù)據(jù)窗口畫板中可以確定數(shù)據(jù)窗口對象屬性,也在程序代碼中修改對象的屬性值。

2.1 獲得對象的屬性表達式

Describ函數(shù)主要是用于獲取數(shù)據(jù)窗口對象或非數(shù)據(jù)窗口對象中的對象屬性。數(shù)據(jù)窗口中的每個對象(如column、text)都有一個屬性集。將一個或多個屬性可設(shè)定成一個字符串,Describe返回這個字符串的內(nèi)容。屬性列表中屬性的格式:對象名稱.屬性。參看以下例子:

string data_type

int data_value

//返回數(shù)據(jù)窗口dw_1的列對象salary的數(shù)據(jù)類型

data_type=dw_1.describe(\"salary.coltype\")

//如果列對象salary的數(shù)據(jù)類型是number(數(shù)值型)

if data_type=\"number\" then

//將第一行salary列的值復制到變量data_value

data_value=dw_1.getitemnumber(1,\"salary\")

end if

如果對象是列,可指定列名或指定以'#'開始的列號,數(shù)據(jù)窗口畫板可自動給出列的名字和列的標識。下面兩條語句功能相同,都是獲取當前列的數(shù)據(jù)類型。

String s,t

s=this.describe('#' +string(this.getcolumn())+'.coltype')

t=this.describe(this.getcolumnname()+'.coltype')

2.2 Modify函數(shù)的使用

Modify函數(shù)用于修改一個數(shù)據(jù)窗口對象的屬性值,通過修改屬性值,通過說明可以修改數(shù)據(jù)窗口對象的外觀、行為和數(shù)據(jù)源信息,還可為數(shù)據(jù)窗口增加或移走對象。Modify函數(shù)一般用于下列內(nèi)容的修改:

1)修改顏色、設(shè)置字體、對象的其他外觀屬性。

2)在數(shù)據(jù)窗口中修改不同表的update狀態(tài),可以同時修改多個表。

3)修改數(shù)據(jù)窗口對象的SELECT 和WHERE子句。

4)調(diào)整Query 模式或Prompt For Criteria,使用戶可以規(guī)定所需要的數(shù)據(jù)。

5)修改Retrieve Only As Needed的狀態(tài)。

6)修改數(shù)據(jù)窗口的數(shù)據(jù)源

7)控制Print Preview的顯示。

8)在數(shù)據(jù)窗口中增加和刪除對象(如lines 或bitmaps)

PowerBuilder包含了許多修改數(shù)據(jù)窗口屬性的函數(shù)。在使用Modify之前,必須檢查用于對象的控件上的數(shù)據(jù)窗口的函數(shù)列表,確保產(chǎn)生修改的函數(shù)是存在的。

例:數(shù)據(jù)窗口對象關(guān)聯(lián)了department和empolyee兩個表,修改department表時,沒有設(shè)置狀態(tài)標志,隨后employee表被修改。如果所有有修改都成功,update命令設(shè)置標志位,并使用commit命令提交這個修改。

integer rc

string err

// 修改department,如同在數(shù)據(jù)窗口畫板中一樣

rc = dw_1.Update(TRUE, FALSE) //

IF rc = 1 THEN //如果表department已被更新成功

//禁止表department的列新

dw_1.Modify(\"department_dept_name.Update = No\")

dw_1.Modify(\"department_dept_id.Update = No\")

dw_1.Modify(\"department_dept_id.Key = No\")

// 使employee表成為可更新的

dw_1.Modify(\"DataWindow.Table.UpdateTable = ~\"employee~\"\")

//返回對表employee列的修改

dw_1.Modify(\"employee_emp_id.Update = Yes\")

dw_1.Modify(\"employee_emp_fname.Update = Yes\")

dw_1.Modify(\"employee_emp_lname.Update = Yes\")

dw_1.Modify(\"employee_emp_id.Key = Yes\")

//更新表employee

rc = dw_1.Update()

IF rc = 1 THEN //兩個表都更新成功

COMMIT USING SQLCA;

ELSE

ROLLBACK USING SQLCA; // 表employee更新失敗

MessageBox(\"提示信息\",\"表employee更新失敗!\")

END IF

ELSE//表department更新失敗

ROLLBACK USING SQLCA;

MessageBox(\"提示信息\",\"表department更新失敗!\")

END IF

參考文獻:

[1]王姍,薩師煊. 數(shù)據(jù)庫系統(tǒng)概論[M]. 4版. 高等教育出版社,2006.

[2]高守傳,劉小靜. 使用嵌入式SQL訪問數(shù)據(jù)庫[J]. 電腦編程技巧與維護,2007(2).

[3]吳飛,王昕. 嵌入式移動數(shù)據(jù)庫SQL SERVER for Windows CE的應(yīng)用[J]. 微計算機信息,2006(7).

[4]張繼德,史寶英. PowerBulider大型結(jié)果集的處理[J]. 電腦知識與技術(shù),2006(11).

[5]崔巍. PowerBuilder7.0應(yīng)用技術(shù)[M]. 清華大學出版社,2000.

注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文

主站蜘蛛池模板: 好久久免费视频高清| 午夜日韩久久影院| 日韩成人午夜| 色综合日本| julia中文字幕久久亚洲| 日韩精品久久久久久久电影蜜臀| 色久综合在线| 97精品伊人久久大香线蕉| 国产精品短篇二区| 欧美一级高清视频在线播放| 992tv国产人成在线观看| 亚洲高清国产拍精品26u| 91视频青青草| 日韩精品高清自在线| 欧美黄网在线| 免费A∨中文乱码专区| 色婷婷在线影院| 国产91丝袜在线播放动漫| 国产剧情一区二区| 综合五月天网| 国产精品密蕾丝视频| 国产精品吹潮在线观看中文| 国产精品99在线观看| 一级毛片免费高清视频| 国产精品va免费视频| 国产精品主播| 亚洲国产成熟视频在线多多| 五月天久久婷婷| 国产香蕉在线| 国产微拍一区二区三区四区| 国产无吗一区二区三区在线欢| 国产在线91在线电影| 亚洲中字无码AV电影在线观看| 久久综合色天堂av| 亚洲欧美日韩动漫| 伊人丁香五月天久久综合 | 色综合a怡红院怡红院首页| 91久久偷偷做嫩草影院电| 国产一区二区人大臿蕉香蕉| 九九久久99精品| 久草性视频| 精品小视频在线观看| 亚洲第一视频免费在线| 国产香蕉国产精品偷在线观看| 日韩无码一二三区| 亚洲av无码人妻| 免费在线国产一区二区三区精品| 亚洲乱码视频| www.youjizz.com久久| 亚洲高清中文字幕| 日本成人精品视频| 国产精品人成在线播放| 国产精品xxx| P尤物久久99国产综合精品| 国产黄网站在线观看| 欧美激情视频一区二区三区免费| 成人国产三级在线播放| 国产欧美又粗又猛又爽老| av天堂最新版在线| 欧美h在线观看| 国产人碰人摸人爱免费视频| 一级一级特黄女人精品毛片| 国产经典在线观看一区| 青青久在线视频免费观看| 九九免费观看全部免费视频| 伊人久久精品无码麻豆精品| 97视频精品全国免费观看| 欧美成人看片一区二区三区 | 色老头综合网| 亚洲第一成年人网站| 国产精品久久自在自线观看| 成人国产免费| 成人综合久久综合| 无码精品福利一区二区三区| 色成人综合| 国产欧美精品一区aⅴ影院| 国产一级小视频| 99精品影院| 中文字幕资源站| 日韩欧美国产三级| 亚洲色精品国产一区二区三区| 婷五月综合|