PivotChart 和 PivotTable 的扩展功能

网络整理 - 08-26
Wes Kim
Microsoft Corporation

2001 年 4 月

适用于:
Microsoft® Access 2002

摘要:介绍如何使用事件来扩展 Microsoft Access 2002 中 PivotTable 视图和 PivotChart 视图的功能。

目录
简介
事件可用的位置
数据源事件
显示事件
更改事件
命令事件
键盘和鼠标事件
总结

简介
通过 Microsoft® Office Web 组件,Microsoft Access 开发人员可以将 PivotTable® 和 PivotChart® 视图包括在其应用程序中。在 Access 2002 中,已将多个新事件添加到 Access 10.0 对象库,使开发人员能够加强对 PivotTable 和 PivotChart 视图的控制。本文简要介绍了这些新事件以及如何使用它们。

有关这些事件的语法和代码示例,请参见“Access Visual Basic® 帮助”。

事件可用的位置
并非所有事件都可用在 PivotTable 和 PivotChart 视图中。下表概述了各种事件可用的位置。

事件 可用于 PivotTable 视图中 可用于 PivotChart 视图中
OnConnect、OnDisconnect 是 否
BeforeQuery, Query 是 否
AfterLayout、BeforeRender、AfterRender、AfterFinalRender 否 是
DataChange 是 否
DataSetChange 否 是
PivotTableChange 是 否
SelectionChange、ViewChange 是 是
CommandEnabled、CommandChecked、CommandBeforeExecute、CommandExecute 是 是
KeyDown、KeyPress、KeyUp、MouseDown、MouseMove、MouseUp、MouseWheel*、Click、DblClick 是 是


* 在键盘和鼠标事件中,只有 MouseWheel 事件对于 Access 2002 是全新事件。

数据源事件
OnConnect、OnDisconnect
OnConnect 事件发生在 PivotTable 视图与其数据源建立连接后,而 OnDisconnect 事件发生在 PivotTable 视图与其数据源断开连接后。通常假定,在 PivotTable 会话期间,连接保持存在。然而,如果数据源的连接丢失,应用程序可以使用 OnDisconnect 事件来警告用户。

BeforeQuery、Query
BeforeQuery 事件和 Query 事件分别发生在 PivotTable 视图将查询发送到其数据源之前和之后。 使用这些事件,应用程序可以通知用户查询正在进行中,即显示消息或将指针更改为沙漏形。

显示事件
AfterLayout
AfterLayout 事件将在 PivotChart 视图的整个布局已计算完毕,但尚未在屏幕上绘制出任何元素的情况下发生。通过捕获该事件,应用程序可以在绘制任何图表元素之前,使用 drawObject 参数所返回的 ChChartDraw 对象在空的图表画布上绘制形状或生成文本。

BeforeRender、AfterRender
BeforeRender 和 AfterRender 事件分别发生在每个 PivotChart 视图的元素绘制到屏幕之前和之后。通过捕获这些事件,应用程序可以在绘制特定元素前后,使用 drawObject 参数所返回的 ChChartDraw 对象在图表上绘制形状或生成文本。另外,在绘制元素前,应用程序还可以使用 chartObject 参数所返回的对象来更改该元素的位置或其他属性。

AfterFinalRender
AfterFinalRender 事件发生在所有 PivotTable 视图的元素绘制到屏幕上之后。通过捕获该事件,应用程序可以在绘制了所有图表元素之后,使用 drawObject 参数所返回的 ChChartDraw 对象在图表画布的顶层绘制形状或生成文本。

更改事件
DataChange
在更改了 PivotTable 视图的某些属性或从 PivotTable 视图调用了某些方法后,将发生 DataChange 事件。有很多种环境都可以触发此事件。通过计算 Reason 参数,应用程序可以确定进行了何种更改并采取相应措施。

DataSetChange
DataSetChange 事件发生在 PivotChart 视图的数据集发生更改后。这表示或者由于查询发送到数据源而导致基本数据确实有所更改,或者是当前 PivotChart 视图中显示的数据发生了结构性更改(例如添加了一个序列)。因为该事件不提供有关数据集更改原因的具体信息,所以建议使用其他事件(如上述显示事件)来捕获 PivotChart 视图的具体更改。

PivotTableChange
在向 PivotTable 视图添加或从中删除了字段、字段集或总计后,将发生 PivotTableChange 事件;Reason 参数会指示发生了上述哪一种更改。捕获此事件可以向开发人员提供反馈信息,显示用户如何对其应用程序中 PivotTable 视图进行操作。

SelectionChange
一旦当前选择内容在 PivotTable 或 PivotChart 视图中发生了更改,就发生 SelectionChange 事件。接着,应用程序就可以测试当前选择了何种对象并据此更改用户界面(例如基于当前选择自定义一系列可用的命令)。

ViewChange
一旦视图在 PivotTable 或 PivotChart 视图中发生了更改,就发生 ViewChange 事件。对于 PivotTable 视图,Reason 参数将指示发生了何种类型的更改;捕获此事件可使应用程序基于用户更改当前视图的方式来相应更改 PivotTable 视图的格式。对于 PivotChart 视图,Reason 参数总是返回同一个值 (-1),因此捕获此事件所起的作用有限。

命令事件
CommandEnabled
当 PivotTable 或 PivotChart 视图测试命令是否可用时,会发生 CommandEnabled 事件。Command 参数指示正在测试哪一个命令的可用性。用户显示命令菜单后,应用程序可以捕获该事件,并使用 Enabled 参数动态启用或禁用这些命令。

CommandChecked
当 PivotTable 或 PivotChart 视图测试是否选中某一命令时,会发生 CommandChecked 事件。Command 参数指示正在测试哪一个命令的状态。用户显示命令菜单后,应用程序可以设法捕获该事件,并使用 Checked 参数动态选中或取消选中这些命令。

CommandBeforeExecute、CommandExecute
CommandBeforeExecute 和 CommandExecute 事件分别发生在从 PivotTable 或 PivotChart 视图执行某一命令之前或之后。Command 参数指示将要执行哪个命令,或刚刚执行了哪个命令。CommandBeforeExecute 事件的 Cancel 参数可用于取消挂起命令。使用这些事件,应用程序可以防止某些命令的执行,或者向用户警告挂起命令的状态。

键盘和鼠标事件
KeyDown、KeyPress、KeyUp、MouseDown、MouseMove、MouseUp、MouseWheel、Click、DblClick
除了 MouseWheel 事件,这些键盘和鼠标事件对于 Access 2002 中的 PivotTable 和 PivotChart 视图都是新事件,但总的说来它们对于 Access 并不是新事件;“Access Visual Basic 帮助”中已对其用法进行了介绍。

当用户单击或滚动鼠标滚轮时,会发生 MouseWheel 事件。在开发人员希望用鼠标滚轮来触发自定义操作,而不进行默认的鼠标滚轮行为(例如突出显示 PivotTable 视图的不同列)的情况下,应用程序就可以捕获此事件。

总结
借助于 Access 10.0 对象库中的这些新事件,开发人员现在能够在其应用程序中对 PivotTable 和 PivotChart 视图施加更强的控制。