﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-云自无心水自闲-随笔分类-.Net</title><link>http://www.blogjava.net/usherlight/category/7984.html</link><description>天平山上白云泉，云自无心水自闲。何必奔冲山下去，更添波浪向人间！</description><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 04:02:36 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 04:02:36 GMT</pubDate><ttl>60</ttl><item><title>DevExpress XtraReports设计器中工具箱控件的本地化（主要是汉化）</title><link>http://www.blogjava.net/usherlight/archive/2006/11/08/79857.html</link><dc:creator>云自无心水自闲</dc:creator><author>云自无心水自闲</author><pubDate>Wed, 08 Nov 2006 07:15:00 GMT</pubDate><guid>http://www.blogjava.net/usherlight/archive/2006/11/08/79857.html</guid><wfw:comment>http://www.blogjava.net/usherlight/comments/79857.html</wfw:comment><comments>http://www.blogjava.net/usherlight/archive/2006/11/08/79857.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/usherlight/comments/commentRss/79857.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/usherlight/services/trackbacks/79857.html</trackback:ping><description><![CDATA[第一步. 使用正统的Localizer方法<br />在项目中添加一个类ChnReportLocalizer，继承ReportLocalizer，将ReportLocalizer类的所有代码拷贝过来。原来的代码返回的都是英文，我们需要全部翻译成中文<br />比如原来是    case ReportStringId.Msg_FileNotFound:<br />                    return "File not found.";<br />我们修改成：<br />            case ReportStringId.Msg_FileNotFound:<br />                    return "文件没有找到";<br />全部翻译完毕后，赋值<br />DevExpress.XtraReports.Localization.ReportLocalizer.Active = new ChnReportLocalizer();<br />再次运行XtraReports的Designer，发现只有第一个Pointer被正确的翻译了，下面的CheckBox、RichText等等都还是英文。查找原因发现工具箱的控件是动态生成的，在XtraReports.UserDesigner.Native.AsmHelper中的函数GetToolboxItems负责往工具箱内添加控件。控件显示的名称就是ToolboxItem的DisplayName。<br /><br />OK，搞清楚之后开始动手修改，<br />1. 在XtraReports.Localization.ReportStringId这个枚举中添加控件对应的枚举，比如：Subreport对应添加枚举值为UD_SubreportCaption，CheckBox添加的枚举值为UD_CheckBoxCaption，控件名与枚举值的名称需要有对应关系，因为需要使用Enum.Parse根据控件的名称映射枚举值。<br />2. 在ChnReportLocalizer中添加对应的翻译，case ReportStringID.UD_SubreportCaption : return "子报表"; 等等。<br />3. 在AsmHelper中修改原代码，新生成的ToolboxItem不再直接添加到ArrayList中，先进行DisplayName的本地化。先根据DisplayName使用Enum.Parse获得枚举值，然后调用ReportLocalizer.GetString获得本地化的字符串赋值给ToolboxItem.DisplayName。<br /><br /><br /><img src ="http://www.blogjava.net/usherlight/aggbug/79857.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/usherlight/" target="_blank">云自无心水自闲</a> 2006-11-08 15:15 <a href="http://www.blogjava.net/usherlight/archive/2006/11/08/79857.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>XtraReports的报表编辑器</title><link>http://www.blogjava.net/usherlight/archive/2006/09/26/72053.html</link><dc:creator>云自无心水自闲</dc:creator><author>云自无心水自闲</author><pubDate>Tue, 26 Sep 2006 08:53:00 GMT</pubDate><guid>http://www.blogjava.net/usherlight/archive/2006/09/26/72053.html</guid><wfw:comment>http://www.blogjava.net/usherlight/comments/72053.html</wfw:comment><comments>http://www.blogjava.net/usherlight/archive/2006/09/26/72053.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/usherlight/comments/commentRss/72053.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/usherlight/services/trackbacks/72053.html</trackback:ping><description><![CDATA[XtraReports的设计器可以作为给终端用户使用的独立的报表设计器, 也就是说用户可以自己编辑,预览,甚至创建报表. 这个设计器和Visual Studio的集成开发环境很象, 可以定制外观, 满足用户的需要. 甚至, 你可以自己创建报表设计器, 因为在XtraReport中设计器是一个分开独立的控件.<br />    先介绍一下设计器的组成元件. 报表设计器主要是用于使用户可以编辑报表. 标准的设计器是使用XRDesignFormEx类来展示的, 这个类提供了编辑和创建报表的主要功能.<br />    下图是一个标准的报表设计器:<br /><img src="http://www.devexpress.com/Help/XtraReports/img/EndUserDesigner%20-%20EUDElementspng.png" /><br /><br />    这个Form里包含了不同的元件: 报表在XRDesignPanel对象中被编辑, 其他工具栏和停靠面板由XRDesignBarManager和XRDesignDockManager控制. 所有的这些控件都可以通过设计Form的XRDesignFormExBase.DesignPanel, XRDesignFormEx.DesignBarManager和XRDesignFormEx.DesignDockManager属性来操作.<br />    下面列举了设计器中使用的元件接口.<br /><table cellpadding="5" cellspacing="2"><tbody><tr valign="top"><th><p align="center">Element</p></th><th><p align="center">Description</p></th></tr><tr valign="top"><td><b>Design Panel</b></td><td>这是报表设计器的主要元件. 它展示了一个面板用于创建一个新的报表或者编辑原有的报表. 它显示报表带并控制报表带中控件的归属, 并可以移动, 缩放, 复制, 粘贴这些控件, 另外还可以在控件上绑定数据, 或者进行其他的操作.  而且可以预览报表效果. <br /></td></tr><tr valign="top"><td><b>Main Menu</b></td><td>展示报表设计器的主菜单. 包含了一系列的项目和子项目, 用于为用户提供相关操作. 通常, 它复制所有的ToolBar按钮, 格式化按钮以及布局按钮.<br /></td></tr><tr valign="top"><td><b>Main Toolbar</b></td><td>展示报表设计器的ToolBar. 包含创建报表, 保存装载报表布局, 剪裁,复制,粘贴等按钮, 以及撤销, 重做等操作.<br /></td></tr><tr valign="top"><td><b>Formatting Toolbar</b></td><td>展示报表设计器的格式化Toolbar. 包含一些缺省的操作文本的按钮. <br /></td></tr><tr valign="top"><td><b>Layout Toolbar</b></td><td>展示报表设计器的布局Toolbar. 包含缩放, 移动一组控件位置的按钮.<br /></td></tr><tr valign="top"><td><b>Status Bar<br /><br /></b></td><td>在报表设计器底部展示StatusBar. 通常用于显示报表编辑操作过程中的特殊信息.<br /></td></tr><tr valign="top"><td><b>Toolbox</b></td><td>展示报表设计器的控件工具箱. 包含所有报表控件, 可以拖放新的控件到报表区中. 可以添加自定义控件到工具箱中.<br /></td></tr><tr valign="top"><td><b>Report Explorer</b></td><td>展示报表设计器的Explorer. 它显示了报表树状结构, 使用它可以很方便地浏览整个报表.<br /></td></tr><tr valign="top"><td><b>Field List</b></td><td>展示了报表设计器的树状字段列表. 显示了数据源的树状结构. 用于将数据绑定到报表.<br /></td></tr><tr valign="top"><td><b>Property Grid</b></td><td>展示报表设计器的属性容器. 可以修改报表元件的属性.<br /></td></tr></tbody></table><br />    激活报表设计器: 尽管报表设计器是XRDesignFromEx的实例, 但一般不需要手工创建此对象. 通常使用以下代码:<br /><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);"> Create a new report.</span><span style="color: rgb(0, 128, 0);"><br /></span><span style="color: rgb(0, 0, 0);">XtraReport1 report </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);"> XtraReport1();<br /><br /></span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);"> Invoke the End-User Designer and load the report into it.</span><span style="color: rgb(0, 128, 0);"><br /></span><span style="color: rgb(0, 0, 0);">report.ShowDesigner();<br /><br /></span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);"> Invoke the End-User Designer and load the report into it, modally.</span><span style="color: rgb(0, 128, 0);"><br /></span><span style="color: rgb(0, 0, 0);">report.ShowDesignerDialog();</span></div><br /><img src ="http://www.blogjava.net/usherlight/aggbug/72053.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/usherlight/" target="_blank">云自无心水自闲</a> 2006-09-26 16:53 <a href="http://www.blogjava.net/usherlight/archive/2006/09/26/72053.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DevExpress XtraReports的控件介绍(使用帮助)</title><link>http://www.blogjava.net/usherlight/archive/2006/09/25/71701.html</link><dc:creator>云自无心水自闲</dc:creator><author>云自无心水自闲</author><pubDate>Mon, 25 Sep 2006 03:55:00 GMT</pubDate><guid>http://www.blogjava.net/usherlight/archive/2006/09/25/71701.html</guid><wfw:comment>http://www.blogjava.net/usherlight/comments/71701.html</wfw:comment><comments>http://www.blogjava.net/usherlight/archive/2006/09/25/71701.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/usherlight/comments/commentRss/71701.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/usherlight/services/trackbacks/71701.html</trackback:ping><description><![CDATA[<p>在此介绍创建报表过程中使用到的XtraReports的控件. 所有的控件都可以在设计时,运行时,或者通过设计器添加到报表中, 本文介绍的是一些最基本的信息. <br /></p>
		<h1 class="heading">
				<span onclick="ExpandCollapse(section4Toggle)" style="cursor: default;" onkeypress="ExpandCollapse_CheckKey(section4Toggle)">报表控件概览
</span>
		</h1>
		<p>XtraReports中的所有报表对象都通过在Bands中的控件来表现. 在设计时, 报表控件可以从工具箱添加到报表中, 只有点击工具箱中需要的控件, 然后放到报表带中即可. 另一种方式是使用字段列举窗口添加控件, 这种情况下, 控件将和数据字段绑定.<br /></p>
		<p>如果要在运行时添加报表控件, 你只需要简单地创建一个相应类型的变量, 并通过XRControlCollection.Add方法添加到报表带中即可</p>
		<p>所有的报表控件包括bands都是继承自XRControl. 其中部分控件可以还作为容器, 这种情况下控件集合可以通过XRControl.Controls来获得. 如果要获取控件的容器, 可使用XRControl.Parent属性.</p>
		<p>下面列举了XtraReports中的标准报表控件.<br /></p>
		<div class="tableSection">
				<table cellpadding="5" cellspacing="2">
						<tbody>
								<tr valign="top">
										<th>
Class
</th>
										<th>
Description
</th>
								</tr>
								<tr valign="top">
										<td>
												<img src="http://www.devexpress.com/Help/XtraReports/img/Report%20Controls%20-%20SubreportIcon.gif" />
												<a href="http://www.devexpress.com/Help/Content.aspx?help=XtraReports&amp;document=DevExpressXtraReportsUISubreporttopic.htm">Subreport</a>
										</td>
										<td>用于在报表中添加子报表. 被添加的报表需要被包含在项目中, 并设置SubReport的ReportSource属性. 子报表可用于合并报表和创建主从表.<br /></td>
								</tr>
								<tr valign="top">
										<td>
												<img src="http://www.devexpress.com/Help/XtraReports/img/Report%20Controls%20-%20WinCtlContainerIcon.gif" />
												<a href="http://www.devexpress.com/Help/Content.aspx?help=XtraReports&amp;document=DevExpressXtraReportsUIWinControlContainertopic.htm">WinControlContainer</a>
										</td>
										<td>用于添加Windows Forms或者第三方的控件. 此对实际上是添加的控件的封装, 并提供对Drawing方法的支持<br /></td>
								</tr>
								<tr valign="top">
										<td>
												<img src="http://www.devexpress.com/Help/XtraReports/img/Report%20Controls%20-%20XRBarCodeIcon.gif" />
												<a href="http://www.devexpress.com/Help/Content.aspx?help=XtraReports&amp;document=DevExpressXtraReportsUIXRBarCodetopic.htm">XRBarCode</a>
										</td>
										<td>用于在报表中显示条形码. 使用XRBarCode.Symbology和XRBarCode.SymbologyId来设置条形码的类型<br /></td>
								</tr>
								<tr valign="top">
										<td>
												<img src="http://www.devexpress.com/Help/XtraReports/img/Report%20Controls%20-%20XRChartIconpng.png" />
												<a href="http://www.devexpress.com/Help/Content.aspx?help=XtraReports&amp;document=DevExpressXtraReportsUIXRCharttopic.htm">XRChart</a>
										</td>
										<td>在报表中显示图形, 使用此控件来根据一个或多个SeriesViewTypes来展示不同的数据.<br /></td>
								</tr>
								<tr valign="top">
										<td>
												<img src="http://www.devexpress.com/Help/XtraReports/img/Report%20Controls%20-%20XRCheckBoxIcon.gif" />
												<a href="http://www.devexpress.com/Help/Content.aspx?help=XtraReports&amp;document=DevExpressXtraReportsUIXRCheckBoxtopic.htm">XRCheckBox</a>
										</td>
										<td>用于在报表中展示复选框. <br /></td>
								</tr>
								<tr valign="top">
										<td>
												<img src="http://www.devexpress.com/Help/XtraReports/img/Report%20Controls%20-%20XRLabelIcon.gif" />
												<a href="http://www.devexpress.com/Help/Content.aspx?help=XtraReports&amp;document=DevExpressXtraReportsUIXRLabeltopic.htm">XRLabel</a>
										</td>
										<td>标签. 可以是单行的, 也可以是多行的.<br /></td>
								</tr>
								<tr valign="top">
										<td>
												<img src="http://www.devexpress.com/Help/XtraReports/img/Report%20Controls%20-%20XRLineIcon.gif" />
												<a href="http://www.devexpress.com/Help/Content.aspx?help=XtraReports&amp;document=DevExpressXtraReportsUIXRLinetopic.htm">XRLine</a>
										</td>
										<td>线条. 使用这个控件来画线.<br /></td>
								</tr>
								<tr valign="top">
										<td>
												<img src="http://www.devexpress.com/Help/XtraReports/img/Report%20Controls%20-%20XRPageBreakIcon.gif" />
												<a href="http://www.devexpress.com/Help/Content.aspx?help=XtraReports&amp;document=DevExpressXtraReportsUIXRPageBreaktopic.htm">XRPageBreak</a>
										</td>
										<td>换页. 如果是Band中需要换页, 那么使用控件的Band.PageBreak属性比较好.<br /></td>
								</tr>
								<tr valign="top">
										<td>
												<img src="http://www.devexpress.com/Help/XtraReports/img/Report%20Controls%20-%20XRPageInfoIcon.gif" />
												<a href="http://www.devexpress.com/Help/Content.aspx?help=XtraReports&amp;document=DevExpressXtraReportsUIXRPageInfotopic.htm">XRPageInfo</a>
										</td>
										<td>显示报表页面的附加信息. 可以显示页码, 日期或者其他信息.<br /></td>
								</tr>
								<tr valign="top">
										<td>
												<img src="http://www.devexpress.com/Help/XtraReports/img/Report%20Controls%20-%20XRPanelIcon.gif" />
												<a href="http://www.devexpress.com/Help/Content.aspx?help=XtraReports&amp;document=DevExpressXtraReportsUIXRPaneltopic.htm">XRPanel</a>
										</td>
										<td>用于包含其他控件的控件. 可以使用此控件来进行控件的分组.<br /></td>
								</tr>
								<tr valign="top">
										<td>
												<img src="http://www.devexpress.com/Help/XtraReports/img/Report%20Controls%20-%20XRPictureBoxIcon.gif" />
												<a href="http://www.devexpress.com/Help/Content.aspx?help=XtraReports&amp;document=DevExpressXtraReportsUIXRPictureBoxtopic.htm">XRPictureBox</a>
										</td>
										<td>在报表中显示一个图片<br /></td>
								</tr>
								<tr valign="top">
										<td>
												<img src="http://www.devexpress.com/Help/XtraReports/img/Report%20Controls%20-%20XRRichTextBoxIcon.gif" />
												<a href="http://www.devexpress.com/Help/Content.aspx?help=XtraReports&amp;document=DevExpressXtraReportsUIXRRichTexttopic.htm">XRRichText</a>
										</td>
										<td>显示一个控件, 用于显示,输入,修改格式化的文本. 可以用XRRichText.LoadFile从文件中加载文本.<br /></td>
								</tr>
								<tr valign="top">
										<td>
												<img src="http://www.devexpress.com/Help/XtraReports/img/Report%20Controls%20-%20XRTableIcon.gif" />
												<a href="http://www.devexpress.com/Help/Content.aspx?help=XtraReports&amp;document=DevExpressXtraReportsUIXRTabletopic.htm">XRTable</a>
										</td>
										<td>表格</td>
								</tr>
								<tr valign="top">
										<td>
												<img src="http://www.devexpress.com/Help/XtraReports/img/Report%20Controls%20-%20XRTableCellIcon.gif" />
												<a href="http://www.devexpress.com/Help/Content.aspx?help=XtraReports&amp;document=DevExpressXtraReportsUIXRTableCelltopic.htm">XRTableCell</a>
										</td>
										<td>表格单元. 与XRControl.Text绑定<br /></td>
								</tr>
								<tr valign="top">
										<td>
												<img src="http://www.devexpress.com/Help/XtraReports/img/Report%20Controls%20-%20XRTableRowIcon.gif" />
												<a href="http://www.devexpress.com/Help/Content.aspx?help=XtraReports&amp;document=DevExpressXtraReportsUIXRTableRowtopic.htm">XRTableRow</a>
										</td>
										<td>表格中的行. 通过不需要用到此控件, 直接操作表格单元更普遍.<br /></td>
								</tr>
								<tr valign="top">
										<td>
												<img src="http://www.devexpress.com/Help/XtraReports/img/Report%20Controls%20-%20XRZipControlIcon.gif" />
												<a href="http://www.devexpress.com/Help/Content.aspx?help=XtraReports&amp;document=DevExpressXtraReportsUIXRZipCodetopic.htm">XRZipCode</a>
										</td>
										<td>邮政编码</td>
								</tr>
						</tbody>
				</table>
		</div>
		<p>
				<br />
		</p><img src ="http://www.blogjava.net/usherlight/aggbug/71701.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/usherlight/" target="_blank">云自无心水自闲</a> 2006-09-25 11:55 <a href="http://www.blogjava.net/usherlight/archive/2006/09/25/71701.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DevExpress的XtraReport中的Report Bands介绍和使用心得(帮助文档)</title><link>http://www.blogjava.net/usherlight/archive/2006/09/22/71268.html</link><dc:creator>云自无心水自闲</dc:creator><author>云自无心水自闲</author><pubDate>Fri, 22 Sep 2006 03:05:00 GMT</pubDate><guid>http://www.blogjava.net/usherlight/archive/2006/09/22/71268.html</guid><wfw:comment>http://www.blogjava.net/usherlight/comments/71268.html</wfw:comment><comments>http://www.blogjava.net/usherlight/archive/2006/09/22/71268.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/usherlight/comments/commentRss/71268.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/usherlight/services/trackbacks/71268.html</trackback:ping><description><![CDATA[<p>一个普通的XtraReport报表一般包含数个包含报表控件的带. 在这里介绍一个XtraReports中的几种不同类型的带, 他们都有一些什么用途, 又是如何添加,编辑,删除. <br /></p>
		<h1 class="heading">
				<span onclick="ExpandCollapse(section5Toggle)" style="cursor: default;" onkeypress="ExpandCollapse_CheckKey(section5Toggle)">Report Bands
</span>
		</h1>
		<div class="section" name="collapseableSection" style="">
				<div>
						<p>在把报表添加到应用之后, 缺省的样子如下图所示. 可以看到, 报表被初始化分为3个基本的带(页头, 明细, 和页脚), 这些带中可以添加不同的报表控件.<br /></p>
						<img src="http://www.devexpress.com/Help/XtraReports/img/ReportBasics%20-%20ReportBands%201.png" />
						<p>每一种带指明了控件在报表中是怎样定位和被打印的, 即确定了打印的顺序和次数. 注意, 有些&lt;band strips&gt;包含了带是如何被打印的信息, 比如: PageHeader和PageFooter就说明了是每一页都有这一带的.<br /></p>
						<p>在创建报表时, 可以添加或者删除任意的带. 在XtraReports中有很多不同类型的带, 每一个都是&lt;Band&gt;的子类. 列举如下:<br /></p>
						<div class="tableSection">
								<table cellpadding="5" cellspacing="2">
										<tbody>
												<tr valign="top">
														<th>
Bands类</th>
														<th>
描述</th>
												</tr>
												<tr valign="top">
														<td>
																<a href="http://www.devexpress.com/Help/Content.aspx?help=XtraReports&amp;document=DevExpressXtraReportsUITopMarginBandtopic.htm">TopMarginBand</a>
														</td>
														<td>用于放置出现在报表每页页头最上面的控件
</td>
												</tr>
												<tr valign="top">
														<td>
																<a href="http://www.devexpress.com/Help/Content.aspx?help=XtraReports&amp;document=DevExpressXtraReportsUIReportHeaderBandtopic.htm">ReportHeaderBand</a>
														</td>
														<td>用于放置出现在报表开头的控件 
</td>
												</tr>
												<tr valign="top">
														<td>
																<a href="http://www.devexpress.com/Help/Content.aspx?help=XtraReports&amp;document=DevExpressXtraReportsUIPageHeaderBandtopic.htm">PageHeaderBand</a>
														</td>
														<td>用于放置出现在报表页上面, 仅次于TopMarginBand位置的控件. 主要是用于放置需要分页的表格的头, <br /></td>
												</tr>
												<tr valign="top">
														<td>
																<a href="http://www.devexpress.com/Help/Content.aspx?help=XtraReports&amp;document=DevExpressXtraReportsUIGroupHeaderBandtopic.htm">GroupHeaderBand</a>
														</td>
														<td>用于放置明细带中分组记录的头部控件. <br /></td>
												</tr>
												<tr valign="top">
														<td>
																<a href="http://www.devexpress.com/Help/Content.aspx?help=XtraReports&amp;document=DevExpressXtraReportsUIDetailBandtopic.htm">DetailBand</a>
														</td>
														<td>用于显示绑定数据的每条记录<br /></td>
												</tr>
												<tr valign="top">
														<td>
																<a href="http://www.devexpress.com/Help/Content.aspx?help=XtraReports&amp;document=DevExpressXtraReportsUIDetailReportBandtopic.htm">DetailReportBand</a>
														</td>
														<td>用于创建主从报表. 主从关系由从报表的XtraReportsBase.DataMember属性指定
</td>
												</tr>
												<tr valign="top">
														<td>
																<a href="http://www.devexpress.com/Help/Content.aspx?help=XtraReports&amp;document=DevExpressXtraReportsUIGroupFooterBandtopic.htm">GroupFooterBand</a>
														</td>
														<td>用于放置明细带中分组记录下方的控件<br /></td>
												</tr>
												<tr valign="top">
														<td>
																<a href="http://www.devexpress.com/Help/Content.aspx?help=XtraReports&amp;document=DevExpressXtraReportsUIPageFooterBandtopic.htm">PageFooterBand</a>
														</td>
														<td>用于放置报表页下方的控件<br /></td>
												</tr>
												<tr valign="top">
														<td>
																<a href="http://www.devexpress.com/Help/Content.aspx?help=XtraReports&amp;document=DevExpressXtraReportsUIReportFooterBandtopic.htm">ReportFooterBand</a>
														</td>
														<td>用于放置报表结束的控件 
</td>
												</tr>
												<tr valign="top">
														<td>
																<a href="http://www.devexpress.com/Help/Content.aspx?help=XtraReports&amp;document=DevExpressXtraReportsUIBottomMarginBandtopic.htm">BottomMarginBand</a>
														</td>
														<td>用于放置报表每页最下方的控件
</td>
												</tr>
										</tbody>
								</table>
						</div>
						<div class="alert">
								<table cellpadding="0" cellspacing="0" width="100%">
										<tbody>
												<tr>
														<td>
																<br />
														</td>
												</tr>
										</tbody>
								</table>
						</div>
						<p>下图显示了不同类型的带的相对位置:<br /></p>
						<img src="http://www.devexpress.com/Help/XtraReports/img/ReportBasics%20-%20ReportBands%202.png" />
						<p>
								<img src="http://www.devexpress.com/Help/XtraReports/img/ReportBasics%20-%20ReportBandsColor1.gif" />
								<b>TopMarginBand</b> and <b>BottomMarginBand</b></p>
						<p>
								<img src="http://www.devexpress.com/Help/XtraReports/img/ReportBasics%20-%20ReportBandsColor2.gif" />
								<b>ReportHeaderBand</b> and <b>ReportFooterBand</b></p>
						<p>
								<img src="http://www.devexpress.com/Help/XtraReports/img/ReportBasics%20-%20ReportBandsColor3.gif" />
								<b>PageHeaderBand</b> and <b>PageFooterBand</b></p>
						<p>
								<img src="http://www.devexpress.com/Help/XtraReports/img/ReportBasics%20-%20ReportBandsColor4.gif" />
								<b>GroupHeaderBand</b> and <b>GroupFooterBand</b></p>
						<p>
								<img src="http://www.devexpress.com/Help/XtraReports/img/ReportBasics%20-%20ReportBandsColor5.gif" />
								<b>DetailBand</b>
						</p>
						<p>报表的预览显示的不是带本身, 而是&lt;PrintingSystem&gt;的输出. PageHeaderBand, PageFooterBand, TopMarginBand和BottomMarginBand在报表预览的每一页都有输出. ReportHeaderBand和ReportFooterBand类只显示一次. GroupHeaderBand和GroupFooterBand出现在每个记录组中. <br /></p>
				</div>
		</div>
		<h1 class="heading">
				<span onclick="ExpandCollapse(section6Toggle)" style="cursor: default;" onkeypress="ExpandCollapse_CheckKey(section6Toggle)">
						<br />
				</span>
		</h1>
		<br /><img src ="http://www.blogjava.net/usherlight/aggbug/71268.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/usherlight/" target="_blank">云自无心水自闲</a> 2006-09-22 11:05 <a href="http://www.blogjava.net/usherlight/archive/2006/09/22/71268.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DevExpress的XtraReports使用心得(帮助文档)</title><link>http://www.blogjava.net/usherlight/archive/2006/09/22/71256.html</link><dc:creator>云自无心水自闲</dc:creator><author>云自无心水自闲</author><pubDate>Fri, 22 Sep 2006 02:20:00 GMT</pubDate><guid>http://www.blogjava.net/usherlight/archive/2006/09/22/71256.html</guid><wfw:comment>http://www.blogjava.net/usherlight/comments/71256.html</wfw:comment><comments>http://www.blogjava.net/usherlight/archive/2006/09/22/71256.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/usherlight/comments/commentRss/71256.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/usherlight/services/trackbacks/71256.html</trackback:ping><description><![CDATA[在XtraReport中, 每一个报表都是XtraReport或者其子类. 打个比方说, XtraReport就好象Windows Forms. 同样的道理, 所有的form都Form类的子类.<br /><img src="http://www.devexpress.com/Help/XtraReports/img/ReportBasics%20-%20ReportBuildingBasics1.png" /><br />  XtraReport中的报表类可以与数据绑定也可以不绑定. 如果要创建一个绑定数据的报表, 需要查看&lt;数据绑定&gt;和&lt;绑定数据控件&gt;这两个主题的帮助.<br />  在创建一个报表时, 可以从已有的报表中加载样式和布局, 样式中包含了报表控件外观的属性值, 而布局包含了报表的结构信息. 另外, 还可以从其他报表系统中导入报表, 比如: Access, 水晶报表等等, 如果要详细了解XtraReport的导入功能, 请参阅&lt;Importing Overview&gt;主题.<br />  报表类(XtraReport的子类)创建后, 就可以生成其实例. 需要注意的是, XtraReport对象可以在Windows Forms中使用也可以在Asp.net中使用. 在Windows应用中使用报表, 通常需要维护报表的&lt;Printing System&gt;, 这个对象提供了报表的输出功能.<br /><br />  创建报表有两种方式, 一种是简单地添加一个"模板"报表, 一种是通过报表向导来创建报表. 在报表添加到项目后, 报表设计器提供了大量的设计时元素来加快简化报表的创建. XtraReport工具箱包含了所有的控件, Report Navigator可以浏览整个报表, Feild List可以拖放数据字段来创建与数据绑定的报表控件. <br />   XtraReport的所有报表都是由&lt;Report Band&gt;和&lt;Report Control&gt;组成的.<br /><div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);"> XtraReport1 : DevExpress.XtraReports.UI.XtraReport<br />{<br />   </span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);"> DevExpress.XtraReports.UI.DetailBand Detail;<br />   </span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);"> DevExpress.XtraReports.UI.PageHeaderBand PageHeader;<br />   </span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);"> DevExpress.XtraReports.UI.PageFooterBand PageFooter;<br />   </span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);"> DevExpress.XtraReports.UI.XRLabel xrLabel1;<br />   </span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);"> DevExpress.XtraReports.UI.XRLabel xrLabel2;<br /><br />   </span><span style="color: rgb(0, 0, 255);">private</span><span style="color: rgb(0, 0, 0);"> System.ComponentModel.Container components </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">null</span><span style="color: rgb(0, 0, 0);">;<br /><br />   </span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);"> XtraReport1()<br />   {<br />      InitializeComponent();<br />   }<br /><br />   </span><span style="color: rgb(0, 0, 255);">protected</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">override</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);"> Dispose( </span><span style="color: rgb(0, 0, 255);">bool</span><span style="color: rgb(0, 0, 0);"> disposing )<br />   {<br />      </span><span style="color: rgb(0, 0, 255);">if</span><span style="color: rgb(0, 0, 0);">( disposing )<br />      {<br />         </span><span style="color: rgb(0, 0, 255);">if</span><span style="color: rgb(0, 0, 0);">(components </span><span style="color: rgb(0, 0, 0);">!=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">null</span><span style="color: rgb(0, 0, 0);">)<br />         {<br />            components.Dispose();<br />         }<br />      }<br />      </span><span style="color: rgb(0, 0, 255);">base</span><span style="color: rgb(0, 0, 0);">.Dispose( disposing );<br />   }<br />  <br />   </span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);"> <img src="http://www.blogjava.net/images/dot.gif" />.</span></div>  <br />  然后开始创建报表的结构, 首先在XtraReportBase.Bands属性中添加Bands, 然后在相应的Bands的XRControl.Controls属性中添加控件. 报表带和控件的添加方法一般是这样的<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);"> Add Detail, PageHeader and PageFooter bands to the report's collection of bands.</span><span style="color: rgb(0, 128, 0);"><br /></span><span style="color: rgb(0, 0, 255);">this</span><span style="color: rgb(0, 0, 0);">.Bands.AddRange(</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);"> DevExpress.XtraReports.UI.Band[] {</span><span style="color: rgb(0, 0, 255);">this</span><span style="color: rgb(0, 0, 0);">.Detail, </span><span style="color: rgb(0, 0, 255);">this</span><span style="color: rgb(0, 0, 0);">.PageHeader, </span><span style="color: rgb(0, 0, 255);">this</span><span style="color: rgb(0, 0, 0);">.PageFooter});<br /><br /></span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);"> Add two XRLabel controls to the Detail band.</span><span style="color: rgb(0, 128, 0);"><br /></span><span style="color: rgb(0, 0, 255);">this</span><span style="color: rgb(0, 0, 0);">.Detail.Controls.AddRange(</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);"> DevExpress.XtraReports.UI.XRControl[] {</span><span style="color: rgb(0, 0, 255);">this</span><span style="color: rgb(0, 0, 0);">.xrLabel1, </span><span style="color: rgb(0, 0, 255);">this</span><span style="color: rgb(0, 0, 0);">.xrLabel2});</span></div><br />最后创建好的报表可以输出给用户看了<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);"> Create a report.</span><span style="color: rgb(0, 128, 0);"><br /></span><span style="color: rgb(0, 0, 0);">XtraReport1 report </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);"> XtraReport1();<br /><br /></span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);"> Create the report's document so it can then be previewed, printed or exported.<br /></span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);"> NOTE: Usually you don't need to call this method as it's automatically called by all of the following methods.<br /></span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);"> See the corresponding member topic to find out when it needs to be called.</span><span style="color: rgb(0, 128, 0);"><br /></span><span style="color: rgb(0, 0, 0);">report.CreateDocument();<br /><br /></span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);"> Show the form with the report's print preview.</span><span style="color: rgb(0, 128, 0);"><br /></span><span style="color: rgb(0, 0, 0);">report.ShowPreview();<br /><br /></span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);"> Print the report in a dialog and "silent" mode.</span><span style="color: rgb(0, 128, 0);"><br /></span><span style="color: rgb(0, 0, 0);">report.PrintDialog();<br />report.Print();<br /><br /></span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);"> Open the report in the End-User designer</span><span style="color: rgb(0, 128, 0);"><br /></span><span style="color: rgb(0, 0, 0);">report.RunDesigner();<br /><br /></span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);"> Export the report.</span><span style="color: rgb(0, 128, 0);"><br /></span><span style="color: rgb(0, 0, 0);">report.CreateHtmlDocument(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">report.html</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);<br />report.CreatePdfDocument(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">report.pdf</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);<br />report.CreateImage(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">report.jpg</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">, System.Drawing.Imaging.ImageFormat.Gif);</span></div><br />附: XtraReport的类结构层次图:<br /><div align="center"><img src="http://www.devexpress.com/Help/XtraReports/img/ReportBasics%20-%20ClassHierarchy%201.png" /></div><br /><img src ="http://www.blogjava.net/usherlight/aggbug/71256.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/usherlight/" target="_blank">云自无心水自闲</a> 2006-09-22 10:20 <a href="http://www.blogjava.net/usherlight/archive/2006/09/22/71256.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Asp.net 2.0 中集成的表单验证控件，完全实现了用户登录功能。</title><link>http://www.blogjava.net/usherlight/archive/2006/03/01/33011.html</link><dc:creator>云自无心水自闲</dc:creator><author>云自无心水自闲</author><pubDate>Wed, 01 Mar 2006 07:19:00 GMT</pubDate><guid>http://www.blogjava.net/usherlight/archive/2006/03/01/33011.html</guid><wfw:comment>http://www.blogjava.net/usherlight/comments/33011.html</wfw:comment><comments>http://www.blogjava.net/usherlight/archive/2006/03/01/33011.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/usherlight/comments/commentRss/33011.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/usherlight/services/trackbacks/33011.html</trackback:ping><description><![CDATA[<P>表单认证是Asp.net中最Cool的功能之一，一般来说应用都会要求输入认证信息（典型的是用户名和密码）。<BR>在Web.config的设置项中，可以指定登录页面和哪些资源需要保护。当用户第一次访问被保存的资源时，应用会自动定向到指定的登录页面。<BR>如果成功登录，ASP.NET会转到用户初始请求的页面。<BR>以往的应用需要在每个页面的顶部判断用户是否成功登录，手工定向到登录页面，而现在这个工作由表单认证简单地完成了。</P>
<P>举个简单的例子来说明开发过程：<BR>一个应用中有两个页面PublicPage.aspx是向公众开放的，PrivatePage.aspx只允许登录用户才能访问。<BR>第3个页面是登录页面，要求输入用户名和密码。<BR>步骤如下：<BR>1、把PublicPage.aspx, login.aspx, web.config拷贝到一个IIS的虚拟目录下。<BR>2、创建一个子目录Secret，将PrivatePage.aspx, web.config拷贝到子目录中。<BR>3、在web.config中添加以下代码, 实现访问保存页面自动跳转登录页面的功能<BR>&lt;authentication mode="Forms"&gt;<BR>&nbsp; &lt;forms loginUrl="LoginPage.aspx"&gt;<BR>&nbsp;&nbsp;&nbsp; ....<BR>&nbsp; &lt;/forms&gt;<BR>&lt;/authentication&gt;<BR>4、另外有一个&lt;credentials&gt;小节列出合法用户和密码<BR>&lt;credentials passwordFormat="Clear"&gt;<BR>&nbsp; &lt;user name="Jeff" password="imbatman" /&gt;<BR>&nbsp; &lt;user name="John" password="redrover" /&gt;<BR>&nbsp; &lt;user name="Bob" password="mxyzptlk" /&gt;<BR>&nbsp; &lt;user name="Alice" password="nomalice" /&gt;<BR>&nbsp; &lt;user name="Mary" password="contrary" /&gt;<BR>&lt;/credentials&gt;<BR>&nbsp; 此例子中关掉了的加密选项，缺省是开的。<BR>&nbsp; <BR>5、在Secret子目录的web.config中添加以下代码，实现保护功能。<BR>&nbsp; &lt;authorization&gt;<BR>&nbsp; &nbsp;&lt;deny users="?" /&gt;<BR>&nbsp; &lt;/authorization&gt;<BR>这是用于通知权限管理模块System.Web.Security.UrlAuthorizationModule阻止未登录用户的访问。"?"代表匿名用户，也可以说是未登录用户。<BR>实际的权限验证是由Login.aspx完成的。下列语句<BR>&nbsp;if(FormsAuthentication.Authenticate(UserName.Text,Password.Text))<BR>把用户名和密码传给System.Web.Security.FormsAuthentication，如果验证成功，返回True。并且执行页面跳转语句<BR>FormsAuthentication.RedirectFromLoginPage(UserName.Text,false);</P>
<P>6、真实环境的表单认证比上面的例子要复杂的多，真实应用不大可能把用户和密码保存在文本文件中，比较常见的是存放在数据库中。<BR>假定用户表Users有3个字段UserName, password, Role.<BR>对于这种情况，我们需要在刚才的基础上进行2个地方的修改：Login.aspx、web.config(根目录下的)<BR>在web.config中不再需要&lt;credentials&gt;小节了。<BR>login.aspx也不再使用 FormsAuthentication.Authenticate 来验证密码，而使用CustomAuthenticate替代。<BR>在这个方法中使用Sql查询语句来判断用户是否合法。</P>
<P>&nbsp; </P>
<P>&nbsp;</P><img src ="http://www.blogjava.net/usherlight/aggbug/33011.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/usherlight/" target="_blank">云自无心水自闲</a> 2006-03-01 15:19 <a href="http://www.blogjava.net/usherlight/archive/2006/03/01/33011.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>