pb调用ole控件MicrosoftGraph

firefox9999 2009-03-24 03:06:30
pb调用ole控件MicrosoftGraph
柱形图
调用的详细代码说明
不是PB的Graph控件,是PB调用MicrosoftGraph控件代码及说明
解决问题者给高分答谢!!
...全文
792 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Q1277516668 2011-09-15
  • 打赏
  • 举报
回复
新建DW→Graph→选择数据源→设置Category(横坐标),Value(纵坐标,一般为数量),然后检索数据就可以了。
更详细的给你个地址:http://www.qqgb.com/Program/PowerBuilder/PBitem/Program_166115.html
firefox9999 2009-04-21
  • 打赏
  • 举报
回复
问题也没给解决,分又给谁呢??
happysky 2009-03-25
  • 打赏
  • 举报
回复
找找资料看看,实现不是很难,自己就可以搞定,在这儿不要抱太大希望
firefox9999 2009-03-24
  • 打赏
  • 举报
回复
高手们都去里了,帮兄弟看看这个问题啊!!!
解决问题,马上给份!!
firefox9999 2009-03-24
  • 打赏
  • 举报
回复
没有具体些的实例吗??
newease 2009-03-24
  • 打赏
  • 举报
回复
---- 一、创建MS Graph建图表对象

---- 要在程序中使用MS Graph图表,首先要创建一个MS Graph图表对象。可以使用Visual Foxpro图形向导完成这一工作。如下例:



---- 首先,我们假定已有下面这个数据库CX(实际应用中,也可以是视图、查询或临时表),包含三个字段,存储了城乡居民家庭拥有各种家电的数量。

---- 使用图形向导,选取适当的字段和图表样式,可得到如下所示的MS Graph图表。在图表区域双击鼠标或从编辑菜单菜单下选择打开图表对象,可以根据实际需要修改图表元素的外观形式、色彩和字体等,以取得最佳视觉效果。将最终图表结果保存(或粘贴)到数据库的通用型字段中。至此,我们已经获得了一个嵌入到数据表通用型字段中的MS Graph图表OLE对象。如果事先已设计好图表并保存在文件中,也可以使用APPEND GENERAL命令将该图表导入并添加到数据库中。



---- 二、在程序中显示图表对象

---- 图表对象一经创建并保存,我们就可以在程序中使用并显示它,例如可直接用@...SAY命令在屏幕或窗口中显示通用型字段中的OLE图表对象。如果要在表单中显示图表,可以使用OLE绑定型控件。步骤如下:

---- 1、在“表单设计器”中,将一个“OLE 绑定型控件”添加到表单中。

---- 2、通过设置对象的 ControlSource 属性指定包含数据的通用字段。

---- 例如表名为VFPG,通用型字段名为 OLEGRAPH,那么将 ControlSource 属性设置成 VFPG.OLEGRAPH。

---- 3、运行表单,图表将显示在OLE绑定型控件位置上。

---- 三、更新图表对象数据

---- 上面介绍了图表的创建和在程序中引用的方法,所涉及的图表是事先设计好并存储在数据表的通用型字段中的,因此具有相对固定的值和型式。在实际应用中我们如果需要根据数据变化让程序自动重新绘制图表,可以通过向MS Graph对象传递数据以更新数据表的方法实现。为了通过编程方式更改 MS Graph 图中的数据,需要建立一个包含新数据的字符串,包括制表符、回车符和换行符,并将这些字符串通过APPEND GENERAL 命令的 DATA 子句传递给 MS Graph 对象。

---- 更新数据表的关键是生成正确格式的包含新数据的字符串。MS Graph是支持对象嵌入的应用程序,它的图形的值是基于数据表中的值的,后者的变化将直接影响到前者。从上面的数据表和图表例子中我们不难看出两者之间联系,例如数据表的字段对应了图表的X坐标轴,记录对应了X轴的子项(如果是按列绘图则相反)。按照这个关系,可将数据表描述为下述格式的数据字符串:

---- 字段11+制表符+字段12+制表符+...+回车换行符+字段21+制表符+字段22+...

---- 其中‘字段11’代表第一个记录的第一个字段,‘字段21’代表第二个记录的第一个字段等等,字段间以制表符分隔,记录间以回车换行符分隔。

---- 将这样一个数据字符串传递给图表对象,即可实现更新。下面是编程更新图表数据的例子:

#DEFINE CRLF CHR(13)+CHR(10)
#DEFINE TAB CHR(9);定义回车换行符和制表符
LOCAL lcData

USE CX ;打开用来更新的数据表

lcData =" " + TAB + "城镇" + TAB + "农村" + CRLF
;加入坐标轴标题文字

SCAN
lcData = lcData+种类+TAB+ALLTRIM(STR(城镇))
+TAB+ ALLTRIM(STR(农村)) + CRLF
ENDSCAN ;生成数据字符串

SELECT VFPG
APPEND GENERAL olegraph DATA lcData
;将新值传送到 MS Graph对象。

USE IN CX

---- 在程序中可以将上述代码加入到事件中,当用户操作(例如点击鼠标按钮)激活该事件时自动更新图表数据。需要注意的是,这种更新并不会影响到图表的风格,也就是说图表的标题、色彩、类型等不会因此而变化。

---- 四、修改图表风格

---- 在实际应用中如果要提供多种不同风格的图表,可以有两种方式,一是事先制作好不同风格的图表存储在通用型字段中,然后在程序中进行切换;二是使用OLE绑定型控件的属性(Properties)和方法(Methods)。第二种方式对图表对象提供了更灵活的控制手段。MS Graph图表控件具有很多属性和方法,能够控制图表对象中所有子对象(Chart,Border,Grid,Floor,Legend等)。详细说明可以参见MSGRAPH系统目录(通常是 \Program files\Common Files\Microsoft Shared\Msgraph)下的vba_grp.hlp帮助文件,该文件包含详细的MS Graph编程参考。

---- 下面的代码使用了控件的几个属性和方法:

THISFORM.OleBoundControl1.autoformat(-4099,1)
;将图表类型改为三维直方图
THISFORM.OleBoundControl1.autoformat(-4102,1)
;将图表类型改为立体圆饼图

THISFORM.OleBoundControl1.HasTitle = .T.
;设置标题文字并允许显示
THISFORM.OleBoundControl1.ChartTitle.Caption = '图表标题'

THISFORM.OleBoundControl1.HasLegend= .T.
;显示图例
newease 2009-03-24
  • 打赏
  • 举报
回复
http://www.cqvip.com/qk/97508X/20012403/5560713.html
Microsoft Graph是支持OLE,具有Automation功能的应用程序,在Microsoft的Visual系列开发工具如VEP表单中可使用OLE容器控件嵌入MicrosoftGraph的Chart对象,也可以在表的通用型字段中保存Chart对象,使用OLE绑定型控件在表单上可视方式查看数据,用自动服务功能(Automation)以编程方式控制应用程序,不可视但自动地操作数据,在应用程序中合并Microsoft Graph应用程序的功能,通过编程和交互方式结合运用实现图表处理。

上面下载但是要收费的
newease 2009-03-24
  • 打赏
  • 举报
回复
手头只有PB带控件的例子,帮不上忙了

604

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 控件与界面
社区管理员
  • 控件与界面社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧