讓PowerBuilder制作查詢系統(tǒng)的界面更加酷
發(fā)表時(shí)間:2023-08-19 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]郵編:541002 桂林市師范學(xué)校微機(jī)室 黃勝錦在管理信息系統(tǒng)中,查詢系統(tǒng)占了相當(dāng)重要的地位(SQL的中文就是結(jié)構(gòu)化查詢語(yǔ)言),因?yàn)樗窍蛴脩糸_(kāi)放的,界面一定要友善,要讓別人一看就會(huì)操作。根據(jù)查詢結(jié)...
郵編:541002 桂林市師范學(xué)校微機(jī)室 黃勝錦
在管理信息系統(tǒng)中,查詢系統(tǒng)占了相當(dāng)重要的地位(SQL的中文就是結(jié)構(gòu)化查詢語(yǔ)言),因?yàn)樗窍蛴脩糸_(kāi)放的,界面一定要友善,要讓別人一看就會(huì)操作。
根據(jù)查詢結(jié)果記錄的個(gè)數(shù)來(lái)分,查詢可分為兩種:
1.唯一記錄查詢。如:從鍵盤(pán)輸入記錄號(hào),查詢?cè)撊说臋n案。
1. 模糊查詢,結(jié)果記錄可能很多。如下例電腦紅娘,用鼠標(biāo)做完選擇后按查詢,結(jié)果會(huì)有許多記錄號(hào)行。
3.若這時(shí)用鼠標(biāo)點(diǎn)擊某行記錄行,若旁邊出現(xiàn)該記錄號(hào)的具體詳細(xì)的個(gè)人檔案。用鼠標(biāo)點(diǎn)擊另一記錄行,則旁邊出現(xiàn)另一記錄號(hào)的具體詳細(xì)個(gè)人檔案,這叫記錄的連動(dòng)。
這里我們以制作婚姻介紹系統(tǒng)為例子,包括了難度較大的模糊查詢,多按鈕式選擇界面,記錄的連動(dòng)。
工作原理:通過(guò)自己定義變量的來(lái)傳遞選擇的條件,如:性別可定義變量sex,年齡可定義變量old。注意變量要先定義,后使用。
一. 多按鈕選擇界面的制作。在分組框內(nèi)多個(gè)Radio Button在同一時(shí)刻只能選中一個(gè)。
操作步驟:新建一名字為b2的窗口,窗口內(nèi)放置控件如下圖。定義變量(重要),按菜單Declare的Instance Variables,在對(duì)話框中定義實(shí)例變量,鍵盤(pán)輸入:
string sex
integer old
定義變量后查詢按鈕的Click事件中輸入如下腳本:
if rb_1.checked=true then
sex="w"
elseif rb_2.checked=true then
sex="m"
end if
if rb_3.checked=true then
old=30
elseif rb_4.checked=true then
old=40
elseif rb_5.checked=true then
old=50
end if
sle_1.text=sex
sle_2.text=string(old)
若運(yùn)行窗口(注意不是運(yùn)行應(yīng)用程序),選擇后按查詢按鈕,結(jié)果如下圖,則變量已被正確地自動(dòng)賦值。
二.?dāng)?shù)據(jù)的過(guò)濾。接下來(lái)要進(jìn)行過(guò)濾操作,即將變量傳給SQL語(yǔ)言中的Where語(yǔ)句,在哪里寫(xiě)SQL語(yǔ)句呢?在數(shù)據(jù)窗口下方的Where標(biāo)簽頁(yè)里,可以自動(dòng)生成SQL的過(guò)濾語(yǔ)句。
在SQL anywhere里制作建立并輸入下表,表名為aaa1,
表頭:
字段 類(lèi)型 長(zhǎng)度 標(biāo)題頭
id char 10 編號(hào)
name char 10 姓名
old integer 年齡
sex char 10 性別
status char 30 狀況
表aaa1的內(nèi)容:
id name old sex status
1 小王 23 女 導(dǎo)游會(huì)英語(yǔ)
2 小李 34 男 個(gè)體收入高
3 小林 45 女 會(huì)計(jì)
4 小黃 27 男 電腦專(zhuān)家
5 小鄭 38 女 教師
在數(shù)據(jù)窗口中新建立兩個(gè)數(shù)據(jù)窗口:數(shù)據(jù)來(lái)源都為aaa1表,要求如下:
數(shù)據(jù)窗口名 字段 數(shù)據(jù)源形式 顯示格式 SQL過(guò)濾語(yǔ)句
Ad1 Id,name,old,sex SQL Select 表格 "aaa1"."sex"=:sex and"aaa1"."old"<=:old
Ad2 Id,name,old,sex,status SQL Select 自由格式 "aaa1"."id"=:id
注意寫(xiě)SQL過(guò)濾語(yǔ)句是:在數(shù)據(jù)窗口中,先點(diǎn)中Id和 name兩個(gè)字段,在窗口下方按Where標(biāo)簽頁(yè),按Colume,并在Cloume的下拉條中選中"aaa1"."sex",在Valua的一欄中填入 :sex,注意,這里的sex前面有一冒號(hào),再在Cloume的下拉條中選中"aaa1". "old",在Operator欄選<=,在Valua的一欄中填入 :old,按窗口上方的Desion菜單,選Retriveal Arguments,在Name一欄填sex,注意,這里的sex前面沒(méi)有冒號(hào),type一欄選String,再在Name一欄的下一行填old,type一欄選number。同時(shí),為讓個(gè)人資料的表格數(shù)據(jù)按年齡升序排列,在窗口下方按Sort標(biāo)簽頁(yè),將左邊的ID字段拖到右邊。按Syntax標(biāo)簽頁(yè)可看到自動(dòng)生成的SQL語(yǔ)句。
SELECT "aaa1"."id",
"aaa1"."name",
"aaa1"."old",
"aaa1"."sex"
FROM "aaa1"
WHERE ( "aaa1"."sex" = :sex ) AND
( "aaa1"."old" <= :old )
ORDER BY "aaa1"."old" ASC
這里SQL語(yǔ)句的意思是選取性別=變量sex,年齡<=變量old的記錄。只顯示幾個(gè)字段。盡管在Pb中,這些語(yǔ)句是通過(guò)拖動(dòng)圖標(biāo)自動(dòng)生成,但看一看,了解其工作原理還是有好處的。
三.?dāng)?shù)據(jù)的連動(dòng).可以用鼠標(biāo)讓記錄的連動(dòng)的窗口制作如下圖,這里主要用到函數(shù)getitemString(getrow(),1),它可取得雙擊鼠標(biāo)當(dāng)前行的左邊第一個(gè)字符串,即數(shù)據(jù)窗口一內(nèi)當(dāng)前行id字段的值,并賦給實(shí)例變量tttt,tttt再傳給數(shù)據(jù)窗口二的SQL的過(guò)濾語(yǔ)句,Where id=:id,就可在數(shù)據(jù)窗口二中顯示id=tttt的記錄。在這兩個(gè)數(shù)據(jù)窗口之間,變量tttt從數(shù)據(jù)窗口一跑到數(shù)據(jù)窗口二,起到象橋梁般的連接作用。數(shù)據(jù)窗口一即dw_1的鼠標(biāo)單擊事件的腳本如下:
ttttt=dw_1.getitemString (getrow(),1)
sle_1.text=ttttt
b4.dw_1.settransobject(sqlca)
b4.dw_1.retrieve(b3.ttttt)
dw_2.settransobject(sqlca)
dw_2.retrieve(ttttt)