您的位置:首页 > 其它

Reports Starter Kit详细介绍(一)

2006-05-26 21:28 357 查看
Reports Starter Kit八个报表中难易度各不相同.所以我打算从简单的开始入手.先来讲这三个报表

八个报表全部采用三层架构来实现,里面有一个SqlHelper的辅助类(数据访问层).

每个报表都有两个类

一个是业务逻辑类,一个是数据集合类.

private void Page_Load(object sender, System.EventArgs e)
<asp:datalist id="CategoriesList" runat="server" RepeatDirection="Vertical" repeatcolumns="1"
Width="100%" CellPadding="5" cellspacing="15">
<itemtemplate>
<table border="0" cellpadding="3" cellspacing="0" class="Content" width="100%">
<tr>
<td valign="top" class="CategoryHeader">
<!-- 类别 -->
Category
</td>
</tr>
<tr>
<td>
<!-- 具体类别产品 -->
<asp:datagrid id=Datagrid1 runat="server" autogeneratecolumns="False" DataSource='<%# GetDetails((int)DataBinder.Eval(Container.DataItem, "CategoryID")) %>' OnItemDataBound="CalculateExtendedPrice" BorderWidth="0" GridLines="None" AllowSorting="true" OnSortCommand="SortGrid" Width="100%">
<columns>
<asp:boundcolumn DataField="ProductName" HeaderText="Product" SortExpression="ProductName" ItemStyle-CssClass="ItemStyle"
HeaderStyle-CssClass="ProductHeader" ItemStyle-Width="200"></asp:boundcolumn>
<asp:boundcolumn DataField="UnitsInStock" HeaderText="Units In Stock" ItemStyle-CssClass="ItemStyleRight"
HeaderStyle-CssClass="ProductHeaderRight" SortExpression="UnitsInStock"></asp:boundcolumn>
<asp:templatecolumn>
<itemtemplate>
<img src="images/spacer.gif" width="70" height="1" />
</itemtemplate>
</asp:templatecolumn>
<asp:boundcolumn DataField="QuantityPerUnit" HeaderText="Quantity Per Unit" ItemStyle-CssClass="ItemStyle"
HeaderStyle-CssClass="ProductHeader"></asp:boundcolumn>
<asp:boundcolumn DataField="UnitPrice" HeaderText="Unit Price" ItemStyle-CssClass="ItemStyleRight"
HeaderStyle-CssClass="ProductHeaderRight" SortExpression="UnitPrice"></asp:boundcolumn>
<asp:boundcolumn HeaderText="Extended Price" ItemStyle-CssClass="ItemStyleRight" HeaderStyle-CssClass="ProductHeaderRight"></asp:boundcolumn>
</columns>
</asp:datagrid>
</td>
</tr>
<tr>
<td class="CategoryFooter">
Total Units in Stock:
</td>
</tr>
</table>
</itemtemplate>
<headerstyle cssclass="ReportTitle"></headerstyle>
</asp:datalist>

2.排序

private void SortGridData(TabularReportCollection list, string sortField, bool asc)
//按不同排序字段执行不同排序方法
public void Sort(TabularReportFields sortField, bool isAscending)
protected void CalculateExtendedPrice(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
private void CustomerGrid_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
private void pagingButton_Click(object sender, System.EventArgs e)
<asp:repeater id="EmployeesList" runat="server">
<headertemplate>
<table border="0" cellpadding="3" cellspacing="0" width="100%">
</headertemplate>
<itemtemplate>
<tr>
<td colspan="4" valign="top" class="HeaderStyleText">
Employee:
</td>
<td class="HeaderStyleText"></td>
</tr>
<tr>
<td width="50px" class="CategoryFooter"> </td>
<td valign="top" class="CategoryFooter" width="250">
</td>
<td valign="top" class="CategoryFooter" width="200">
<br>
</td>
<td valign="top" align="left" class="CategoryFooter" width="100">
ext.
</td>
<td width="50px" class="CategoryFooter"> </td>
</tr>
<tr height="1">
<td colspan="5" valign="top" class="HeadSeparator">
</td>
</tr>
<tr>
<td></td>
</td>
<td></td>
</tr>
</itemtemplate>
<separatortemplate>
<tr height="1">
<td colspan="5" class="Headseparator">
</td>
</tr>
<tr height="20">
<td colspan="5" class="separator">
</td>
</tr>
</separatortemplate>
<footertemplate>
</table>
</footertemplate> </asp:repeater>

private void BindList()
{
EmployeesList.DataSource = Components.TextReport.GetEmployees();
EmployeesList.DataBind();
}

.repeater控件最大的好处就是可以自定义HTML格式.当然还包括一些模板.但我感觉还是DataList强大一点吧.

以上就是报表中几个简单的例子,相信大家这些都应该会的.如果有错误希望大家指出.

还有今天比较郁闷,一直在学asp.net,在实习公司看到的全部是WinForm的程序,郁闷死了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: