vb.net报表自定义 vb报表控件

如何用VB.NET做水晶报表?

CrystalReportViewer

创新互联从2013年创立,是专业互联网技术服务公司,拥有项目成都做网站、网站建设、外贸营销网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元乌兰察布做网站,已为上家服务,为乌兰察布各地企业和个人服务,联系电话:13518219792

dataset 定义数据源

.rpt 文件描述具体报表样式

再加一个调用报表的FORM,就可以实现简单的报表功能

Option Explicit

dim Report as New Cystal1

Private Sub Form_Load()

 Screen.MousePointer = vbHourglass

 '调用水晶报表时置鼠标为沙漏状 CRViewer91.ReportSource = Report '该语句的赋值将在后面被修改

 CRViewer91.ViewReport

 Screen.MousePointer = vbDefault '调用水晶报表完成后置鼠标为默认形状

End Sub

Private Sub Form_Resize()

 CRViewer91.Top = 0

 CRViewer91.Left = 0

 CRViewer91.Height = ScaleHeight

 CRViewer91.Width = ScaleWidth

End Sub

vb.net报表设置记录行数

Visualbasic代码编辑器没有这个功能,但可以用第三方的编辑软件Emedit来实现这个功能。

1、用Emedit打开*.frm文件。

2、点工具,当前配置属性,然后勾选显示行号即可。

在vb.net中怎么调用自定义类?

代码已测试。

一、测试需要的INI文件。名称为“setinfo.ini”,存放路径为你解决方案里“Bin“文件夹的”Debug“文件夹里。

内容:

[Location]

pnlTime.Location.X=787

pnlTime.Location.Y=0

[TopMost]

Top=True

二、操作INI文件的类。新建一个类,类中内容为:

Public Class Class1

Public Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" _

( _

ByVal lpApplicationName As String, _

ByVal lpKeyName As String, _

ByVal lpDefault As String, _

ByVal lpReturnedString As String, _

ByVal nSize As Int32, _

ByVal lpFileName As String _

) As Int32

End Class

三、界面代码:

Imports System.IO 'for path

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

getINI()

End Sub

Private Sub getINI()

Dim iniclass As New Class1 '

Dim myBf As String 'get set_info 开辟存储的内存

myBf = New String(CChar(""), 256)

Dim myFN As String '配置文件的文件路径

myFN = Path.Combine(My.Application.Info.DirectoryPath, "setinfo.ini")

Dim myAN As String 'Application_NAME,也是Section名称

myAN = Me.TextBox1.Text

Dim myKN As String 'KEY_NAME,关键字名称

myKN = Me.TextBox2.Text

Class1.GetPrivateProfileString(myAN, myKN, "", myBf, myBf.Length, myFN) '调用读取INI文件的操作

TextBox3.Text = Microsoft.VisualBasic.Left(myBf, InStr(myBf, Chr(0)) - 1) '截取有用部分,有必要

End Sub

End Class

四、测试截图如下

vb.net 表格 如何做出这样的表格 可以随时修改的

VB是常用的应用软件开发工具之一,由于VB的报表功能有限,而且一但报表格式发生变化,就得相应修改程序,给应用软件的维护工作带来极大的不便。因此有很多程序员现在已经充分利用EXECL的强大报表功来实现报表功能。但由于VB与EXCEL由于分别属于不同的应用系统,如何把它们有机地结合在一起,是一个值得我们研究的课题。

一、 VB读写EXCEL表:

VB本身提自动化功能可以读写EXCEL表,其方法如下:

1、在工程中引用Microsoft Excel类型库:

从"工程"菜单中选择"引用"栏;选择Microsoft Excel 9.0 Object Library(EXCEL2000),然后选择"确定"。表示在工程中要引用EXCEL类型库。

2、在通用对象的声明过程中定义EXCEL对象:

Dim xlApp As Excel.Application

Dim xlBook As Excel.WorkBook

Dim xlSheet As Excel.Worksheet

3、在程序中操作EXCEL表常用命令:

Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象

Set xlBook = xlApp.Workbooks.Open("文件名") '打开已经存在的EXCEL工件簿文件

xlApp.Visible = True '设置EXCEL对象可见(或不可见)

Set xlSheet = xlBook.Worksheets("表名") '设置活动工作表

xlSheet.Cells(row, col) =值 '给单元格(row,col)赋值

xlSheet.PrintOut '打印工作表

xlBook.Close (True) '关闭工作簿

xlApp.Quit '结束EXCEL对象

Set xlApp = Nothing '释放xlApp对象

xlBook.RunAutoMacros (xlAutoOpen) '运行EXCEL启动宏

xlBook.RunAutoMacros (xlAutoClose) '运行EXCEL关闭宏

4、在运用以上VB命令操作EXCEL表时,除非设置EXCEL对象不可见,否则VB程序可继续执行其它操作,也能够关闭EXCEL,同时也可对EXCEL进行操作。但在EXCEL操作过程中关闭EXCEL对象时,VB程序无法知道,如果此时使用EXCEL对象,则VB程序会产生自动化错误。形成VB程序无法完全控制EXCEL的状况,使得VB与EXCEL脱节。

二、 EXCEL的宏功能:

EXCEL提供一个Visual Basic编辑器,打开Visual Basic编辑器,其中有一工程属性窗口,点击右键菜单的"插入模块",则增加一个"模块1",在此模块中可以运用Visual Basic语言编写函数和过程并称之为宏。其中,EXCEL有两个自动宏:一个是启动宏(Sub Auto_Open()),另一个是关闭宏(Sub Auto_Close())。它们的特性是:当用EXCEL打含有启动宏的工簿时,就会自动运行启动宏,同理,当关闭含有关闭宏的工作簿时就会自动运行关闭宏。但是通过VB的自动化功能来调用EXCEL工作表时,启动宏和关闭宏不会自动运行,而需要在VB中通过命令xlBook.RunAutoMacros (xlAutoOpen)和xlBook.RunAutoMacros (xlAutoClose) 来运行启动宏和关闭宏。

三、 VB与EXCEL的相互勾通:

充分利用EXCEL的启动宏和关闭宏,可以实现VB与EXCEL的相互勾通,其方法如下:

在EXCEL的启动宏中加入一段程序,其功能是在磁盘中写入一个标志文件,同时在关闭宏中加入一段删除此标志文件的程序。VB程序在执行时通过判断此标志文件存在与否来判断EXCEL是否打开,如果此标志文件存在,表明EXCEL对象正在运行,应该禁止其它程序的运行。如果此标志文件不存在,表明EXCEL对象已被用户关闭,此时如果要使用EXCEL对象运行,必须重新创建EXCEL对象。

四、举例:

1、在VB中,建立一个FORM,在其上放置两个命令按钮,将Command1的Caption属性改为EXCEL,Command2的Caption属性改为End。然后在其中输入如下程序:

Dim xlApp As Excel.Application '定义EXCEL类

Dim xlBook As Excel.Workbook '定义工件簿类

Dim xlsheet As Excel.Worksheet '定义工作表类

Private Sub Command1_Click() '打开EXCEL过程

If Dir("D:\temp\excel.bz") = "" Then '判断EXCEL是否打开

Set xlApp = CreateObject("Excel.Application") '创建EXCEL应用类

xlApp.Visible = True '设置EXCEL可见

Set xlBook = xlApp.Workbooks.Open("D:\temp\bb.xls") '打开EXCEL工作簿

Set xlsheet = xlBook.Worksheets(1) '打开EXCEL工作表

xlsheet.Activate '激活工作表

xlsheet.Cells(1, 1) = "abc" '给单元格1行驶列赋值

xlBook.RunAutoMacros (xlAutoOpen) 运行EXCEL中的启动宏

Else

MsgBox ("EXCEL已打开")

End If

End Sub

Private Sub Command2_Click()

If Dir("D:\temp\excel.bz") "" Then '由VB关闭EXCEL

xlBook.RunAutoMacros (xlAutoClose) '执行EXCEL关闭宏

xlBook.Close (True) '关闭EXCEL工作簿

xlApp.Quit '关闭EXCEL

End If

Set xlApp = Nothing '释放EXCEL对象

End

End Sub

2、在D盘根目录上建立一个名为Temp的子目录,在Temp目录下建立一个名为"bb.xls"的EXCEL文件。

3、在"bb.xls"中打开Visual Basic编辑器,在工程窗口中点鼠标键选择插入模块,在模块中输入入下程序存盘:

Sub auto_open()

Open "d:\temp\excel.bz" For Output As #1 '写标志文件

Close #1

End Sub

Sub auto_close()

Kill "d:\temp\excel.bz" '删除标志文件

End Sub

4、运行VB程序,点击EXCEL按钮可以打开EXCEL系统,打开EXCEL系统后,VB程序和EXCEL分别属两个不同的应用系统,均可同时进行操作,由于系统加了判断,因此在VB程序中重复点击EXCEL按钮时会提示EXCEL已打开。如果在EXCEL中关闭EXCEL后再点EXCEL按钮,则会重新打开EXCEL。而无论EXCEL打开与否,通过VB程序均可关闭EXCEL。这样就实现了VB与EXCEL的无缝连接。

vb.net,水晶报表打印时纸张变为信纸,打印机里面已经自定义好了纸张,用EXCEL,WORD就正常,请高手指点

别的地方转来的!~ 不过我们以前做的时候 都是在打印机里增加一种打印纸 然后就可以选了!~

一下转载内容!~~~

水晶报表-强大而成熟,但是多少男儿汉败倒在他的自定义纸张设置上。

1:水晶报表是纸形打印。所以自定义纸张类打印肯定要在电脑上增加对应的纸张才行(手动加还是代码加这个不管)

2:纸张分3种系统内建(不可更改),自定义,打印机自带。很遗憾的是水晶只认系统内建的。

3:打印机一般分2种。1普通喷墨的A4,2有联单的针式

4:注意水晶报表不是所见所得的,预览的纸张是什么不一定打印的就是什么纸张(受3方影响。打印机、报表内设置、PAPERSIZE 属性,三者之间关系不详)。

5:对于第一种A4纸张。没什么好说的系统内建纸型。水晶报表认。直接指定就行

6:对于第二种联单的自定义型一般专机专用,当然是建好纸张让打印机默认自己建的纸张为默认首选了。

7:然后设置水晶报表使用打印机默认的纸张PaperSize = CrystalDecisions.Shared.PaperSize.DefaultPaperSize

以上能保证专机专纸的任何打印。:要注意第4点。如果你是自定义纸而且要预览要保障预览和打印都用指定的纸张,那么预览时你得指定PaperSize=你自定义纸张的索引号。打印的时候又改成CrystalDecisions.Shared.PaperSize.DefaultPaperSize

8:如果你想一个打印机多个自定义纸张那么用API吧动态改变打印机的默认纸张,根据以上拐2弯就能实现了遗憾的是网络打印机的话就没折了。o(︶︿︶)o 唉


本文题目:vb.net报表自定义 vb报表控件
文章起源:http://ybzwz.com/article/hpdcse.html