知识大全 Oracle DP2000 应用技巧
Posted 单位
篇首语:于今腐草无萤火,终古垂杨有暮鸦。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Oracle DP2000 应用技巧相关的知识,希望对你有一定的参考价值。
Oracle DP2000 应用技巧 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Oracle 公 司 作 为 全 球 最 大 的 数 据 库 厂 商 之 一 其 数 据 库 系 统 是 优 秀 的 数 据 库 管 理 系 统 在 大 型 系 统 象 保 险 金 融 等 部 门 的 广 泛 应 用 是 众 所 周 知 的 但 其 数 据 库 前 端 开 发 工 具DEVEPER/ 在 业 界 中 介 绍 的 却 相 对 较 少 其 实 其 开 发 工 具Developer/ 也 是 一 功 能 强 大 的 方 便 灵 活 的 开 发 工 具 Developer/ 在 构 建 企 业 管 理 信 息 系 统 上 其 编 程 简 便 开 发 周 期 短 维 护 方 便 等 优 势 更 是 软 件 开 发 商 所 中 意 之 处 笔 者 所 在 公 司 在 开 发 社 保 系 统 中 就 采 用Developer/ 在 辽 宁 省 的 应 用 中 取 得 良 好 效 果 下 面 就 本 人 在Developer/ 开 发 社 保 系 统 中 所 遇 问 题 与 各 位 进 行 交 流 Developer/ FROMS 中 的 宏 代 换 在 早 期FOXPRO 数 据 库 编 程 中 经 常 用 到 宏 代 换 功 能 但 在FORMS 中 却 没 有 此 功 能 象 & * 等 在 编 程 中 经 常 用 到 的 在FORMS 中 只 得 一 行 一 行 代 码 的 写 但 后 来 发 现FORMS 中 也 有 类 似 功 能 用NAME_IN() COPY() 可 以 实 现 类 似 的 功 能 Name_in() 用 于 取 出 参 数 名 代 表 的 对 象 了 数 值 而COPY() 把 一 个 参 数 值 传 递 给 另 一 参 数 值 表 示 的 对 象 的 如 下 例 FORM 结 构 块B 项 L L L L L L 在 作 录 入 程 序 时 要 对L L 项 清 零 DELCATE strItemName varchar ( ); BEGIN for I in … loop strItemName:= :b l ||to_char(i); copy(null strItemNmae); end loop; END; 对 于NAME_IN 的 应 用 可 能 更 多 一 些 笔 者 在 做 社 保 软 件 时 作 保 险 缴 费 录 入 时 曾 用 它 少 写 了 许 多 代 码 当 然 代 码 的 减 少 就 义 意 味 维 护 工 作 量 的 减 少 FORM结构 养老 块 YLYJ(养老应缴) 项 DWJTC(单位缴统筹) DWJZH(单位缴帐户) GRJF(个人缴费) 块 YLSJ (养老实缴) 项 DWJTC(单位缴统筹) DWJZH(单位缴帐户) GRJF(个人缴费) 工伤 块 GSYJ(工伤应缴) 项 DWJTC(单位缴统筹) DWJZH(单位缴帐户) GRJF(个人缴费) 块 GSSJ (工伤实缴) 项 DWJTC(单位缴统筹) DWJZH(单位缴帐户) GRJF(个人缴费) 医疗 块 YILYJ(医疗应缴) 项 DWJTC(单位缴统筹) DWJZH(单位缴帐户) GRJF(个人缴费) 块 YILSJ (医疗实缴) 项 DWJTC(单位缴统筹) DWJZH(单位缴帐户) GRJF(个人缴费) 三 个 块 的 结 构 相 同 只 是 块 名 称 不 同 缴 费 时 时 行 的 操 作 也 一 样 实 缴 名 项 不 能 大 于 应 缴 不 用NAME_IN 时 只 能 写 三 段 程 序 但 用 了NAME_IN 后 只 用 一 段 写 一 个 函 数 就 能 达 到 目 的 如 下 FUNCTION FUN_JF (PRE_BLOCK_NAME IN VARCHAR) RETURN BOOLEAN IS BEGIN if name_in(pre_block_name|| sj dwjtc ) >name_in(pre_block_name|| yj dwjtc ) or name_in(pre_block_name|| sj dwjzh ) >name_in(pre_block_name|| yj dwjzh ) or name_in(pre_block_name|| sj grjf ) >name_in(pre_block_name|| yj grjf ) then message( 实 缴 大 于 应 缴 ); return false; end if; return true; END; 从 上 面 的 两 个 例 子 来 看NAME_IN 和COPY 的 应 用 能 起 到 其 它 编 程 语 言 的 宏 代 换 功 能 代 码 的 优 化 方 面 确 实 能 起 不 少 的 作 用 减 少 了 程 序 源 代 码 的 维 护 工 作 用FORMS 实 现ORACLE 数 据 库 与 其 它 数 据 源 数 据 的 交 换 Developer/ 不 能 实 现 同 时 多 数 据 源 的 同 时 连 接 在 多 系 统 和 异 种 数 据 源 的 操 作 中 功 能 确 实 大 打 折 扣 虽 然 可 以 用 GL 加ODBC 作 一DLL 应 用 能 实 现 但 一 般 的 应 用 中 又 有 点 没 用 必 要 作 的 那 么 复 杂 实 际 上Developer/ 内 嵌 包TEXT_IO 为 我 们 提 供 了 一 个 更 简 单 的 方 法 几 乎 所 有 的 数 据 库 或 数 据 库 前 端 开 发 工 具 都 提 供 文 本 文 件 的 操 作 这 样 我 们 完 全 可 以 用 文 本 文 件 作 为 数 据 交 换 的 通 用 格 式 下 例 是 在 保 险 业 中 的 一 应 用 ( 要 用 到d kwfile dll 应 用) DECLARE filename varchar ( ):=null; filenum text_io file_type; linebuf varchar ( ); r_temp temp%rowtype; BEGIN filename:=d k_file_dialog show ( 请选择缴费工资台帐原文件 c:\\ 源文件(* txt)|* txt| ); if filename is null then raise form_trigger_failure; end if; filenum:=text_io fopen(filename r ); loop BEGIN text_io get_line(filenum linebuf); TEXT_IO PUT(linebuf);TEXT_IO NEW_LINE; exception when no_data_found then exit; END; BEGIN v_temp l =substr(linebuf ); v_temp l := to_number(substr(linebuf )); insert into temp(l l ) values (v_temp l v_temp l ); exception when others then END; < < end_loop > > null; end loop; END; FORMS 实 现 的 列 表 查 询 多 行 录 入 中 的 实 现 行 累 计 在PB 和VB 中 都 用 类 似 的 求 和 或 者 说 累 计 列 但 在 早 期 的FORMS 中 没 有 此 功 能 对 于 多 条 记 录 的 录 入 中 需 要 进 行 求 和 时 很 不 方 便 其 实 利 用FORM 的 触 发 子 很 容 易 实 现 如 下 例 块 b 项 l l l l 块 b 项 l l l l 块b 是B 的求和块 在块B 中的PRE_TEXT_ITEM中代码 IF SUBSTR(:SYSTEM CURRENT_ITEM ) IN ( L ) THEN :GLOBAL ITEM_PREVALUES:=NAME_IN ( B ||:SYSTEM CURRENT_ITEM); END IF; 在块 B 中的POST_TEXT_ITEM中代码 DECLARE num_cz number; 数据项在录入或修改前后的差值 num_hz number; 数据项在修改后的求合 BEGIN if substr(:system current_item ) in ( l ) then :em_nextvalues:=name_in ( b ||:system current_item); num_cz:=nvl(to_number(:em_nextvalues) ) nvl(to_number(:em_prevalues) ); 新的和值 num_hz:=nvl(to_number(name_in( b_sum ||:system current_item)) )+num_cz; copy(to_char(num_hz) b ||:system current_item); end if; END; 通 过 前 后 两 值 的 比 较 很 容 易 的 实 现 一 个 较 通 用 的 求 和 算 法 另 外 又 一 次 用 到NAME_IN 和 COPY 减 少 了 代 码 量 在 块 上 实 现 触 发 子 也 减 少 了 代 码 维 护 工 作 量 REPORT 中 实 现 的 动 态 报 表( 一 张 表 利 用 多 个QUERY 语 句 生 成 一 样 格 式 的 多 张 报 表 在 做 报 表 时 经 常 要 遇 到 类 似 的 报 表 有 多 张 的 情 况 虽 然 通 过 简 单 的 拷 贝 可 以 减 少 编 程 的 工 作 量 但 在 后 期 的 维 护 中 却 增 加 了 难 度 一 张 表 改 完 后 又 改 另 一 张 表 进 行 大 量 的 重 复 劳 动 不 是 每 个 程 序 员 想 做 的 工 作 其 实 在REPORT 中 有 一 很 好 的 功 能 可 能 完 成 这 样 的 工 作 就 是REPORT 的 宏 代 换 如 下 例 两个表 tab_temp (a number b number c number) tab_temp (d number e number f number) 作 两 张 报 表 表 头 一 样 但 查 询 不 一 样 分 别 取 自 两 个 表 建 一 用 户 参 数(user parameters) p_ 类 型 CHAR 长 度 缺 省 值 是 SELECT A B C FROM TAB_TEMP 建 一 查 询(QUERIES) 在 查 询 语 句 中 输 入 &P_ 生 成 布 局 可 按 要 求 画 出 报 表 因 在 查 定 义 中 用 的 是&p_ 定 义 所 以 可 以 在 运 行 时 动 态 的 给P_ 传 递 能 数 只 要 能 满 足 其 列 名 定 义 即 可 例 可 用 如 下 语 句 代 入P_ SELECT D A E B F C FROM TAB_TEMP 这 样 就 生 成 了 一 个 多 功 能 报 表 把 编 写REPROT 工 作 从 简 单 的 布 局 编 辑 中 解 脱 出 来 而 投 入 到 实 质 性 的 工 作SQL 语 句 的 生 成 上 去 cha138/Article/program/Oracle/201311/18657相关参考
知识大全 如何在Windows2000下彻底删除Oracle
如何在Windows2000下彻底删除Oracle 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 ORACLE Developer/2000 编程技巧
ORACLEDeveloper/2000编程技巧 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
WIN2000下ORACLE计划任务自动备份方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 Oracle 专业人员使用的SQL Server 2000
Oracle专业人员使用的SQLServer2000 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 UNIX和WINDOWS2000上的ORACLE的差异(1)
UNIX和WINDOWS2000上的ORACLE的差异(1) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看
知识大全 如何在Windosws 2000中安装JSP并访问Oracle
如何在Windosws2000中安装JSP并访问Oracle 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看
知识大全 如何在Windosws 2000中安装PHP4并访问Oracle
如何在Windosws2000中安装PHP4并访问Oracle 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来
知识大全 Oracle 10G Beta版在Win2000上安装的Bug
Oracle10GBeta版在Win2000上安装的Bug 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
知识大全 Oracle 8i R2 (8.1.6) for Windows 2000 安装图解(2)
Oracle8iR2(8.1.6)forWindows2000安装图解(2) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让
知识大全 图解Oracle9i在Windows2000下的安装(1)
图解Oracle9i在Windows2000下的安装(1) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一