Developer/
是ORACLE 公 司 推 出 的 集 成 化 軟 件 開 發 和 運 行 環 境
它 主 要 包 括
個 集 成 化 應 用 開 發 工 具
Forms( 數 據 表 格 生 成 工 具)
Reports( 數 據 統 計 及 報 表 生 成 工 具)
Graphics( 數 據 圖 形 生 成 工 具)
筆 者 在 項 目 開 發 中 曾 以Developer/
作 為 前 台 開 發 工 具
本 文 將 以Forms 為 例 介 紹 一 些Forms 的 開 發 技 巧
在 開 發 應 用 中
經 常 用 到List_Item 控 件
此 控 件 是 列 表 框
可 以 讓 用 戶 在 多 個 備 選 值 中 進 行 選 擇
列 表 框 的 加 載 有 兩 種 方 式
一 種 是 固 定 的
另 一 種 是 動 態 的
. 固 定 式
即 列 表 框 中 的 數 據 是 固 定 的
這 種 方 式 比 較 簡 單
無 需 編 程 既 可 實 現
假 設 有 一 個List_Item 控 件
且 命 名 為List
如 圖
所 示
在List
的 屬 性List elements 中 填 加 要 選 擇 的 數 據 項
即 可 達 到 目 的
當 開 發 人 員 對 數 據 庫 較 熟 悉 或 數 據 庫 表 中 的 數 據 項 比 較 固 定 時
可 采 用 此 種 方 式
. 動 態 式
即 列 表 框 中 的 值 會 隨 著 數 據 庫 表 中 數 據 項 的 變 化 而 變 化
此 種 方 式 的 通 用 性 較 強
可 以 滿 足 用 戶 的 需 要
在 實 際 應 用 中
較 常 用 的 是 此 種 通 用 性 的 方 式
本 文 將 舉 一 個 實 例
來 說 明 此 種 方 法 的 實 現
假 設 有 一 個 產 品 銷 售 數 據 表SALES
並 含 有 時 間(Time)
產 品 名 稱(Name)
銷 售 量(Amount) 三 個 字 段
如 表
所 示
時 間 產 品 名 稱 銷 售 量
彩 電
彩 電
冰 箱
冰 箱
空 調
空 調
表
為 了 分 析 需 要
現 要 求 用 列 表 框 把 所 有 產 品 的 名 稱 顯 示 出 來
我 們 建 立 一 個 過 程pl
並 用 游 標 來 實 現 此 功 能
過 程pl 的 程 序 代 碼 如 下
PROCEDURE pl IS
cursor c
is
select name from sales;
cnt number;
i number;
tname sales
name%type;
BEGIN
clear_list(
list
);
open c
;
select count(distinct name) into cnt from sales;
for i in t loop
fetch c
into tname;
add_list_element(
list
i
tname
tname);
end loop;
delete_list_element(
list
cnt+
);
close c
;
END;
在Forms 中 設 置WHEN_NEW_FORM_INSTANCE 觸 發 器 並 調 用 此 過 程
即 完 成 了 此 工 作
其 結 果 顯 示 如 圖
所 示
From:http://tw.wingwit.com/Article/program/Oracle/201311/18595.html