c# 水晶报表中处理TextObject

代码
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);
    }
}


posted @ 2010-11-17 13:13  空紫竹  阅读(425)  评论(0编辑  收藏  举报