0006:
公式字段可通过集成的公式编辑器来创建。在资源管理器中的Formula Fields上单击鼠标右键,选择new,然
后输入一个名称。
----------------------------------------------------------------------------------------------------
0007:
参数字段:水晶报表中的参数字段可用于在报表运行时提示用户输入信息。从简单的数据输入,到应用于记录
选择。if(?CountryName) = "China" then "SouthChina"。默认情况下,参数字段是字符串类型。
----------------------------------------------------------------------------------------------------
0008:
未绑定字段:水晶报表的另一个明显增强就是能使用未绑定数据库,也就是说字段无需与指定的数据源连接。
使用未绑定字段,用户可以创建通用的报表然后由程序在运行时对字段内容进行设置。
----------------------------------------------------------------------------------------------------
0009:
组常常具有比记录排序更大的优先权,所以它们会在对话框中首先出现,而且不能删除。这意味着,用户可以
在一个字段中创建组,而后在组内为字段指定一个记录级别的排序。
----------------------------------------------------------------------------------------------------
0010:
在饼图中,可以设置显示最前N个,然后设置包括其他,这样其他的所有部分均合并到一起。
----------------------------------------------------------------------------------------------------
0011:
交叉表的创建:右键单击-插入-交叉表。
----------------------------------------------------------------------------------------------------
0012:
Crystal Reports Windows Forms Viewer模型:使用该对象模型可以满足大多数基本报表集成的需求,但是不
能对报表自身进行控制,对于报表中出现的任何子报表不能改变其记录选择,无权修改报表元素,例如组,排序和
公式域。为了完全控制报表及其所含的对象和功能,还需要使用Crystal Reports Engine对象模型。使用
Crystal Reports Engine将拥有一个功能丰富的对象模型,甚至能够用来修改报表中最小的元素。
----------------------------------------------------------------------------------------------------
0013:
有四种方法将报表绑定到报表浏览器:通过报表名称,通过报表对象,通过绑定非类型报表,通过绑定强类型
报表。
----------------------------------------------------------------------------------------------------
0014:
对于驻留在应用程序外部的报表,需要首先导入一个CrystalDecisions.CrystalReports.Engine命名空间以允
许您创建对象。
----------------------------------------------------------------------------------------------------
0015:
通过报表对象:
CrystalDecisions.CrystalReports.Engine.ReportDocument myReportDocument = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
protected void Page_Load(object sender, EventArgs e)
{
myReportDocument.Load(@"D:/临时征用/水晶报表/饼图报表/RptTbl2.rpt");
this.CrystalReportViewer1.ReportSource = myReportDocument;
}
----------------------------------------------------------------------------------------------------
0016:
所有的认证都将存储在TableLogonInfos集合中作为CrystalDecisions.Shared命名空间的一部分,而且每个表
都拥有一个对应的TableLogonInfo对象。要想为报表设置数据库认证,需要访问所有的表,为每个表的TableLogonInfo
设置ConnectionInfo属性。
CrystalDecisions.Shared.TableLogOnInfos myTableLogOnInfos = new CrystalDecisions.Shared.TableLogOnInfos();
CrystalDecisions.Shared.TableLogOnInfo myTableLogOnInfo = new CrystalDecisions.Shared.TableLogOnInfo();
CrystalDecisions.Shared.ConnectionInfo myConnectionInfo = new CrystalDecisions.Shared.ConnectionInfo();
myConnectionInfo.ServerName = "localhost";
myConnectionInfo.DatabaseName = "Northwind";
myConnectionInfo.UserID = "smartkernel";
myConnectionInfo.Password = "123";
myTableLogOnInfo.ConnectionInfo = myConnectionInfo;
myTableLogOnInfo.TableName = "customers";
myTableLogOnInfos.Add(myTableLogOnInfo);
this.CrystalReportViewer1.LogOnInfo = myTableLogOnInfos;
----------------------------------------------------------------------------------------------------
0017:
记录选择公式:this.CrystalReportViewer1.SelectionFormula = "{Tbl1.Name} = '张三'";
----------------------------------------------------------------------------------------------------
0018:
在报表中刷新数据:this.CrystalReportViewer1.RefreshReport();
----------------------------------------------------------------------------------------------------
0019:
报表内搜索:this.CrystalReportViewer1.SearchAndHighlightText("张三",CrystalDecisions.Shared.SearchDirection.Forward);
在窗体中会醒目显示找到的值,而在网页中则不会。
----------------------------------------------------------------------------------------------------
0020:
当用户在浏览器中更换页面时会触发Navigate事件。
----------------------------------------------------------------------------------------------------
0021:
当用户双击组或者汇总,然后深入浏览报表时,Drill事件就会触发,它可用于返回组名,层次或其他信息(必
须设置EnableDrillDown属性为True)。
----------------------------------------------------------------------------------------------------
0022:
水晶报表Web服务:
this.CrystalReportViewer1.ReportSource = @"http://localhost:1407/WebSite1/CrystalReportService.asmx";
this.CrystalReportViewer1.ReportSource = new localhost.CrystalReportService();
----------------------------------------------------------------------------------------------------
0023:
返回报表的相关信息:aRptTbl1.SummaryInfo.ReportAuthor
----------------------------------------------------------------------------------------------------
0024:
打印报表:aRptTbl1.PrintToPrinter(1, true, 1, 100);
如果需要对打印进行精确控制,可以使用PrintOptions类:
aRptTbl1.PrintOptions.PaperSize = CrystalDecisions.Shared.PaperSize.PaperA4;
----------------------------------------------------------------------------------------------------
0025:
输出报表:
CrystalDecisions.Shared.ExportOptions myExportOptions = new CrystalDecisions.Shared.ExportOptions();
CrystalDecisions.Shared.DiskFileDestinationOptions myDiskFileDestinationOptions = new CrystalDecisions.Shared.DiskFileDestinationOptions();
CrystalDecisions.Shared.PdfRtfWordFormatOptions myPdfRtfWordFormatOptions = new CrystalDecisions.Shared.PdfRtfWordFormatOptions();
myDiskFileDestinationOptions.DiskFileName = @"C:/1.pdf";
myExportOptions.ExportDestinationType = CrystalDecisions.Shared.ExportDestinationType.DiskFile;
myExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.PortableDocFormat;
myExportOptions.ExportDestinationOptions = myDiskFileDestinationOptions;
myExportOptions.ExportFormatOptions = myPdfRtfWordFormatOptions;
aRptTbl1.Export(myExportOptions);
----------------------------------------------------------------------------------------------------
0026:
推模式:aRptTbl1.Database.Tables["RptTbl1"].SetDataSource(myDataSet);