例:比如一个表头有多个值组成,但要实现动态显示时,要经过以下几步操作来完成;
步骤一:把要显示的动态值分开,把要实现动态的控件放到XrPanel中,前端设计完成;
步骤二:Dev Express Report 代码中写公共过程,方便在程序中调用传值,以下过程目的,码数数量小于等于15只显示一行码数及数量,码数数量小于等于30只显示二行码数及数量,以此类推。。。。(主要是实现XrPanel控件的显示及高度控制)
Public Sub GetSizeDisPlay(ByVal IntSizeDisPlay As Object)
Select Case IntSizeDisPlay
Case Is <= 15
Me.XrPanel1.Visible = False
Me.XrTable3.Visible = False
Me.XrTable11.Visible = False
Me.XrPanel1.HeightF = 0
Me.ReportHeader.HeightF = Me.ReportHeader.HeightF - 254 '报表表头动态:加XrPanel控件后,先设置XrPanel的高度,后设置ReportHeader高度(不加XrPanel控件,ReportHeader设置高度无效)
Case Is <= 30
Me.XrTable11.Visible = False
Me.XrPanel1.HeightF = 127
Me.ReportHeader.HeightF = Me.ReportHeader.HeightF - 127 '报表表头动态:加XrPanel控件后,先设置XrPanel的高度,后设置ReportHeader高度(不加XrPanel控件,ReportHeader设置高度无效)
End Select
End Sub
步骤三:调用界面中代码
'DEV XRport 报表对象
Dim Report As New ReportsOrderManagement.frmC030_rpt02rpt() ‘报表对象
'DEV XRport 尺码显示控制
Dim sqlSizeDisPlay As String
Dim FDSSizeDisPlay As New DataSet
sqlSizeDisPlay = "select SizeNo from VC031_C030_C032 where ProdiD='" & txtProdID.Text & "' order by convert(int,Field2) " ’查询当前单据中尺码
FDSSizeDisPlay = op.exesqlreds(sqlSizeDisPlay)
Report.GetSizeDisPlay(FDSSizeDisPlay.Tables(0).Rows.Count)‘把尺码数量传入报表过程中
’数据源部分省略。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
'设置数据源
Report.DataSource = ds
‘报表显示
Report.ShowPreviewDialog()