Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1995254
  • 博文数量: 1647
  • 博客积分: 80000
  • 博客等级: 元帅
  • 技术积分: 9980
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 15:15
文章分类

全部博文(1647)

文章存档

2011年(1)

2008年(1646)

我的朋友

分类:

2008-10-28 18:34:44


  Developer/2000 是ORACLE 公 司 推 出 的 集 成 化 软 件 开 发 和 运 行 环 境。 它 主 要 包 括3 个 集 成 化 应 用 开 发 工 具:Forms( 数 据 表 格 生 成 工 具)、Reports( 数 据 统 计 及 报 表 生 成 工 具)、Graphics( 数 据 图 形 生 成 工 具)。 笔 者 在 项 目 开 发 中 曾 以Developer/2000 作 为 前 台 开 发 工 具, 本 文 将 以Forms 为 例 介 绍 一 些Forms 的 开 发 技 巧。
  ---- 在 开 发 应 用 中, 经 常 用 到List_Item 控 件, 此 控 件 是 列 表 框, 可 以 让 用 户 在 多 个 备 选 值 中 进 行 选 择。 列 表 框 的 加 载 有 两 种 方 式。 一 种 是 固 定 的, 另 一 种 是 动 态 的。
  
  ---- 1 . 固 定 式。 即 列 表 框 中 的 数 据 是 固 定 的。 这 种 方 式 比 较 简 单, 无 需 编 程 既 可 实 现。 假 设 有 一 个List_Item 控 件, 且 命 名 为List1, 如 图1 所 示。 在List1 的 属 性List elements 中 填 加 要 选 择 的 数 据 项, 即 可 达 到 目 的。 当 开 发 人 员 对 数 据 库 较 熟 悉 或 数 据 库 表 中 的 数 据 项 比 较 固 定 时, 可 采 用 此 种 方 式。
  
  ---- 2 . 动 态 式。 即 列 表 框 中 的 值 会 随 着 数 据 库 表 中 数 据 项 的 变 化 而 变 化。 此 种 方 式 的 通 用 性 较 强, 可 以 满 足 用 户 的 需 要。 在 实 际 应 用 中, 较 常 用 的 是 此 种 通 用 性 的 方 式。 本 文 将 举 一 个 实 例, 来 说 明 此 种 方 法 的 实 现。
  
  ---- 假 设 有 一 个 产 品 销 售 数 据 表SALES, 并 含 有 时 间(Time), 产 品 名 称(Name), 销 售 量(Amount) 三 个 字 段, 如 表1 所 示。
  
   时 间 产 品 名 称 销 售 量
  1997 彩 电 100
  1998 彩 电 120
  1997 冰 箱 90
  1998 冰 箱 80
  1997 空 调 110
  1998 空 调 130
  表1
  
  ---- 为 了 分 析 需 要, 现 要 求 用 列 表 框 把 所 有 产 品 的 名 称 显 示 出 来。 我 们 建 立 一 个 过 程pl, 并 用 游 标 来 实 现 此 功 能。 过 程pl 的 程 序 代 码 如 下:
  
  PROCEDURE pl IS
   cursor c1 is
   select name from sales;
   cnt number;
   i number;
   tname sales.name%type;
  BEGIN
   clear_list('list1');
   open c1;
  select count(distinct name) into cnt from sales;
  for i in 1..cnt loop
  fetch c1 into tname;
  add_list_element('list1',i,tname,tname);
  end loop;
  delete_list_element('list1',cnt+1);
  close c1;
  END;
  
  ---- 在Forms 中 设 置WHEN_NEW_FORM_INSTANCE 触 发 器 并 调 用 此 过 程, 即 完 成 了 此 工 作。 其 结 果 显 示 如 图2 所 示。
  
【责编:admin】

--------------------next---------------------

阅读(666) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~