|
第 六 课 : 创 建 ActiveX 财 务 组 件 组 件 将 包 含 一 组 相 关 的 方 法 ( 函 数 ) , 用 来 提 供 脚 本 语 言 所 不 具 有 的 功 能 。 由 于VBScript 不 提 供 财 务 函 数 , 所 以 您 必 须 通 过 自 己 的 Finance 服 务 器 组 件 来 提 供对 Visual Basic 财 务 函 数 的 使 用 能 力 。 该 服 务 器 组 件 能 提 供 所 有 的 Visual Ba ic 财 务 函 数 , 包 括 DDB 函 数 ( 双 倍 余 额 递 减 法 ) 、 FV 函 数 ( 未 来 值 ) 、 IPmt 数 ( 支 付 利 息 ) 、 IRR 函 数 ( 内 部 回 报 率 ) 以 及 其 他 函 数 。 不 过 , 在 本 教 程 中 您 将 只 使 用 FV 函 数 , 基 于 固 定 利 率 及 等 额 定 期 支 付 方 式 , 返 回 一 笔 年 金 。 启 动 Visual Basic 单 击 ?开 始 ?按 钮 , 指 向 ?程 序 ?, 然 后 指 向 ?Microsoft Visual Basic 5.0 ?单 击 子 菜 单 中 的 ?Visual Basic 5.0 ?, 运 行 编 程 环 境 。 开 始 并 命 名 一 个 工 程 在 ?New Project ?对 话 框 中 , 双 击 ?ActiveX DLL ?。 在 ?Project ?菜 单 上 , 单 击 ?Project1 Properties ?。 在 ?General ?属 性 页 的 ?Project Name ?框 中 , 键 入 ?MS ?。 选 择 ?Unattended Execution ?。 注 意 选 择 该 选 项 表 明 这 个 工 程 运 行 时 不 需 要 用 户 交 互 , 并 且 将 不 具 有 用 户 交 互 的 基 础 。 > 单 击 ?OK ?。 现 在 工 程 被 命 名 为 ?MS ?。 以 后 , 您 将 从 ASP 脚 本 中 以 MS.Finance 的 形 式 引 用 Finance 服 务 器 组 件 。 将 Finance Class 添 加 到 工 程 中 在 Visual Basic 中 , 若 要 创 建 具 有 一 组 可 以 调 用 的 函 数 组 件 , 必 须 定 义 一 个 类 。 一 个 类 包 含 一 组 方 法 和 属 性 。 在 您 的 工 程 中 , 类 就 是 您 说 明 财 务 方 法 的 地 方 。
按 下 F4 键 打 开 类 模 块 的 ?Properties ?窗 口 , 双 击 ?Name ?属 性 并 键 入 ?Func tion ?, 然 后 按 Enter 。 双 击 ?Instancing ?。 单 击 箭 头 , 然 后 选 择 ?5 - MultiUse ?。 进 一 步 学 习 Visual Basic 财 务 函 数 Visual Basic 的 帮 助 系 统 描 述 了 可 以 使 用 的 财 务 函 数 。 单 击 ?Help ?。 选 择 ?Microsoft Visual Basic Help Topics ?。 选 择 ?Index ?选 项 卡 , 然 后 键 入 ?financial functions ?作 为 查 找 的 文 字 。 双 击 ?financial functions ?索 引 条 。 单 击 ?FV Function ?, 学 习 该 函 数 。 学 习 完 财 务 函 数 后 , 关 闭 ?Visual Basic Help ?对 话 框 。 将 CalcFV 函 数 添 加 到 Finance 类 Finance 服 务 器 组 件 需 要 一 些 代 码 。 这 些 代 码 让 使 用 您 组 件 的 语 言 可 以 调 用 Vis ual Basic 内 建 的 未 来 值 函 数 。 将 下 列 行 复 制 并 粘 贴 到 Finance 类 的 代 码 窗 口 中 :
Public Function CalcFV(rate, nper, pmt, Optional pv, Optional whendue) CalcFV = FV(rate, nper, pmt, pv, whendue) End Function 添 加 组 件 的 入 口 点 所 有 服 务 器 组 件 都 需 要 一 个 入 口 ( 起 始 ) 点 。 这 是 当 对 象 第 一 次 可 用 于 一 种 语 言 时 , 将 被 调 用 的 代 码 。 在 VBScript 中 , 当 您 使 用 Server.CreateObject 时 , 将 创 建 对 象 的 一 个 实 例 。 当 执 行 Server.CreateObject 语 句 时 , ( 由 Visual Bas ic 创 建 的 ) 服 务 器 组 件 上 的 Sub Main 过 程 将 被 调 用 。 当 您 的 财 务 组 件 被 调 用 时 , 它 不 需 要 任 何 特 殊 代 码 来 初 始 化 自 身 。 因 此 , 需 要 提 供 一 个 空 的 ( 没 有 Visual Basic 语 句 的 ) Sub Main 过 程 。 > 选 择 ?Project ?菜 单 中 的 ?Add Module ?。 在 ?Module 1 ?对 话 框 中 , 双 击 模 块 图 标 。 在 Module 1 代 码 窗 口 中 , 键 入 Sub Main 。 按 下 Enter 键 。 将 自 动 进 入 如 下 代 码 : Sub Main() End Sub 保 存 Finance 工 程 当 保 存 所 作 的 工 作 时 , 将 询 问 您 是 否 保 存 Visual Basic 工 程 的 全 部 3 部 分 。 其 中 包 括 工 程 文 件 、 类 模 块 和 代 码 模 块 。
打 开 ?File ?菜 单 。 选 择 ?Save Project ?。 在 ?File name ?文 本 框 中 , 键 入 ?Finance ?。 选 择 localhost Web 服 务 器 上 的 如 下 路 径 : DriveLetter:\Winnt\System32\Inetsrv\ , 其 中 DriveLetter 是 适 当 的 驱 动 器 号 。 ( 如 果 您 没 有 接 受 默 认 的 安 装 目 录 , 请 用 您 的 安 装 目 录 替 换 \Winn t\System32 。 ) 单 击 ?Save ?按 钮 。 如 果 在 此 以 前 , 另 一 个 用 户 已 经 学 完 了 教 程 的 这 一 部 分 , 将 出 现 一 条 消 息 , 提 示 文 件 已 经 存 在 。 请 用 您 的 文 件 覆 盖 旧 文 件 。 > 双 击 ?File name ?文 本 框 中 的 值 ?Project1 ?, 选 中 它 。 为 工 程 文 件 键 入 名 称 ?Finance ?(.vbp) 。 单 击 ?Save ?按 钮 保 存 工 程 。 如 果 在 此 以 前 , 另 一 个 用 户 已 经 学 完 了 教 程 的 这 一 部 分 , 将 出 现 一 条 消 信 息 , 提 示 文 件 已 经 存 在 。 请 用 您 的 文 件 覆 盖 旧 文 件 。 成 为 ?进 程 内 (In-Process) ?组 件 Visual Basic 允 许 您 创 建 进 程 内 ActiveX 组 件 ( 通 常 称 为 OLE 自 动 服 务 器 ) 和 进 程 外 ActiveX 组 件 。 一 个 进 程 内 ActiveX 组 件 是 一 个 动 态 链 接 库 ( 带 .dll 后 缀 ) , 由 调 用 它 的 进 程 进 行 加 载 。 一 个 进 程 外 ActiveX 组 件 是 一 个 可 执 行 文 件 ( 带 .exe 后 缀 ) , 当 它 被 应 用 程 序 调 用 后 , 以 独 立 进 程 的 状 态 运 行 。 由 于 进 程 内 组 件 与 调 用 它 的 程 序 在 同 一 个 进 程 空 间 , 所 以 性 能 比 进 程 外 组 件 要 佳 。 使 Finance 服 务 器 组 件 成 为 进 程 内 ActiveX 组 件 打 开 ?File ?菜 单 。 选 定 ?Make Finance.dll ?。 单 击 ?Options ?按 钮 。 选 定 ?Auto Increment ?复 选 框 。 单 击 ?OK ?。 键 入 DriveLetter:\localhost\Winnt\System32\Inetsrv\Finance , 其 中 Drive Letter 是 适 当 的 驱 动 器 号 。 ( 如 果 您 没 有 接 受 默 认 的 安 装 目 录 , 请 用 您 的 安 装 目 录 替 换 \Winnt\System32 。 ) 如 果 在 此 以 前 , 另 一 个 用 户 已 经 学 完 了 教 程 的 这 一 部 分 , 将 出 现 一 条 消 信 息 , 提 示 文 件 已 经 存 在 。 请 用 您 的 文 件 覆 盖 旧 文 件 。 退 出 Visual Basic 。 注 册 Finance 服 务 器 组 件 所 有 服 务 器 组 件 都 必 须 注 册 。 Windows NT 和 Windows 95 用 系 统 注 册 表 来 追 踪 哪 个 服 务 器 组 件 是 可 用 的 。 在 您 的 计 算 机 上 将 Finance 服 务 器 组 件 注 册 后 , 就 可 以 在 VBScript 和 所 有 兼 容 OLE 的 语 言 中 调 用 它 了 。 打 开 一 个 命 令 提 示 符 窗 口 。 在 命 令 提 示 符 后 键 入 cd Drive Letter:\localhost\Winnt\System32\Inetsrv , 其 中 DriveLetter 是 适 当 的 驱 动 器 号 。 ( 如 果 您 没 有 接 受 默 认 的 安 装 目 录 , 请 用 您 的 安 装 目 录 替 换 \Winnt\System32 。 ) 按 下 Enter 键 。 键 入 regsvr32 Finance.dll 。 按 下 Enter 键 。 当 出 现 一 个 对 话 框 显 示 ?DllRegisterServer in finance.dll succeeded ?时 , 请 单 击 ?OK ?按 钮 。 关 闭 命 令 提 示 符 窗 口 。 |