| 作者 | 主题 |
|---|---|
|
bluecloud009 游民 经验值:83 发帖数:57 精华帖:1 |
楼主
主题:VB报表实现(含原程序及注释),仅供参考。
这个程序是我自己写的,已经在实际使用,贴出来供大家参考。
我这里的报表实现主要是通过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
bluecloud009
|