<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      讓PowerBuilder制作查詢系統的界面更加酷

      [摘要]郵編:541002 桂林市師范學校微機室 黃勝錦在管理信息系統中,查詢系統占了相當重要的地位(SQL的中文就是結構化查詢語言),因為它是向用戶開放的,界面一定要友善,要讓別人一看就會操作。根據查詢結...
      郵編:541002 桂林市師范學校微機室 黃勝錦

      在管理信息系統中,查詢系統占了相當重要的地位(SQL的中文就是結構化查詢語言),因為它是向用戶開放的,界面一定要友善,要讓別人一看就會操作。
      根據查詢結果記錄的個數來分,查詢可分為兩種:
      1.唯一記錄查詢。如:從鍵盤輸入記錄號,查詢該人的檔案。
      1. 模糊查詢,結果記錄可能很多。如下例電腦紅娘,用鼠標做完選擇后按查詢,結果會有許多記錄號行。
      3.若這時用鼠標點擊某行記錄行,若旁邊出現該記錄號的具體詳細的個人檔案。用鼠標點擊另一記錄行,則旁邊出現另一記錄號的具體詳細個人檔案,這叫記錄的連動。
      這里我們以制作婚姻介紹系統為例子,包括了難度較大的模糊查詢,多按鈕式選擇界面,記錄的連動。
      工作原理:通過自己定義變量的來傳遞選擇的條件,如:性別可定義變量sex,年齡可定義變量old。注意變量要先定義,后使用。
      一. 多按鈕選擇界面的制作。在分組框內多個Radio Button在同一時刻只能選中一個。
      操作步驟:新建一名字為b2的窗口,窗口內放置控件如下圖。定義變量(重要),按菜單Declare的Instance Variables,在對話框中定義實例變量,鍵盤輸入:
      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)
      若運行窗口(注意不是運行應用程序),選擇后按查詢按鈕,結果如下圖,則變量已被正確地自動賦值。

      二.數據的過濾。接下來要進行過濾操作,即將變量傳給SQL語言中的Where語句,在哪里寫SQL語句呢?在數據窗口下方的Where標簽頁里,可以自動生成SQL的過濾語句。
      在SQL anywhere里制作建立并輸入下表,表名為aaa1,
      表頭:
      字段 類型 長度 標題頭
      id char 10 編號
      name char 10 姓名
      old integer 年齡
      sex char 10 性別
      status char 30 狀況
      表aaa1的內容:
      id name old sex status
      1 小王 23 女 導游會英語
      2 小李 34 男 個體收入高
      3 小林 45 女 會計
      4 小黃 27 男 電腦專家
      5 小鄭 38 女 教師

      在數據窗口中新建立兩個數據窗口:數據來源都為aaa1表,要求如下:
      數據窗口名 字段 數據源形式 顯示格式 SQL過濾語句
      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

      注意寫SQL過濾語句是:在數據窗口中,先點中Id和 name兩個字段,在窗口下方按Where標簽頁,按Colume,并在Cloume的下拉條中選中"aaa1"."sex",在Valua的一欄中填入 :sex,注意,這里的sex前面有一冒號,再在Cloume的下拉條中選中"aaa1". "old",在Operator欄選<=,在Valua的一欄中填入 :old,按窗口上方的Desion菜單,選Retriveal Arguments,在Name一欄填sex,注意,這里的sex前面沒有冒號,type一欄選String,再在Name一欄的下一行填old,type一欄選number。同時,為讓個人資料的表格數據按年齡升序排列,在窗口下方按Sort標簽頁,將左邊的ID字段拖到右邊。按Syntax標簽頁可看到自動生成的SQL語句。
      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語句的意思是選取性別=變量sex,年齡<=變量old的記錄。只顯示幾個字段。盡管在Pb中,這些語句是通過拖動圖標自動生成,但看一看,了解其工作原理還是有好處的。


      三.數據的連動.可以用鼠標讓記錄的連動的窗口制作如下圖,這里主要用到函數getitemString(getrow(),1),它可取得雙擊鼠標當前行的左邊第一個字符串,即數據窗口一內當前行id字段的值,并賦給實例變量tttt,tttt再傳給數據窗口二的SQL的過濾語句,Where id=:id,就可在數據窗口二中顯示id=tttt的記錄。在這兩個數據窗口之間,變量tttt從數據窗口一跑到數據窗口二,起到象橋梁般的連接作用。數據窗口一即dw_1的鼠標單擊事件的腳本如下:

      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)


      日韩精品一区二区三区高清