《计算机二级VB知识技巧.pdf》由会员分享,可在线阅读,更多相关《计算机二级VB知识技巧.pdf(104页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2011年 计 算 机 二 级 考 试 VB常 见 错 误 和 难 点 分 析 1.标 点 符 号 错 误 在 VB中 只 允 许 使 用 西 文 标 点,任 何 中 文 标 点 符 号 在 程 序 编 译 时 产 生 无 效 字 符”错 误,并 在 该 行 以 红 色 字 显 示。用 户 在 进 入 VB后 不 要 使 用 中 文 标 点 符 号。中、西 文 状 态 下 标 点 号 对 照 见 下 表 所 示。中、西 状 态 下 标 点 符 号 对 照 西 文 状 态;-cmdOk等。对 初 学 者,由 于 程 序 较 简 单、控 件 对 象 使 用 较 少,还 是 用 默 认 的 控 件
2、名 较 方 便。当 程 序 中 的 对 象 名 写 错 时,系 统 显 示”要 求 对 象”的 信 息,并 对 出 错 的 语 句 以 黄 色 背 景。用 户 可 以 在 代 码 窗 口 的 对 象 列 表 框 检 查 该 窗 体 所 使 用 的 对 象。4.Name属 性 和 Caption属 性 混 淆 Name属 性 的 值 用 于 在 程 序 中 唯 一 地 标 识 该 控 件 对 象,在 窗 体 上 不 可 见;而 Caption属 性 的 值 是 在 窗 体 上 显 示 的 内 容。5.对 象 的 属 性 名、方 法 名 写 错 当 程 序 中 对 象 的 属 性 名、方 法 名
3、写 错 时,VB系 统 会 显 示“方 法 或 数 据 成 员 未 找 到 的 信 息。在 编 写 程 序 代 码 时,尽 量 使 用 自 动 列 出 成 员 功 能,即 当 用 户 在 输 入 控 件 对 象 名 和 句 点 后,系 统 自 动 列 出 该 控 件 对 象 在 运 行 模 式 下 可 用 的 属 性 和 方 法,用 户 按 空 格 键 或 双 击 鼠 标 即 可,这 样 既 可 减 少 输 入 也 可 防 止 此 类 错 误 出 现。6.变 量 名 写 错 用 Dim声 明 的 变 量 名,在 后 面 的 使 用 中 表 示 同 一 变 量 而 写 错 了 变 量 名,VB编
4、 译 时 就 认 为 是 两 个 不 同 的 变 量。例 如,下 面 程 序 段 求 100的 和,结 果 放 在 Sum变 量 中:Dim sum As Integer,i As IntegerS um=0For i=1 to 100Sum=Sun+iNext iPrint Sum显 示 的 结 果 为 100。原 因 是 累 加 和 表 达 式 Sum=Sun+i中 的 右 边 的 变 量 名 Sum写 成 Sun。VB对 变 量 声 明 有 两 种 方 式,可 以 用 变 量 声 明 语 句 显 式 声 明,也 可 以 用 隐 式 声 明,即 不 声 明 直 接 使 用。上 述 变 量
5、名 的 写 错,系 统 为 两 个 不 同 的 变 量 各 自 分 配 内 存 单 元,造 成 计 算 结 果 不 正 确。因 此,为 防 止 此 类 错 误 产 生,必 须 对 变 量 声 明 采 用 限 制 其 为 显 式 声 明 方 式,也 就 是 在 通 用 声 明 段 加 Option Explicit语 句。7.语 句 书 写 位 置 错 在 VB中,除 了 在“通 用 声 明 段 利 用 Dim等 对 变 量 声 明 语 句 外,其 他 任 何 语 句 都 应 在 事 件 过 程 中,否 则 运 行 时 会 显 示“无 效 外 部 过 程”的 信 息。若 要 对 模 块 级 变
6、量 进 行 初 始 化 工 作,则 一 般 放 在 Form Load()事 件 过 程 中。8.无 意 形 成 控 件 数 组 若 要 在 窗 体 上 创 建 多 个 命 令 按 钮,有 些 读 者 会 先 创 建 一 个 命 令 按 钮 控 件,然 后 利 用 对 该 控 件 进 行 复 制、粘 贴,这 时 系 统 显 示:已 经 有 一 个 控 件 为 Conunandl”。创 建 一 个 控 件 数 组 吗?的 信 息,若 单 击 是 按 钮,则 系 统 创 建 了 名 称 为 Command1的 控 件 数 组。若 要 对 该 控 件 的 Click事 件 过 程 编 程,系 统 显
7、 示 的 框 架 是:Private Sub Command 1 Click(Index As Integer)End SubIndex表 示 控 件 数 组 的 下 标。若 非 控 件 数 组,Click事 件 过 程 的 框 架 是:Private Sub Command1_Click()End Sub请 注 意 直 到 学 习 实 验 数 组 前,一 律 不 使 用 控 件 数 组。9.Print方 法 中 定 位 问 题 定 位 通 过 Tab、Spc函 数 和 最 后 的 逗 号、分 号 和 无 符 号 来 控 制。VB中 通 过 Print方 法 中 各 参 数 的 综 合 使 用
8、 达 到 所 需 的 结 果,但 初 学 者 往 往 难 以 掌 握。(1)Tab(n)与 Spc(n)的 区 别 Tab(n)从 最 左 第 1 列 开 始 算 起 定 位 于 第 n 歹 若 当 前 打 印 位 置 已 超 过 n 歹 则 定 位 于 下 一 行 的 第 n 歹 IJ,这 是 常 常 定 位 不 好 出 现 的 问 题。在 格 式 定 位 中,Tab用 得 最 多。Spc(n)从 前 一 打 印 位 置 起 空 n 个 空 格。例 如,下 面 程 序 段 显 示 了 Tab与 Spc的 区 别,效 果 如 图 所 示。Private Sub Command1_C1ick()
9、Print”1234567890”,Print Tab;*;Tab(2);%;spc(2);$End Sub(2)紧 凑 格 式;”分 号 的 使 用 紧 凑 格 式“;,即 输 出 项 之 间 无 间 隔。但 对 于 数 值 型,输 出 项 之 间 系 统 自 动 空 一 列,而 由 于 数 值 系 统 自 动 加 符 号 位,因 此,大 于 零 的 数 值,实 际 空 两 列。对 于 字 符 型 之 间 无 空 格。例 如,下 面 程 序 段,效 果 如 图 所 示。Private Sub Conunandl Cl ick()Print 1;-2;3Print1234;5678”P rin
10、 t End Sub从 该 例 应 区 分 数 值 和 字 符 在 紧 凑 格 式 输 出 的 差 异。1 0.打 开 工 程 时 找 不 到 对 应 的 文 件 一 般,一 个 再 简 单 的 应 用 程 序 也 应 由 一 个 工 程.vbp文 件 和 一 个 窗 体.frm文 件 组 成。工 程 文 件 记 录 该 工 程 内 的 所 有 文 件(窗 体.frm 文 件、标 准 模 块.b a s文 件、类 模 块.c i s文 件 等)的 名 称 和 所 存 放 在 磁 盘 上 的 路 径。若 在 上 机 结 束 后,把 文 件 复 制 到 U盘 上 保 存,但 又 少 复 制 了 某
11、 个 文 件,下 次 打 开 工 程 时 就 会 显 示 文 件 未 找 到“。也 有 在 VB环 境 外,利 用 Windows资 源 管 理 器 或 DOS命 令 将 窗 体 文 件 等 改 名,而 工 程 文 件 内 记 录 的 还 是 原 来 的 文 件 名,这 样 也 会 造 成 打 开 工 程 时 显 示 文 件 未 找 到。解 决 此 问 题 的 方 法:一 是 修 改.v b p工 程 文 件 中 的 有 关 文 件 名;二 是 通 过 工 程 菜 单 的“添 加 窗 体 中 的 现 存”选 项,将 改 名 后 的 窗 体 加 入 工 程。VB编 程 8 个 优 良 习 惯 良
12、 好 的 程 序 设 计 风 格 是 反 映 一 个 人 的 程 序 设 计 水 平 的 问 题,对 一 个 程 序 来 说,仅 仅 当 提 供 正 确 的 输 入 时 才 能 产 生 正 确 的 输 出 是 不 够 的。一 个 设 计 得 好 的 程 序 必 须 能 在 任 何 条 件 下,即 在 它 运 行 过 程 中 可 能 遇 到 的 各 种 情 况 下 都 能 正 确 地 操 作。应 当 把 计 算 机 程 序 设 计 得 能 够 重 复 运行 或 连 续 运 行;它 必 须 很“耐 用”,能 够 经 得 起 偶 然 的 或 故 意 的 错 误 使 用。1、&替 换+在 很 多 人
13、的 编 程 语 言 中,用 来 连 接 字 符 串,这 样 容 易 导 致 歧 义。良 好 的 习 惯 是 用 来 连 接 字 符 串.不 正 确:Dim sMessage As StringsMessage=+2 正 确:Dim sMessage As StringsMessage=1&注 意:&的 后 面 有 个 空 格 2、变 量 命 名 大 小 写,语 句 错 落 有 秩,源 代 码 维 护 方 面 下 面 大 家 比 较 一 下 以 下 两 段 代 码:读 懂 难 度 很 大 的 代 码:Dim SNAME As StringDim NTURN As IntegerIf NTURN=
14、0 ThenIf SNAME=vbeden ThenDo While NTURN 4NTURN=NTURN+1LoopEnd IfEnd If容 易 读 懂 的 代 码:Dim sName As StringDim nTurn As IntegerIf nTurn=0 ThenIf sName=vbeden ThenDo While nTurn 4nTurn=nTurn+1LoopEnd IfEnd If3、请 养 成 以 下 的“对 象 命 名 约 定”良 好 习 惯 推 荐 使 用 的 控 件 前 缀 控 件 类 型 前 缀 例 子 复 选 框 Check box chk chkReadO
15、nl y组 合 框 Combo box cbo cboEngl ish命 令 按 钮 Command button cmd cmdExit通 用 对 话 框 Common dialog dig dlgFileOpen目 录 列 表 框 Directory list box dir dirSource驱 动 器 列 表 框 Drive list box drv drvTarget文 件 列 表 框 File list box fil fiISource窗 体 Form frm frmEntry图 象 框 Image img imglcon标 签 Label Ibl IblHelpMessage列
16、 表 框 List box 1st IstPolicyCodes菜 单 Menu mnu mnuFileOpen单 选 按 钮 Option button opt optGender图 片 框 Picture box pic picVGA文 本 框 Text box txt txtLastName时 钟 控 件 Timer tmr tmrAlarm变 量 声 明 所 有 的 变 量 将 会 节 省 编 程 时 间,因 为 键 入 操 作 引 起 的 错 误 减 少 了(例 如,究 竟 是 aUserNameTmp,还 是 sUserNameTmp,还 是 sUserNameTemp)o 在“选
17、 项 对 话 框 的“编 辑 器”标 签 中,复 选“要 求 变 量 声 明”选 项。Option Explicit语 句 要 求 在 Visual Basic程 序 中 声 明 所 有 的 变 量。应 该 给 变 量 加 前 缀 来 指 明 它 们 的 数 据 类 型。而 且 前 缀 可 以 被 扩 展,用 来 指 明 变 量 范 围,特 别 是 对 大 型 程 序。用 下 列 前 缀 来 指 明 一 个 变 量 的 数 据 类 型。变 量 数 据 类 型 数 据 类 型 前 缀 例 子 String(字 符 串 类 型)str strFNameInteger(短 整 数 类 型)int i
18、ntQuantityLong(长 整 数 类 型)Ing IngDistanceSingle(单 精 度 浮 点 数 类 型)sng sngAverageDouble(双 精 度 浮 点 数 类 型)dbl dblToleranceBoolean(布 尔 类 型)bln blnFoundByte(字 节 类 型)byt bytRasterDataDate(日 期 类 型)dte dteNowCurrency(货 币 类 型)cur curRevenueObject(对 象 类 型)obj objCurrentVariant(变 体 类 型)vnt vntCheckSum4、在 简 单 的 选
19、择 条 件 情 况 下,使 用 H f()函 数 繁 琐 的 代 码:If nNum=0 ThensName=sancy ElsesName=Xu End If简 单 的 代 码:sName=H f(nNum=O,sancy”,Xu)5、尽 量 使 用 Debug.Print进 行 调 试 在 很 多 初 学 者 的 调 试 中,用 MsgBox来 跟 踪 变 量 值.其 实 用 Debug.Print不 仅 可 以 达 到 同 样 的 功 效,而 且 在 程 序 最 后 编 译 过 程 中,会 被 忽 略.而 MsgBox必 须 手 动 注 释 或 删 除.通 常:MsgBox nName应
20、 该:Debug.Print nName6、在 重 复 对 某 一 对 象 的 属 性 进 行 修 改 时,尽 量 使 用 With.End With通 常:Forml.Height=5000Forml.Width=6000Forml.Caption=This is My Labe应 该:With Forml.Height=5000.Width=6000.Caption=This is MyLabel”End With这 种 结 构 程 序 执 行 效 率 比 较 高,特 别 在 循 环 语 句 里。7、MsgBox中 尽 量 使 用 消 息 图 标,这 样 程 序 比 较 有 规 范 一 般
21、 来 说 vblnformation用 来 提 示 确 认 或 成 功 操 作 的 消 息 vbExclamation用 来 提 示 警 告 的 消 息 vbCritical用 来 提 示 危 机 情 况 的 消 息 vbQuestion用 来 提 示 询 问 的 消 息 8、在 可 能 的 情 况 下 使 用 枚 举 枚 举 的 格 式 为 Public|Private Enum namemembername=constantexpressionmembername=constantexpressionEnd EnumEnum语 句 包 含 下 面 部 分:部 分 描 述 Public可 选
22、 的。表 示 该 Enum类 型 在 整 个 工 程 中 都 是 可 见 的。Enum类 型 的 缺 省 情 况 是 PublicoPrivate可 选 的。表 示 该 Enum类 型 只 在 所 声 明 的 模 块 中 是 可 见 的。name必 需 的。该 Enum类 型 的 名 称。name必 须 是 一 个 合 法 的 Visual Basic标 识 符,在 定 义 该 Enum类 型 的 变 量 或 参 数 时 用 该 名 称 来 指 定 类 型。membername必 需 的。用 于 指 定 该 Enum类 型 的 组 成 元 素 名 称 的 合 法 Visual Basic标 识
23、 符。constantexpression可 选 的。元 素 的 值(为 Long类 型)。可 以 是 别 的 Enum类 型。如 果 没 有 指 定 constantexpression,则 所 赋 给 的 值 或 者 是 0(如 果 该 元 素 是 第 一 个 membername),或 者 比 其 直 接 前 驱 的 值 大 1。说 明 所 谓 枚 举 变 量,就 是 指 用 Enum类 型 定 义 的 变 量。变 量 和 参 数 都 可 以 定 义 为 Enum类 型。Enum类 型 中 的 元 素 被 初 始 化 为 Enum语 句 中 指 定 的 常 数 值。所 赋 给 的 值 可
24、 以 包 括 正 数 和 负 数,且 在 运 行 时 不 能 改 变。例 如:Enum SecurityLevel IllegalEntry=-1 SecurityLevell=0 SecurityLevel2=1End EnumEnum语 句 只 能 在 模 块 级 别 中 出 现。定 义 Enum类 型 后,就 可 以 用 它 来 定 义 变 量,参 数 或 返 回 该 类 型 的 过 程。不 能 用 模 块 名 来 限 定 Enum类 型。类 模 块 中 的 Public Enum类 型 并 不 是 该 类 的 成 员;只 不 过 它 们 也 被 写 入 到 类 型 库 中。在 标 准
25、模 块 中 定 义 的 Enum类 型 则 不 写 到 类 型 库 中。具 有 相 同 名 字 的 Public Enum类 型 不 能 既 在 标 准 模 块 中 定 义,又 在 类 模 块 中 定 义,因 为 它 们 共 享 相 同 的 命 名 空 间。若 不 同 的 类 型 库 中 有 两 个 Enum类 型 的 名 字 相 同,但 成 员 不 同,则 对 这 种 类 型 的 变 量 的 引 用,将 取 决 于 哪 一 个 类 型 库 具 有 更 高 的 引 用 优 先 级。不 能 在 With块 中 使 用 Enum类 型 作 为 目 标。Enum语 句 示 例 下 面 的 示 例 演
26、 示 用 Enum语 句 定 义 一 个 命 名 常 数 的 集 合。在 本 例 中 是 一 些 可 以 选 择 的 颜 色 常 数 用 于 设 计 数 据 库 的 数 据 输 入 窗 体。Public Enum InterfaceColorsicMistyRose=&HE1E4FF&icSlateGray=&H908070&icDodgerBlue=&HFF901E&icDeepSkyBlue=&HFFBF00&icSpringGreen=&H7FFF00&icForestGreen=&H228B22&icGoldenrod=&H20A5DA&icFirebrick=&II2222B2&En
27、d Enum好 处 是 加 快 编 程 速 度 ADO记 录 集 和 水 晶 报 表在 使 用 水 晶 报 表 时,经 常 会 感 到 数 据 不 是 很 好 控 制,最 后 只 好 使 用 这 个 终 极 绝 招 咯。那 就 是 使 用 数 据 定 义 文 件(TTX),把 得 到 的 ADO记 录 集 传 送 给 水 晶 报 表。通 常 情 况 下,水 晶 报 表 是 从 物 理 的 数 据 库 上 创 建 出 来 的,但 是 现 在 有 了 32位 的 ActiveData Driver-P2smon.dll,水 晶 就 可 以 不 用 再 事 先 连 接 到 一 个 数 据 库 上 咯
28、。首 先,需 要 创 建 一 个 TTX文 件,进 入 数 据 源 选 择 窗 体 后 再 单 击 了 前 面 的“+”后 弹 出 数 据 源 窗 体 此 时,我 们 使 用“New”按 钮 创 建 一 个 新 的 数 据 定 义 文 件(TTX),格 式 如 下 保 存 后,我 们 打 开 这 个 文 本 文 件,就 会 发 现 TTX文 件 的 格 式,原 来 中 间 是 TAB分 割 符 来 的。接 着,我 们 就 按 照 水 晶 报 表 的 老 套 路 画 式 样,剩 下 的 就 是 传 递 记 录 机 集 了。下 面,我 们 要 声 明 好 传 递 ADO记 录 集 需 要 的 Ap
29、i,Public Declare FunctionPublic Declare FunctionPEOpenEngine Lib crpe32.dll()As IntegerPEGetErrorCode Lib crpe32.dll”(ByVai printjob AsInteger)As IntegerPublic Declare Function PEOpenPrintJob Lib crpe32.dll”(ByVai RptName AsString)As IntegerPublic Declare Function PEOutputToWindow Lib crpe32.dll”(_B
30、yVai printjob As Integer,ByVai Title As String,_ByVai Left As Long,ByVai Top As Long,ByVai Width As Long,_ByVai Height As Long,_ByVai style As Long,_ByVai PWindow As Long)As IntegerPublic Declare Function PEOutputToPrinter Lib crpe32.dll”(_ByVai printjob As Integer,ByVai nCopies As Integer)As Intege
31、rPublic Declare Function PEStartPrintJob Lib crpe32.dll”(_ByVai printjob As Integer,_ByVai WaitOrNot As Integer)As IntegerPublic Declare Function PEClosePrintJob Lib crpe32.dn(ByVai printjob AsInteger)As IntegerPublic Declare Sub PECloseEngine Lib crpe32.dll()Public Declare Function CreateFieldDefFi
32、1e Lib p2smon.dll”(_IpUnk As Object,ByVai _fileName As String,_ByVai bOverWriteExistingFile As Long)As LongPublic Declare Function vbEncodelPtr Lib“p2smon.dll”(x As Object)As StringPublic Declare Function SetActiveDataSource Lib p2smon.dll(_ByVai printjob As Integer,_ByVai tabieNum As Integer,_x As
33、Object)As Long最 后 给 出 的 是 报 表 的 打 印 代 码Dim Job As IntegerDim Handle As Integer 打 开 打 印 引 擎 Handle=PEOpenEngine水 晶 的 错 误 处 理 If Handle=0 ThenErrorNum=PEGetErrorCode(Handle)MsgBox 打 印 引 擎 出 错!MsgBox 错 误 代 号:&ErrorNumEnd If打 开 打 印 作 业 Job=PEOpenPrintJob(App.Path&New.rpt)水 晶 的 错 误 处 理 If Job=0 ThenError
34、Num=PEGetErrorCode(Job)MsgBox 打 开 作 业 New.rpt失 败!MsgBox 错 误 代 号:&ErrorNumEnd If给 水 晶 报 表 传 送 ADO记 录 集,AdoRecordset的 生 成 就 不 再 多 说 了 Handle=SetActiveDataSource(Job,0,ADOrs)输 出 到 打 印 预 览 窗 口 Handle=PEOutputToWindow(Job,New.rpt,0,0,520,520,WS_MAXIMIZE,0)直 接 输 出 到 打 印 机 Handle=PEOutputToPrinter(Job,1)水
35、晶 的 错 误 处 理 If Handle 0 ThenHandle=PEStartPrintJob(Job,True)If Handle 0 ThenMsgBox 打 印 完 毕 ElseErrorNum=PEGetErrorCode(Job)MsgBox 打 印 失 败!MsgBox 错 误 代 号:&ErrorNumEnd IfElseErrorNum=PEGetErrorCode(Job)MsgBox”无 法 输 出 到 窗 体 或 打 印 机 MsgBox 错 误 代 号:&ErrorNumEnd If关 闭 打 印 作 业 PEClosePrintJob(Job)关 闭 打 印 引
36、 擎 PECloseEngine我 使 用 的 是 VB6+水 晶 报 表 8.5,感 觉 这 种 方 式 比 较 灵 活 好 用,同 时 解 决 了 水 晶 报 表 补 空行 的 问 题。TrueDBREPORT6.0的 使 用 说 明 DBREPORT是 一 个 可 以 让 用 户 在 应 用 中 快 速 方 便 的 使 用 功 能 强 大 的 报 表 系 统 的 控 件。它 有 着 强 大 的 功 能,方 法 和 事 件,能 让 用 户 在 进 行 少 量 的 工 作 的 情 况 下 就 提 供 出 完 善 的 报 表 DBREPORT可 以 让 用 户 把 数 据 保 存 到 ADO或
37、 者 OLE DB的 数 据 源 中,也 可 以 从 数 据 列 表 中 取 得 数 据,或 者 以 事 件 为 基 础 取 得 数 据。用 户 可 以 很 方 便 的 存 取 或 打 印 这 些 数 据。它 的 特 征 包 括:Data Access(数 据 的 接 口):此 控 件 支 持 多 种 数 据 连 接 方 式。他 可 以 直 接 连 接 到 数 据 库 并 生 成 他 自 己 的 数 据 集,也 可 以 绑 定 到 已 经 存 在 的 ADO数 据 集 或 OLE DB数 据 源。也 可 以 从 数 据 列 表 或 通 过 符 合 条 件 的 事 件 来 向 控 件 输 入 数
38、 据。Data Manipulation(数 据 的 操 作:)此 控 件 可 以 让 用 户 在 不 写 入 任 何 代 码 的 情 况 下 就 可 以 对 数 据 进 行 分 类 和 控 制。你 可 以 很 容 易 的 定 义 一 对 一 或 一 对 多 的 关 系,定 义 用 来 限 制 数 据 的 过 滤 条 件,定 义 计 算 的 列(如 统 计 合 计 数 的 列)等。此 控 件 也 可 以 支 持 主 表 与 明 细 表 的 关 系(通 过 平 行 的 或 串 行 的 条 件 来 分 出 表 的 子 表)。Customize Data Appearance(定 制 数 据 的 外
39、 观 表 现 形 式):用 户 可 以 完 全 的 控 制 数 据 的 表 现 的 属 性,如 数 据 的 字 体,颜 色,页 面 设 置,眉 头 和 注 脚 等。控 件 有 一 个 内 嵌 的 印 象 机 制 来 转 换 代 码 值 为 字 符 串 以 实 现 用 户 的 控 制 需 求 Objects and Collections(目 标 和 成 品):此 控 件 定 义 了 一 些 基 础 的 对 象。程 序 设 计 人 员 可 以 在 运 行 中 完 全 的 控 制 这 些 对 象:目 标(如 片 断 和 细 节)和 对 象 构 成 报 表 的 定 义,这 些 都 可 以 在 设 计
40、 时 利 用 属 性 页 来 进 行 定 义,也 可 以 在 运 行 中 来 进 行 定 义。许 多 人 在 设 计 时 进 行 定 义 是 因 为 它 是 交 互 式 的 可 视 的,而 在 运 行 时 进 行 设 计 是 因 为 可 以 给 程 序 设 计 人 员 最 终 的 控 制 权,允 许 用 户 以 最 终 的 输 入 的 信 息 为 基 础 来 生 成 报 表,以 最 大 限 度 的 靠 近 用 户 的 最 终 的 需 要 Hierarchy of Styles(风 格 的 层 次):表 现 风 格 用 来 是 控 制 报 表 列 的 可 视 属 性 的,以 树 状 的 等 级
41、来 进 行 组 织。表 现 的 风 格 可 以 从 父 亲 那 里 继 承 并 可 以 覆 盖 原 有 的 属 性。这 样 的 做 法 可 以 节 约 时 间 因 为 当 用 户 需 要 新 建 一 个 新 的 风 格 时 你 可 能 只 需 要 定 义 一 小 部 分 新 的 特 性。这 样 的 做 法 也 可 以 使 用 户 做 出 来 的 报 表 具 有 统 一 的 外 观。这 可 以 使 用 户 作 出 来 的 系 统 成 为 无 论 是 在 局 部 还 是 全 局 的 修 改 都 非 常 容 易 修 改 和 跟 踪 的 灵 活 的 一 套 系 统。Maximize Table Usa
42、ge(最 大 化 窗 口 的 使 用):此 控 件 给 窗 口 提 供 了 广 泛 的 支 持,包 括 定 义 窗 口 的 眉 头 和 注 脚,列 与 列 之 间 的 宽 度,自 动 的 对 齐 列 等 等。Control Over Report Generation(报 表 生 成 的 控 制):用 户 可 以 仅 通 过 很 少 的 几 行 代 码 就 可 以 实 现 报 表 的 生 成 或 打 印 或 者 打 印 的 预 览。或 者 用 户 可 以 通 过 定 义 此 控 件 的 属 性 来 控 制 整 个 报 表 的 产 生 和 其 表 现。Report Building Wizard
43、(报 表 生 成 向 导):此 控 件 有 一 个 内 嵌 的 报 表 生 成 的 向 导,用 户可 以 通 过 此 向 导 很 方 便 的 来 定 义 所 要 生 成 报 表,通 过 选 择 已 有 的 基 础 的 表 现 风 格,定 义 报 表 所 包 括 的 列,定 义 报 表 的 组 合 方 式 等 来 生 成。报 表 生 成 向 导 对 开 发 者 而 言 是 个 很 方 便 的 工 具,但 是 此 向 导 只 能 被 最 终 的 用 户 来 直 接 进 行 使 用,只 允 许 最 终 用 户 来 定 制 他 们 所 需 要 的 报 表 的 使 用 表 现 方 式。Other Fea
44、tures(其 它 的 特 征):此 控 件 也 包 括 可 视 的 编 辑 器;用 于 表 达 的 标 准 的 静 态 的 函 数;高 级 的 易 于 操 作 的 页 面 控 制 器;易 于 定 制 和 支 持 不 同 的 配 置 等 等 属 性 及 其 使 用:(右 键 单 击 该 控 件,选 择 properties)属 性 页 包 括:DataSource(数 据 源):在 DataMode(数 据 连 接 方 式)的 下 拉 列 表 中 可 以 选 择:tdbmodedatasource(以 数 据 库 为 数 据 源),tdbmodememoryarray(以 数 据 存 储 列
45、为 数 据 源)tdbmodeuserevent(以 用 户 自 定 义 事 件 为 数 据 源)在 source of connection(数 据 连 接 源 目 标)中 可 以 选 择:use data link file(使 用 链 接 文 件),用 browse键 即 可 选 择 所 需 要 的 链 接 文 件 use odbc data source name(使 用 odbc数 据 源),在 下 拉 列 表 中 列 出 了 已 有 的 odbc数 据 源,用 NEW键 即 可 建 立 新 的 数 据 源 use connection string(使 用 语 句 进 行 连 接)
46、,用 BULID键 可 以 选 择 所 要 连 接 的 数 据 源,在 弹 出 的 数 据 链 接 属 性 框 中 提 供 者 页 是 用 来 让 用 户 选 择 下 午 连 接 的 数 据 方 式 的,连 接 页 是 让 用 户 选 择 所 要 使 用 的 数 据 库 的 名 称 并 输 入 登 录 数 据 库 时 的 用 户 名 及 密 码 的,高 级 页 中 是 用 来 设 置 网 络 的,在 所 有 页 中 列 出 了 进 行 的 所 有 的 设 置 other attributes(其 它 属 性 的 设 置)authentication(鉴 定),通 过 设 置 用 户 名 和 密
47、 码 来 进 行 用 户 的 鉴 定 recordsource(记 录 源),在 command text中 可 以 输 入 相 应 的 SQL语 句 来 选 择 表 和 字 段 及 设 定 排 序 方 式,过 滤 条 件 等 general:(主 要 属 性)是 对 整 个 属 性 的 一 个 概 括,也 对 报 表 的 编 辑 界 面 有 个 概 述,如 是 否 显 示 网 格,网 格 的 大 小 的 定 制 等 parameter:(参 数),可 以 对 报 表 的 参 数 进 行 设 置 和 修 改 删 除 fields:(报 表 列)对 在 DATASOURCE中 定 义 的 表 中
48、 的 列 进 行 设 置,也 可 增 加 和 修 改 列,定 义 计 算 列,如:要 增 加 一 个 计 算 列,则 在 左 边 的 空 格 中 点 击 右 键,在 弹 出 的 菜 单 中 选 择 NEW,在 右 边 则 会 出 现 这 个 新 的 列 的 属 性,在 NAME中 输 入 名 称,在 di splayname中 输 入 报 表 中 显 示 的 名 称,在 type中 定 义 新 增 的 列 的 类 型,在 maxlength中 定 义 最 大 长 度,在 calculateexpression中 定 义 计 算 列 的 计 算 方 法(点 开。号,弹 出 一 编 辑 器,在 e
49、xpression中 可 写 入 计 算 的 方 法)filters:(过 滤 条 件)可 以 增 加 删 除 修 改 过 滤 条 件,如:增 加 一 过 滤 条 件,在 左 空 白 处 点 击 右 键,在 弹 出 菜 单 中 选 择 NEW,并 在 右 边 的 filterexpression(过 滤 条 件 表 达 示),conditionexpression(条 件 表 达 示)中 定 义 相 应 的 各 项 条 件 sections:(片 断)可 以 定 义 报 表 的 格 式 和 表 现 的 方 法,但 在 作 此 定 义 之 前,必 须 先 进 行 另 一 项 定 义:右 键 单
50、击 需 定 义 的 dbreports控 件,在 弹 出 的 菜 单 中 选 择 report wizard,出 现 一 reportwizard的 窗 口,第 一 页 为:style(风 格),可 以 在 左 边 的 列 表 中 选 择 所 需 的 报 表 的 表 现 风 格,当 鼠 标 点 击 到 某 一 风 格 时,中 间 的 框 中 将 出 现 所 选 此 风 格 的 简 单 说 明,且 右 边 的 框 中 将 出 现 相 应 的 范 例,在 选 中 了 风 格 后,点 击 next进 而 第 二 页:fields(报 表 列),在 左 边 的 框 中 列 出 的 是 此 控 件 所