WINCC 用户归档报表实现

已锁定

柳叶飘飘

  • 帖子

    95
  • 精华

    7
  • 被关注

    180

论坛等级:侠圣

注册时间:2016-12-08

钻石 钻石 如何晋级?

WINCC 用户归档报表实现

2472

2

2017-01-09 21:52:02

此文搬自个人的博客

思路:要实现用户归档报表需要做到几点:1.怎样操作数据读写。2.查询数据。 3.输出报表。(以存入数据查询数据为例)

实现方式:

第一步存储数据

Function action

'----------------------------------------------------

'以下注释均是在变量下方注释;

'触发该动作的触发变量为@change(变量自建)

'flag 变量为标志状态监测是否第一次启动WINCC

'----------------------------------------------------

Set flag = HMIRuntime.Tags("flag")

flag.Read 

If flag.Value =1  Then

Dim UA_Reportday_ID

Set UA_Reportday_ID = HMIRuntime.Tags("@UA_Reportday_ID")

Dim UA_Reportday_Job

Set UA_Reportday_Job = HMIRuntime.Tags("@UA_Reportday_Job")

UA_Reportday_ID.Read 

UA_Reportday_ID.Write -1

UA_Reportday_Job.Read

UA_Reportday_Job.Write 6

End If

End Function

 

在flag全局动作中脚本如下(该脚本由flag变量触发动作)

Option Explicit

    Function action

    Dim flag

    Set flag = HMIRuntime.Tags("flag")

    flag.Read

    If flag.Value =0 Then

    flag.Write 1

    End If

    End Function

第二步查询(该步骤可以根据条件省略,以查询用户归档中的TET3为例)

在查询按钮动作中写入

Sub OnLButtonUp(ByVal Item, ByVal Flags, ByVal x, ByVal y)     

    Dim SQLlianjie

    Set SQLlianjie=HMIRuntime.Tags("SQLlianjie")

    SQLlianjie.Read

    SQLlianjie.Write "select * from UA#Reportday where TET1=13"

    MsgBox"查询成功"

End Sub

第三步 设计报表和配置报表打印(不清楚请参见西门子相关文档)

报表编辑器中配置布局中插入 ODBC数据库数据库表,双击弹出对象属性表,再双击数据库连接。

在数据库连接中有 ODBC数据源 若为本地数据源 可以使用变量@DatasourceNameRT。

在数据库连接选项中有一个SQL语句 若省掉以上第二部可以直接写上SQL查询语句,若是不省略就用以上设置的变量SQLlianjie来写入查询

语句。

第四步 报表打印(不清楚请参见西门子相关文档)

配置好打印作业

然后再画面中设置一个按钮在按钮中写入以下C脚本(PrintJob001为我的一个打印作业)

#include "apdefap.h"

    void OnLButtonUp(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName, UINT nFlags, int x, int y)

{

    #pragma option(mbcs)

RPTJobPreview("PrintJob001");

}

 



WINCC 用户归档报表实现 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC WinCC / Panel

共有31084条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。