using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using CrystalDecisions.CrystalReports.Engine; using CrystalDecisions.Shared; namespace DLLCrystal { /// <summary> /// frmCrystalView 的摘要说明。 /// </summary> internal class frmCrystalView : System.Windows.Forms.Form { private CrystalDecisions.Windows.Forms.CrystalReportViewer crView; /// <summary> /// 必需的设计器变量。 /// </summary> private System.ComponentModel.Container components = null; private string[] strInfo;
public frmCrystalView(string[] strInfomation) { // // Windows 窗体设计器支持所必需的 // InitializeComponent();
// // TODO: 在 InitializeComponent 调用后添加任何构造函数代码 // strInfo=strInfomation; }
/// <summary> /// 清理所有正在使用的资源。 /// </summary> protected override void Dispose( bool disposing ) { if( disposing ) { if(components != null) { components.Dispose(); } } base.Dispose( disposing ); }
#region Windows 窗体设计器生成的代码 /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.crView = new CrystalDecisions.Windows.Forms.CrystalReportViewer(); this.SuspendLayout(); // // crView // this.crView.ActiveViewIndex = -1; this.crView.Dock = System.Windows.Forms.DockStyle.Fill; this.crView.Location = new System.Drawing.Point(0, 0); this.crView.Name = "crView"; this.crView.ReportSource = null; this.crView.ShowRefreshButton = false; this.crView.Size = new System.Drawing.Size(640, 509); this.crView.TabIndex = 0; // // frmCrystalView // this.AutoScaleBaseSize = new System.Drawing.Size(6, 14); this.ClientSize = new System.Drawing.Size(640, 509); this.Controls.Add(this.crView); this.Name = "frmCrystalView"; this.Text = "预览报表"; this.Load += new System.EventHandler(this.frmCrystalView_Load); this.ResumeLayout(false);
} #endregion
private void frmCrystalView_Load(object sender, System.EventArgs e) { ReportDocument rdView=new ReportDocument(); rdView.Load(@strInfo[0]); foreach (Table tbView in rdView.Database.Tables) { TableLogOnInfo tliView=new TableLogOnInfo(); tliView=tbView.LogOnInfo; tliView.ConnectionInfo.ServerName=strInfo[1]; tliView.ConnectionInfo.DatabaseName=strInfo[2]; tliView.ConnectionInfo.UserID=strInfo[3]; tliView.ConnectionInfo.Password=strInfo[4]; tbView.ApplyLogOnInfo(tliView); }
string [] strParameter=strInfo[5].Split(new char[] {'+'}); for (int i=0;i<strParameter.Length;i++) { string [] strSubParam=strParameter[i].Split(new char[] {'='}); ParameterValues pvValue=new ParameterValues(); ParameterDiscreteValue pdvValue=new ParameterDiscreteValue(); pdvValue.Value=strSubParam[1]; pvValue.Add(pdvValue); rdView.DataDefinition.ParameterFields[strSubParam[0]].ApplyCurrentValues(pvValue); } crView.ReportSource=rdView; this.Location = new Point(0, 0); this.Size = new System.Drawing.Size(1024,744); } } }

|