VB中报表的使用方法.doc
文本预览下载声明
Option Explicit
Private Sub DataReport_Initialize()
Dim cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim str As String
Dim strsql As String
str = Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source= App.Path \db1.mdb
cnn.Open str
rs.CursorLocation = adUseClient
strsql = select * from table1
rs.Open strsql, cnn, adOpenDynamic, adLockOptimistic
Set DataReport1.DataSource = rs
DataReport1.Sections(1).Controls( Text1 ).Caption = rs.Fields(1)
DataReport1.Sections(2).Controls( Text2 ).Caption = rs.Fields(2)
DataReport1.Sections(3).Controls( Text3 ).Caption = rs.Fields(3)
DataReport1.Sections(4).Controls( Text4 ).Caption = rs.Fields(4)
End Sub
在报表中定义可四个RptTextBox控件.而且与都与数据库绑定了。运行看不到结果。老说下标越界
DataReport1.Sections(1).Controls(1).Caption ? = ? ? rs.Fields(1) controls(1);1表示你在报表上画它时的顺序.
vb 6.0专业版和企业版中的数据报表设计器与数据环境设计器是数据访问的新内容。msdn 所提供的prjnwind.vbp 示例工程在设计阶段(design time)就已将dataenvironment设为datareport的数据源,并将打印格式也设好,这种做法不太利于程序的通用性。当然,我们也可以对dataenvironment编程,在运行阶段(run time)控制数据源。其实,datareport可以完全脱离dataenvironment,而打印由动态sql生成的recordset。 实现代码如下: private sub datareport_initialize() … dim adoconnectionx as new adodb.connection dim adorecordsetx as new adodb.recordset adoconnectionx.open″provider=microsoft.jet.oledb.3.51;persist security info=false;data source=″ & app.path & ″\xxx.mdb″ adorecordsetx.open ″select * from表名″, adoconnectionx set datareportx.datasource = adorecordsetx ′设置 datareport 的数据源 … 由vb 6 所提供的datareport.sections.item(index).controls.item(index)...这样的语法不太利于编程控制数据报表设计器的专用控件的位置、大小等各种属性。但是,我们可以编程根据控件所在区域(section)和??属类别等将它们分成若干集合(collection),然后通过控制集合的元素来控制其所代表的控件。当然,在设计阶段我们要将足够多的控件绘制到datareport上备用。实现的主要部分代码如下: … ′根据控件所在区域(section)和所属类别分集合(collection) dim rhsec4—rptlbl—collection as new collection … ′页标头(pageheader)区域 shape(rptshape) 控件集合 dim phsec2—rptshp—col
显示全部