PB统计图数据动态显示实现方法

5星 · 超过95%的资源 需积分: 9 46 下载量 54 浏览量 更新于2024-10-18 1 收藏 3KB TXT 举报
"在开发MIS(Management Information System,管理信息系统)系统时,PowerBuilder(PB)的数据窗口(DataWindow)提供了多种展示样式,其中包括统计图风格的数据窗口,这种样式对于数据可视化非常有效。然而,统计图的一个局限是无法直接查看每个数据点的具体数值,用户只能大致估算。本文将通过一个实例,介绍如何在PB9中,利用EAS Demo DB V9数据库,实现统计图数值的动态显示,使得用户可以更直观地了解数据详情。" 在实现统计图数值动态显示的过程中,主要分为以下几个步骤: 1. 创建工作区(workspace)并加载数据源:首先,我们需要创建一个新的工作区,并导入PB9自带的EAS Demo DB V9数据库。这个数据库包含了演示所需的数据,可供我们进行统计图的构建。 2. 应用程序设置:接着,我们需要在应用程序中定义一个变量,用于存储图形的值,例如命名为`graphvalue`。 3. 选择统计图类型:在设计统计图时,我们要选择一个合适的图表类型,比如从图库中选取`grgallry.bmp`作为图表背景。 4. 配置数据源和SQL查询:我们需要为数据窗口`d_graph_dept`配置SQL查询,以获取员工信息。例如,可以使用如下SQL语句: ```sql SELECT "employee"."emp_id", "employee"."sex", "department"."dept_name" FROM "employee", "department" WHERE "employee"."dept_id" = "department"."dept_id"; ``` 这个查询会返回员工ID、性别以及所在部门名称。 5. 设置分类和值:进一步,我们为数据窗口的类别设置为`department_dept_name`,值设置为`count(employee_emp_id for graph)`,这将计算每个部门的员工数量。 6. 在主窗口中应用:在主窗口中,我们需要创建一个控件,如`w_graph_value`,用来控制数据窗口的显示,并设置`dw_1`的Datawindow对象名为`d_graph_dept`。同时,添加一个静态文本`st_help`用于显示数值,背景颜色设为Tooltip,以及一个关闭按钮`cb_close`。 7. 实现动态显示:在代码层面,我们需要处理一些关键事件,如打开事件和mousemove事件,来获取鼠标悬停在图上时的点信息,并实时显示数值。 具体实现中,例如: - 声明两个整型变量`ii_aseries`和`ii_datapoint`,以及一个双精度变量`ldb_value_data`,用于存储系列索引、数据点位置和数值。 - 在打开事件中,设置数据窗口的事务对象,并执行检索操作。 - 为mousemove事件编写处理函数,获取鼠标位置对应的数据点和系列值,然后动态更新`st_help`中的数值显示。 通过上述步骤,我们可以成功地在统计图上添加动态显示的数值,当鼠标移动到统计图上的某个点时,能够清晰地看到该点所代表的具体数据,极大地增强了数据的可读性和用户的交互体验。这种方法在开发MIS系统时尤其有用,能提升用户对数据的理解和分析能力。