使用环境:VS2008、IE8.
实现功能:实现带参的存储过程查询数据;字体居中;给报表加网格线;表头显示不同颜色
实现效果如下图:
本文讲述的不是很详细,讲述了数据库中的一部分、程序中的一部分、报表中的一部分。
1、数据集设计
存储过程代码如下:
ALTER PROCEDURE [dbo].[sp_GetTestTableByStrWhere]
@strwhere VARCHAR(MAX)=' '
AS
BEGIN
DECLARE @sql VARCHAR(max)
IF (ISNULL(@strwhere,'')='')
SET @strwhere='where 1=1 '
BEGIN
set @sql='SELECT * FROM Test '+@strwhere
END
EXEC (@sql)
END
2、程序设计代码
前台部分代码:
<td>
<rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana"
Font-Size="8pt" Height="400px" width="100%">
<LocalReport ReportPath="Report.rdlc">
<DataSources>
<rsweb:ReportDataSource DataSourceId="ObjectDataSource1" Name="DataSet1_Test" />
</DataSources>
</LocalReport>
</rsweb:ReportViewer>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
OldValuesParameterFormatString="original_{0}" SelectMethod="GetDataByStrWhere"
TypeName="DataSet1TableAdapters.TestTableAdapter" >
<SelectParameters>
<asp:Parameter Name="strwhere" Type="String" />
</SelectParameters>
</asp:ObjectDataSource>
</td>
后台部分代码:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Me.drpPrimaryKey.Width = New Unit(150)
Me.drpName.Width = New Unit(150)
End Sub
Function getFilter() As String
Dim strfilter As String = String.Empty
If drpPrimaryKey.SelectedValue.Equals("All") Then
strfilter = String.Empty
Else
strfilter = " where column1='" + Me.drpPrimaryKey.SelectedValue + "'"
Return strfilter
End If
If drpName.SelectedValue.Equals("All") Then
strfilter = String.Empty
Else
strfilter = " where column2='" + Me.drpName.SelectedValue + "'"
Return strfilter
End If
Return strfilter
End Function
Protected Sub ObjectDataSource1_Selecting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ObjectDataSourceSelectingEventArgs) Handles ObjectDataSource1.Selecting
Dim strFilter As String = Me.getFilter
e.InputParameters.Item("strwhere") = strFilter
End Sub
Protected Sub ReportViewer1_ReportRefresh(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles ReportViewer1.ReportRefresh
Try
Me.ObjectDataSource1.Select()
Catch ex As Exception
End Try
End Sub
3、报表设计:
在程序中添加一个Report.rdlc控件吧!把需要显示的字段拖到表格的详细信息中,这样表头自动生成。我在刚开始做的时候把字段拖到表头里了,结果报表只显示了一条记录。表头的背景颜色好设置吧!点击工具栏中的彩色图标【一只彩色铅笔】,第一个是设置字体颜色的,最后一个是设置背景颜色的哦!如图:
字体居中就不需要我说了,找表格的属性就行了。网格线如何设计?如下图
如果大家要代码的话,就到我的CSDN空间里下载吧!不需要积分的。