代码
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.ReportAppServer.ClientDoc;
using CrystalDecisions.ReportAppServer.DataDefModel;
public partial class _Default : System.Web.UI.Page
{
protected ReportDocument boReportDocument;
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
ConfigureCrystalReports();
}
CrystalReportViewer1.ReportSource = Session["Report"];
}
protected void ConfigureCrystalReports()
{
ISCDReportClientDocument boReportClientDocument;
CrystalDecisions.ReportAppServer.Controllers.ReportObjectController boReportObjectController;
CrystalDecisions.ReportAppServer.ReportDefModel.TextObject boOldTextObject, boNewTextObject;
CrystalDecisions.ReportAppServer.ReportDefModel.Paragraph boParagraph;
CrystalDecisions.ReportAppServer.ReportDefModel.ParagraphFieldElement boParagraphFieldElement;
CrystalDecisions.ReportAppServer.ReportDefModel.ParagraphTextElement boParagraphTextElement;
boReportDocument = new ReportDocument();
boReportDocument.Load(Server.MapPath("CrystalReport.rpt"));
boReportClientDocument = boReportDocument.ReportClientDocument;
boReportObjectController = boReportClientDocument.ReportDefController.ReportObjectController;
// Get a handle on the ReportObjectController so we can manipulate the TextObject
foreach (CrystalDecisions.ReportAppServer.ReportDefModel.ReportObject boReportObject in boReportObjectController.GetAllReportObjects())
{
if (boReportObject.Kind == CrystalDecisions.ReportAppServer.ReportDefModel.CrReportObjectKindEnum.crReportObjectKindText)
{
boOldTextObject = (CrystalDecisions.ReportAppServer.ReportDefModel.TextObject)boReportObject;
boNewTextObject = (CrystalDecisions.ReportAppServer.ReportDefModel.TextObject)boOldTextObject.Clone(true);
// Clear out all paragraphs from the current text object
boNewTextObject.Paragraphs.RemoveAll();
// Create a new Paragraph to add to our TextObject
boParagraph = new CrystalDecisions.ReportAppServer.ReportDefModel.Paragraph();
// Create a new ParagraphTextElement to be added to our paragraph
boParagraphTextElement = new CrystalDecisions.ReportAppServer.ReportDefModel.ParagraphTextElement();
boParagraphTextElement.Text = "The value of my parameter is: ";
boParagraph.ParagraphElements.Add(boParagraphTextElement);
// Create a new ParagraphFieldElement (our parameter field) to be added to our paragraph
boParagraphFieldElement = new CrystalDecisions.ReportAppServer.ReportDefModel.ParagraphFieldElement();
boParagraphFieldElement.Kind = CrystalDecisions.ReportAppServer.ReportDefModel.CrParagraphElementKindEnum.crParagraphElementKindField;
boParagraphFieldElement.DataSource = "{?Currency}";
boParagraph.ParagraphElements.Add(boParagraphFieldElement);
boNewTextObject.Paragraphs.Add(boParagraph);
boReportObjectController.Modify(boOldTextObject, boNewTextObject);
break;
}
}
Session.Add("Report", boReportDocument);
}
}
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.ReportAppServer.ClientDoc;
using CrystalDecisions.ReportAppServer.DataDefModel;
public partial class _Default : System.Web.UI.Page
{
protected ReportDocument boReportDocument;
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
ConfigureCrystalReports();
}
CrystalReportViewer1.ReportSource = Session["Report"];
}
protected void ConfigureCrystalReports()
{
ISCDReportClientDocument boReportClientDocument;
CrystalDecisions.ReportAppServer.Controllers.ReportObjectController boReportObjectController;
CrystalDecisions.ReportAppServer.ReportDefModel.TextObject boOldTextObject, boNewTextObject;
CrystalDecisions.ReportAppServer.ReportDefModel.Paragraph boParagraph;
CrystalDecisions.ReportAppServer.ReportDefModel.ParagraphFieldElement boParagraphFieldElement;
CrystalDecisions.ReportAppServer.ReportDefModel.ParagraphTextElement boParagraphTextElement;
boReportDocument = new ReportDocument();
boReportDocument.Load(Server.MapPath("CrystalReport.rpt"));
boReportClientDocument = boReportDocument.ReportClientDocument;
boReportObjectController = boReportClientDocument.ReportDefController.ReportObjectController;
// Get a handle on the ReportObjectController so we can manipulate the TextObject
foreach (CrystalDecisions.ReportAppServer.ReportDefModel.ReportObject boReportObject in boReportObjectController.GetAllReportObjects())
{
if (boReportObject.Kind == CrystalDecisions.ReportAppServer.ReportDefModel.CrReportObjectKindEnum.crReportObjectKindText)
{
boOldTextObject = (CrystalDecisions.ReportAppServer.ReportDefModel.TextObject)boReportObject;
boNewTextObject = (CrystalDecisions.ReportAppServer.ReportDefModel.TextObject)boOldTextObject.Clone(true);
// Clear out all paragraphs from the current text object
boNewTextObject.Paragraphs.RemoveAll();
// Create a new Paragraph to add to our TextObject
boParagraph = new CrystalDecisions.ReportAppServer.ReportDefModel.Paragraph();
// Create a new ParagraphTextElement to be added to our paragraph
boParagraphTextElement = new CrystalDecisions.ReportAppServer.ReportDefModel.ParagraphTextElement();
boParagraphTextElement.Text = "The value of my parameter is: ";
boParagraph.ParagraphElements.Add(boParagraphTextElement);
// Create a new ParagraphFieldElement (our parameter field) to be added to our paragraph
boParagraphFieldElement = new CrystalDecisions.ReportAppServer.ReportDefModel.ParagraphFieldElement();
boParagraphFieldElement.Kind = CrystalDecisions.ReportAppServer.ReportDefModel.CrParagraphElementKindEnum.crParagraphElementKindField;
boParagraphFieldElement.DataSource = "{?Currency}";
boParagraph.ParagraphElements.Add(boParagraphFieldElement);
boNewTextObject.Paragraphs.Add(boParagraph);
boReportObjectController.Modify(boOldTextObject, boNewTextObject);
break;
}
}
Session.Add("Report", boReportDocument);
}
}