一个新手的简单问题 [英] A newbie's simple question

查看:73
本文介绍了一个新手的简单问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,


我在空白报告中添加了两种类型的未绑定字段(字符串和数字),并尝试引用该字段的名称并更改其颜色。但是我收到了"无效的报告对象名称"。错误。这里有专家可以告诉我我错过了什么或我做错了什么吗?提前致谢!


[code]


使用System;
使用System.Collections;
使用System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web。 UI.WebControls;












.UI.Page {
protected CrystalDecisions.Web.CrystalReportViewer CrystalReportViewer1;

protected BlankReport bRpt;

private void Page_Load(object sender,System.EventArgs e){
bRpt = new BlankReport();


//以下两行代码有效吗?bRpt.DataDefinition.FormulaFields [" strField"]。Text =" \" ; myStrField \"" ;;
bRpt.DataDefinition.FormulaFields [" numField"]。Text =" \" myNumField \"";

//以下两行代码抛出异常
//CrystalDecisions.CrystalReports.Engine.InvalidArgumentException:无效的报表对象名称。
Response.Write(bRpt.ReportDefinition.ReportObjects [" strField"] .Name +"< br>");
Response.Write(bRpt.ReportDefinition.ReportObjects [" numField"]。Name +"< br>");

//以下两行代码也抛出异常
//CrystalDecisions.CrystalReports.Engine.InvalidArgumentException:无效的报表对象名称。
((FieldObject)bRpt.ReportDefinition.ReportObjects [" strField"])。颜色= System.Drawing.Color.Red;
((FieldObject)bRpt.ReportDefinition.ReportObjects [" numField"])。Color = System.Drawing.Color.Blue;

CrystalReportViewer1.ReportSource = bRpt ;
}


#region Web窗体设计器生成的代码
覆盖保护的void OnInit(EventArgs e){
InitializeComponent();
base.OnInit(e);
} private void InitializeComponent(){
this.Load + = new System.EventHandler(this.Page_Load);


}
#endregion
}
}


[/ code]


解决方案

基本Crystal Reports引擎不允许您在运行时添加对象。您需要使用已存在对象的模板报告,然后对其进行修改。使用RAS(报表应用程序服务器)引擎进行报表创建。只有完整版Crystal
报告包含RAS。


Don


Hi there,

  I added two type of unbound fields (string and number) to a blank report and tried to reference the field's name and change their color. But I received the "invalid report object name" error. Can any expert here tell me what I am missing or what I have done wrong? Thanks in advance!

[code]

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using CrystalDecisions.CrystalReports.Engine;

namespace CR_Test{
 public class BlankReportForm : System.Web.UI.Page{
  protected CrystalDecisions.Web.CrystalReportViewer CrystalReportViewer1;
  
  protected BlankReport bRpt;
 
  private void Page_Load(object sender, System.EventArgs e){
   bRpt = new BlankReport();
   

   //The following two lines of code work
   bRpt.DataDefinition.FormulaFields["strField"].Text = "\"myStrField\"";
   bRpt.DataDefinition.FormulaFields["numField"].Text = "\"myNumField\"";
   
   //the following two lines of code throw exception
   //CrystalDecisions.CrystalReports.Engine.InvalidArgumentException: Invalid report object name.
   Response.Write(bRpt.ReportDefinition.ReportObjects["strField"].Name + "<br>");
   Response.Write(bRpt.ReportDefinition.ReportObjects["numField"].Name + "<br>");
   
   //the following two lines of code also throw exception
   //CrystalDecisions.CrystalReports.Engine.InvalidArgumentException: Invalid report object name.
   ((FieldObject)bRpt.ReportDefinition.ReportObjects["strField"]).Color = System.Drawing.Color.Red;
   ((FieldObject)bRpt.ReportDefinition.ReportObjects["numField"]).Color = System.Drawing.Color.Blue;
   
   CrystalReportViewer1.ReportSource = bRpt;
  }

  #region Web Form Designer generated code
  override protected void OnInit(EventArgs e){
   InitializeComponent();
   base.OnInit(e);
  }
  
  private void InitializeComponent(){   
   this.Load += new System.EventHandler(this.Page_Load);

  }
  #endregion
 }
}

[/code]

 

解决方案

Basic Crystal Reports engine will not allow you to add objects at runtime. You need to use a template report where the objects already exist and then modify them. Use RAS ( Report Application Server ) engine for report Creation. Only full versions of Crystal Reports include RAS.

Don


这篇关于一个新手的简单问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆