这个程序是我自己写的,已经在实际使用,贴出来供大家参考。
我这里的报表实现主要是通过vb程序从wincc读取生产数据,然后通过vb将数据写入预先设计好的excel文档里并连接打印机打印;具体实现步骤如下;
第一步:按时间读取wincc数据,或者通过按钮实现对wincc数据的读取;
这里提供通过按钮读取数据的原代码,按时间读取只需要将代码用在一个时钟控件的代码里就行;按钮的代码如下;
Private Sub Command1_Click()
Dim wincc As Object '定义wincc为对象
Set wincc = CreateObject("WinCC-Runtime-Project") '创建wincc运行对象,这个方法在组态手册里能找到
Text1.Text = wincc.getvalue("wincc变量1")'读取wincc变量值到vb的text控件
Text2.Text = wincc.getvalue("wincc变量2")
Text3.Text = wincc.getvalue("wincc变量1")
Text4.Text = wincc.getvalue("wincc变量2")
End Sub
第二步:将存在于vb中的wincc变量值写入预先设计好的excel报表中并打印;
通过按钮实现;
Private Sub Command2_Click()
Dim xlApp As Object ’定义xlapp为对象
Set xlApp = CreateObject("Excel.Application") '创建excel.application对象
Dim xlbook As Object
Set xlbook = xlApp.Workbooks.Open("excel文档名.xls") ’定义并在后台打开excel文档;
Dim xlsheet As Object
Set xlsheet = xlbook.Worksheets(1) ’定义并打开报表所在的工作簿,这里为worksheets(1);
xlsheet.Cells(2, 3) = Text1.Text ’将text中的值写入excel工作表,其中,xlsheet.cells(2,3)表示工作表的第二行,第三列对应的格,xlsheet.cells(3,4)表示工作表的第三行,第四列对应的格,这样一来就可以很方便的预先设计出很规范并且很美观的报表,然后填入数据即可。
xlsheet.Cells(2, 5) = Text2.Text
xlsheet.Cells(3, 3) = Text3.Text
xlsheet.Cells(2, 7) = Text4.Text
xlbook.Save ’保存
xlbook.PrintOut ’打印(默认打印机打印)
xlApp.Quit ’退出
End Sub