在wincc画面编辑中查询按钮功能实现脚本存在问题

查询功能是实现在Excel中实现日报表数据显示,本人参考资料写出自己所理解的代码,编译时存在问题
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{

/*********连接数据库操作,和查询SQL语句 ********/
__object *conn, *rst;

char csql[200];

conn = __object_create("ADODB.Connection");

rst = __object_create("ADODB.RecordSet");

if(NULL==conn)

MessageBox(NULL,"创建连接失败","失败",MB_OK);

conn->Open("DSN=CC_fortest_10_05_07_08_02_45R");
//conn->Open("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=CC_fortest_10_05_07_08_02_45R;Data Source=.\WINCC");


if (conn->State==0)

MessageBox(NULL,"连接数据库失败","失败!",MB_OK);

else
{
char riqijiu;

/*?应该是这里有错,应该什么写?*/

sprintf(csql,"select  *  from UA#DailyReport  where riqijiu='2010-5-10' " );//测试用,||实现功能是取控件中的值
//格式化查询字符串

MessageBox(NULL,"查寻语句有误","失败!",MB_OK);//测试断点

rst->Open(csql, conn);

/********  查询数据不为空时,将查询结果显示在D盘的excelreport文件夹以当前时间为文件名的xls文件中 */
      if (!rst->eof) 
     { 
       #pragma code ("kernel32.dll")

       void  GetLocalTime(LPSYSTEMTIME lpSystemTime);

       #pragma code ()

       int row;

       char FileName[20]="";

       SYSTEMTIME sysTime; //定义

        __object* pExcel = NULL;

       GetLocalTime(&sysTime);

       sprintf(FileName,"D:\\excelreport\\%d-%d-%d.xls",sysTime.wYear,sysTime.wMonth,sysTime.wDay);
       //建立以当前日期为名的Excel文件") 

       pExcel = __object_create("Excel.Application");   //建立应用

       pExcel->Visible = 1;  //可见
       
       for (row=5;row<=28;row++)
       {
        pExcel->Workbooks ->Open (FileName);//Cells(row,col)

        pExcel->Worksheets("sheet1")->Cells(row,3)->Value=GetTagChar("日期"); 

        pExcel->Worksheets("sheet1")->Cells(row,4)->Value=GetTagFloat("时间");

        pExcel->Worksheets("sheet1")->Cells(row,5)->Value=GetTagFloat("汽压");

        pExcel->Worksheets("sheet1")->Cells(row,6)->Value=GetTagFloat("氨水流量");
    
        }

        pExcel->ActiveWorkbook->Save;

        //pExcel->Workbooks->Close();

        //pExcel->Quit();

        __object_delete(pExcel);
 
       //return 0;

      }
 /***************************结------束**************************/

      else 
     { 
      MessageBox(NULL,"您查询的日期没有数据","请重新输入",MB_OK|MB_ICONQUESTION);
      }

}

rst->Close;

conn->Close;
}

附:表属性是
日期(riqijiu)[char]
时间(shijianjiu)[int]
汽压(qiya)(float)
.....

问题补充:
后续调试应该还存在很多问题,各位帮帮忙,纠结了很久了,鄙人水平太次了,   是不是在 /*?应该是这里有错,应该什么写?*/
画面的变量得实例化或什么处理。

最佳答案

1、C事件脚本变量声明必须放到最前面。

2、C中必须用\\来表示\字符。

3、字符串声明可以用指针或定长声明:char *riqijiu;  或者char riqijiu[50];

4、有些COM组件的返回值是变体型,需要强制转换。

5、在画面放入应用程序窗口,选择Global Script>>GSC Diagnose,出错的话会有提示。

5、建议你改用VBS脚本。

提问者对于答案的评价:
谢谢你的建议,不过我是学C的,对VB不感冒,
我自己想了想这样贴出来找出问题所在是不现实的,何况我的这段代码肯定存在很多问题!

自己逐句编译吧

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc269222.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日
下一篇 2019年6月11日

相关推荐

  • vbs获取function返回值

    我建立了一个function在一个按钮的点击事件中调用这个方法,没有成功,请大家帮我找下原因,谢谢! function定义如下: Function F…

    SIMATIC WinCC 2019年6月11日
  • WINCC中如何做事件记录?模拟量和设备的启停的记录?以及操作者?

    WINCC中如何做事件记录?模拟量和设备的启停的记录. 问题补充:WINCC中如何做事件记录?模拟量的设定值可以记录新值和旧值,输出变量,手自动状态及操作者,操作计算机等,电机设备…

    SIMATIC WinCC 2019年6月11日
  • 有关WINCC脚本

    给点有关WINCC脚本的参考资料吧,入门的就好,我现在对WINCC脚本基本没有什么概念,想学习下,谢谢。 最佳答案 已发到你的邮箱huatec_qxx@126.com,注意查收。 …

    SIMATIC WinCC 2019年6月11日
  • WinCC启动后画面变小

    产线设备一台工控机有问题,今天新安装了一台工控机的客户机,互联到服务器后显示屏幕没法全屏 小了六分一差不多,屏幕是原来的屏幕,项目连接的是服务器里的,服务器里客户机也勾选…

    SIMATIC WinCC 2017年6月27日
  • Winvv6.0的 VBS脚本

    wincc6.0 里这么用VBS脚本实现修改文件名为当前日期??? 最佳答案 vbs脚本中有打开文件的方法,当用覆盖的方式打开一个文件时,利用VBS的取当前时间的方法,将…

    SIMATIC WinCC 2019年6月11日
  • wincc的质量代码,以及通讯质量代码

    怎么用c访问质量代码呢??? 最佳答案 检查变量状态和质量时需要质量代码。所显示的质量代码概述了整个数值传送和各个变量的数值处理的质量。质量代码具有优先次序。如果同时产生多个代码,…

    SIMATIC WinCC 2021年7月5日
  • 全局脚本函数文件

    我的项目里的有几个全局脚本函数文件被加了密码,请问哪位大哥能帮帮忙,告诉一个解密的方法,不知道能不能解密呢. 最佳答案 现在还没有方法解密,而且在这里讨论解密问题不合适,最好是找编…

    SIMATIC WinCC 2019年6月11日
  • WINCC选择菜单与工具栏

    想在WINCC中使用菜单栏,在图形运行系统中选好了要启动的菜单栏,但是用这个方式,所有画面都用的同一个菜单栏。我有办法自定义吗?不同的画面使用不同的菜单栏。如果不行,有第三方控件实…

    SIMATIC WinCC 2020年11月1日
  • WINCC6.0软件打开“图形编辑器”出现的问题

    打开“图形编辑器”出现如图的提示: 图片说明:    最佳答案 1、stgopenstorage hr=80030002 there&nbs…

    2018年1月1日
  • 请问哪有WINCC的运行版软件

    我用WINCC做了套控制,但是不想让人能改动我的设计,听说有运行版的WINCC,请问哪里有下载的,谢谢了。 问题补充:如果只安装 运行部分,那我做的工程,用他能打开吗? …

    SIMATIC WinCC 2019年6月11日