工控网首页
>

应用设计

>

如何利用紫金桥软件把关系库中的数据绘制成曲线

如何利用紫金桥软件把关系库中的数据绘制成曲线

在我们做一些工程项目的时候,常常需要把关系库中的数据绘制成各种图表,比如产量图,生产率变化图等等。我们都知道如果需要显示报表,可以使用紫金桥提供的自由报表组件,但是如果需要显示曲线我们怎么办呢?

为了解决类似的问题,紫金桥公司提供了自由曲线组件,使用此组件可以非常方便的显示关系库中的曲线,同时也可以显示使用脚本生成的任意的曲线。下面是自由曲线显示的两个示例:

下面我们来通过一个小的例子来认识一下紫金桥软件的自由曲线的用法。

本例子是使用曲线组件来显示在Acess关系库中一个表中的数据,当然其他的关系库比如SqlServer,甚至文本文件做为数据源处理的方法类似。

我们的示例Access库的名字是CurveData.mdb,已经复制到了工程目录下面的SQL中(复制到工程目录下的好处是即使更改了工程目录的位置,甚至更改了工程目录的名字,仍然无需更改工程本身就可以连接该Access库),在这个Access数据库中有一个数据表名Data,它的内容如下所示:

为了显示该表中的曲线,我们首先创建一个窗口,然后在该窗口中创建自由曲线组件。

创建自由曲线的方法非常简单,点击,在子图库中选择,创建曲线组件即可。

双击自由曲线可以看到如下所示的设置框:

点击更多设置,还会看到如下图所示的更多设置框:

通过这些设置可以更改曲线的外观、分隔数、线型、阶梯连接方式、甚至还可以给曲线设置涂色,把曲线仿真成直方图的形状。具体的设置方法请参考紫金桥的自由曲线使用帮助。

给曲线设置完合适的属性之后,为了能够进行脚本的引用,我们并按照下面介绍的方法给曲线命名为C。

在组态模式下,使用鼠标选中曲线组件,在屏幕的左下脚可以看到属性列表如下图所示。

在名称处输入此曲线组件的名称。

这样我们就可以通过#C的方式调用自由曲线支持的方法,完成绘制曲线的过程。

为了能够访问Access库中的数据,我们先使用报表来把Access中的数据读取上来。首先我们需要创建报表关系数据源点,在点组态界面创建一个报表关系数据源点,如下图所示

在联结字符串处点击右侧按钮选择连接Access数据库,并在弹出的对话框中选择CurveData.mdb文件,就完成了连接Acess的工作。

下一步,我们需要把数据采集到报表中,首先我们创建一个报表,并给报表命名为R,然后我们给报表关联到刚刚创建的关系数据源点上,如下图所示:

创建一个按钮,在按钮的鼠标点击事件中输入如下的脚本:

#C.AddCurve(0,"SQL曲线");

#R.SqlSelectCmd("SELECT X,Y FROM Data ORDER BY ID ASC");

第一句脚本是给自由曲线增加一条曲线,名字是SQL曲线,索引号为0

第二句脚本是,让报表执行SQL命令从关系库中提取数据。

此时运行工程可以看到报表中有数据显示。

为了绘制曲线,我们只需要做下面所示的工作即可。

双击报表,点击报表的工具栏上的关系库连接设置按钮,如下图所示:

在关系库连接对话框中的关系数据源点处选择刚刚创建的关系数据源点,并点击“应答后触发的脚本”按钮,输入如下的脚本

int i = 0;

for i=0to RowCount) step1

#C.CurveAddData(0,Val(1,i+1),Val(2,i+1));//参数分别是曲线索引,X值,Y值

next

这几句脚本是取出报表中的数据,然后添加到曲线中。

此时运行工程就可以看到绘制好的曲线了。

 

如果希望显示的曲线中超过50的显示为红色可以修改报表中的响应脚本如下。

int i = 0;

for i=0to RowCount) step1

if Val(2,i) > 50then

//参数分别是曲线索引,X值,Y值,颜色和自定义数据

#C.CurveAddDataEx(0,Val(1,i+1),Val(2,i+1),0,0);

else

//参数分别是曲线索引,X值,Y值

#C.CurveAddData(0,Val(1,i+1),Val(2,i+1));

endif

next

曲线如下图所示:

通过更改曲线的属性和调整脚本,还可以让曲线显示成直方图,如下图所示:

通过上面的介绍,我们看到紫金桥软件提供的自由曲线还是比较灵活的。使用它可以非常容易的显示各种数据的曲线。包括关系库,实时数据,甚至用脚本任意生成的曲线。

关于更多的设置,请参考紫金桥的自由曲线使用帮助。
投诉建议

提交

查看更多评论
其他资讯

查看更多

紫金桥跨平台实时数据库发布会及入门培训视频回放

紫金桥跨平台实时数据库入门培训即将开始啦

紫金桥跨平台实时数据库RealHistorian

紫金桥跨平台实时数据库新品发布会

跨平台实时数据库如何实现表格的保存和读取