水晶报表:如何在运行时改变报表标题? 在Session1中添加一个textbox1对象然后在程序中可以看到Session1有个方法具体不是很清楚可以获取报表中的对象接着你可以改变Textbox1.text就可以了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 贴出代码,请大虾帮解决一下: RptAnswer rptAnswer=new RptAnswer(); rptAnswer.SetDataSource(ds1); crystalReportViewer1.ReportSource = rptAnswer; //修改报表标题 Section section; section = rptAnswer.ReportDefinition.Sections["Section1"]; FieldObject fieldObject; // ok fieldObject = section.ReportObjects["Field1"] as FieldObject;// ok if (fieldObject!= null) // ok { fieldObject.Color = Color.Red; //ok } TextObject textObject; textObject = section.ReportObjects["Field1"] as TextObject; //问题出在这,总取出空值 if (textObject!= null) { textObject.Text ="abc"; } you look:http://www.itraining.net.cn/lzh/showArticle.asp?art_ID=967 TextObject textObject;textObject = section.ReportObjects["Field1"] as TextObject; //问题出在这,总取出空值——————————————————————————————————————CrystalDecisions.CrystalReports.Engine.TextObject textObjecttextObject = section.ReportObjects["Field1"] as CrystalDecisions.CrystalReports.Engine.TextObject 海波.NET问题:动态改变水晶报表中的文本————————————————————————————————————————————————————————————————————————————一、TextObject 类——————————————————————————————————————请参见:TextObject 成员 | CrystalDecisions.CrystalReports.Engine 命名空间——————————————————————————————————————要求:命名空间:CrystalDecisions.CrystalReports.Engine 平台:Windows 98,Windows NT 4.0,Windows Millennium Edition,Windows 2000程序集:CrystalDecisions.CrystalReports.Engine语言C#,C++ Visual,Basic——————————————————————————————————————表示报表中的文本对象。该对象提供属性和方法,以检索信息和设置报表中的文本对象选项。有关该类型所有成员的列表,请参见TextObject 成员。ObjectReportObject TextObject[Visual Basic] Public Class TextObject Inherits ReportObject[C#] public class TextObject : ReportObject[C++] __gc public class TextObject : public ReportObject备注通过ReportObjects集合的Item 属性,按索引或按名称来检索ReportObject对象,并将 ReportObject 转换as(为)TextObject。——————————————————————————————————————示例下面的示例返回 TextObject 对象。 [Visual Basic] Private Function GetTextObject _ (ByVal reportObjectName As String) As TextObject Dim text As TextObject ' 按名称获取 ReportObject,将其转换为 TextObject, ' 并返回此对象。 If TypeOf _ (Report.ReportDefinition.ReportObjects. _ Item(reportObjectName)) Is TextObject Then text = _ Report.ReportDefinition.ReportObjects. _ Item(reportObjectName) GetTextObject = text Else : GetTextObject = Nothing End IfEnd Function[C#] private TextObject GetTextObject(string reportObjectName) { TextObject text; // 按名称获取 ReportObject,将其转换为 TextObject, //并返回此对象。 text = Report.ReportDefinition.ReportObjects[reportObjectName] as TextObject; if (text != null) return text; else return null;}[C++] TextObject* GetTextObject(String* reportObjectName){ TextObject* text; // 按名称获取 TextObject ,将其转换为 TextObject, //并返回此对象。 try { text = __try_cast<TextObject*> (Report->ReportDefinition-> ReportObjects->Item[reportObjectName]); return text; } catch(System::InvalidCastException*) { return 0; }};————————————————————————————————————————————————————————————————————————————二、TextObject 成员——————————————————————————————————————请参见TextObject 类 | CrystalDecisions.CrystalReports.Engine 命名空间——————————————————————————————————————公共实例属性Border(从 ReportObject 中继承而来) Border。获取 Border 对象。 Color System.Drawing.Color。获取或设置对象的颜色。 Font System.Drawing.Font。获取 Font 对象。使用ApplyFont方法应用更改。 Height(从 ReportObject 中继承而来) Int32。获取或设置以缇为单位的对象高度。 Kind(从 ReportObject 中继承而来) ReportObjectKind。获取报表对象的类型。 Left(从 ReportObject 中继承而来) Int32。获取或设置以缇为单位的对象左上角位置。 Name(从 ReportObject 中继承而来) 字符串。获取对象名。 ObjectFormat(从 ReportObject 中继承而来) ObjectFormat。获取 ObjectFormat 对象。 Text 字符串。获取或设置文本对象中的文本。 Top(从 ReportObject 中继承而来) Int32。获取或设置以缇为单位的对象顶部位置。 Width(从 ReportObject 中继承而来) Int32。获取或设置以缇为单位的对象宽度。 ——————————————————————————————————————公共实例方法ApplyFont 应用对System.Drawing.Font对象所做的更改。 或者:TextObject textObject;textObject = section.ReportObjects["Field1"] as TextObject; //问题出在这,总取出空值——————————————————————————————————————CrystalDecisions.CrystalReports.Engine.TextObject textObjecttextObject = Report.ReportDefinition.ReportObjects[reportObjectName] as CrystalDecisions.CrystalReports.Engine.TextObject RptAnswer rptAnswer=new RptAnswer();rptAnswer.SetDataSource(ds1);crystalReportViewer1.ReportSource = rptAnswer; //修改报表标题Section section;section = rptAnswer.ReportDefinition.Sections["Section1"];FieldObject fieldObject; // okfieldObject = section.ReportObjects["Field1"] as FieldObject;// okif (fieldObject!= null) // ok{ fieldObject.Color = Color.Red; //ok}TextObject textObject;textObject = section.ReportObjects["Field1"] as TextObject; //问题出在这,总取出空值if (textObject!= null){ textObject.Text ="abc";}分别用:CrystalDecisions.CrystalReports.Engine.TextObject textObject;textObject = section.ReportObjects["Field1"] as CrystalDecisions.CrystalReports.Engine.TextObject;和 CrystalDecisions.CrystalReports.Engine.TextObject textObject;textObject = rptSurvey.ReportDefinition.ReportObjects["Field1"] as CrystalDecisions.CrystalReports.Engine.TextObject;替换原来的:TextObject textObject;textObject = section.ReportObjects["Field1"] as TextObject; //问题出在这,总取出空值报表标题还是改不了。奇怪的是:报表标题的颜色可改,就是标题内容改不了。 编程更改文本对象示例代码(作者:海波.NET,更新:2003-10-21)using CrystalDecisions.CrystalReports.Engine;private const string REPORT_NAME = @"..\..\CrystalReportAnalysis.rpt";private const string TEXT_OBJECT_NAME = @"Text1";private void Form1_Load(object sender, System.EventArgs e){ report = new ReportDocument(); report.Load(REPORT_NAME); report.Refresh(); crvChart.ReportSource = report;}private void btnChangeText_Click(object sender, System.EventArgs e){ TextObject text; text = GetTextObject(TEXT_OBJECT_NAME); text.Text = "Hello, Haibo.NET!"; crvChart.RefreshReport();}private TextObject GetTextObject(string reportObjectName) { TextObject text; // 按名称获取 ReportObject,将其转换为 TextObject, //并返回此对象。 text = report.ReportDefinition.ReportObjects[reportObjectName] as TextObject; if (text != null) return text; else return null;} 大家一起去这个贴子支持一下!!!http://expert.csdn.net/Expert/TopicView1.asp?id=2291055CSDN 开个 Crystal Report 版吧!!!&&&我与水晶报表……haibodotnet 海波.NET想了解更多水晶报表的知识和技巧,请到NET专栏 -> 水晶报表专栏http://218.56.11.178:8009/jpyc(九品御厨-进军嵌入式) 为什么反射不能找到方法的参数为list? DatagridBoolColumn CheckBox C#winform右键菜单怎么设置急!!! executescalar()的问题 已经睡啦又想起来个问题,赶紧来发帖子。 怎样从网卡读取数据,和改变网卡的读取模式,来写扫描工具和网络监视工具 C#怎样让WebBrowser滚动条自动上下滚动一定时间 dcomcnfg的问题,急的很,请大家帮忙 各位csdn的兄弟,我应不应该转到网站的后台开发,请给个建议 关于Forms Authentication的问题!!! ASPNET用户权限,问题,在线等 一个非常郁闷的问题!请帮帮忙,谢谢!
rptAnswer.SetDataSource(ds1);
crystalReportViewer1.ReportSource = rptAnswer;
//修改报表标题
Section section;
section = rptAnswer.ReportDefinition.Sections["Section1"];
FieldObject fieldObject; // ok
fieldObject = section.ReportObjects["Field1"] as FieldObject;// ok
if (fieldObject!= null) // ok
{
fieldObject.Color = Color.Red; //ok
}
TextObject textObject;
textObject = section.ReportObjects["Field1"] as TextObject; //问题出在这,总取出空值
if (textObject!= null)
{
textObject.Text ="abc";
}
http://www.itraining.net.cn/lzh/showArticle.asp?art_ID=967
textObject = section.ReportObjects["Field1"] as TextObject; //问题出在这,总取出空值
——————————————————————————————————————
CrystalDecisions.CrystalReports.Engine.TextObject textObject
textObject = section.ReportObjects["Field1"] as CrystalDecisions.CrystalReports.Engine.TextObject
问题:
动态改变水晶报表中的文本
————————————————————————————————————————————————————————————————————————————
一、TextObject 类
——————————————————————————————————————
请参见:
TextObject 成员 | CrystalDecisions.CrystalReports.Engine 命名空间
——————————————————————————————————————
要求:
命名空间:CrystalDecisions.CrystalReports.Engine
平台:Windows 98,Windows NT 4.0,Windows Millennium Edition,Windows 2000
程序集:CrystalDecisions.CrystalReports.Engine
语言C#,C++ Visual,Basic
——————————————————————————————————————
表示报表中的文本对象。该对象提供属性和方法,以检索信息和设置报表中的文本对象选项。
有关该类型所有成员的列表,请参见TextObject 成员。
Object
ReportObject
TextObject
[Visual Basic]
Public Class TextObject
Inherits ReportObject
[C#]
public class TextObject : ReportObject
[C++]
__gc public class TextObject : public ReportObject
备注
通过ReportObjects集合的Item 属性,按索引或按名称来检索ReportObject对象,并将 ReportObject 转换as(为)TextObject。
——————————————————————————————————————
示例
下面的示例返回 TextObject 对象。
[Visual Basic]
Private Function GetTextObject _
(ByVal reportObjectName As String) As TextObject
Dim text As TextObject ' 按名称获取 ReportObject,将其转换为 TextObject,
' 并返回此对象。
If TypeOf _
(Report.ReportDefinition.ReportObjects. _
Item(reportObjectName)) Is TextObject Then
text = _
Report.ReportDefinition.ReportObjects. _
Item(reportObjectName)
GetTextObject = text
Else : GetTextObject = Nothing
End If
End Function
[C#]
private TextObject GetTextObject
(string reportObjectName)
{
TextObject text; // 按名称获取 ReportObject,将其转换为 TextObject,
//并返回此对象。
text = Report.ReportDefinition.ReportObjects[reportObjectName]
as TextObject;
if (text != null) return text;
else return null;
}
[C++]
TextObject* GetTextObject(String* reportObjectName)
{
TextObject* text; // 按名称获取 TextObject ,将其转换为 TextObject,
//并返回此对象。
try
{
text = __try_cast<TextObject*>
(Report->ReportDefinition->
ReportObjects->Item[reportObjectName]);
return text;
}
catch(System::InvalidCastException*)
{
return 0;
}
};
————————————————————————————————————————————————————————————————————————————
二、TextObject 成员
——————————————————————————————————————
请参见
TextObject 类 | CrystalDecisions.CrystalReports.Engine 命名空间
——————————————————————————————————————
公共实例属性
Border(从 ReportObject 中继承而来) Border。获取 Border 对象。
Color System.Drawing.Color。获取或设置对象的颜色。
Font System.Drawing.Font。获取 Font 对象。使用ApplyFont方法应用更改。
Height(从 ReportObject 中继承而来) Int32。获取或设置以缇为单位的对象高度。
Kind(从 ReportObject 中继承而来) ReportObjectKind。获取报表对象的类型。
Left(从 ReportObject 中继承而来) Int32。获取或设置以缇为单位的对象左上角位置。
Name(从 ReportObject 中继承而来) 字符串。获取对象名。
ObjectFormat(从 ReportObject 中继承而来) ObjectFormat。获取 ObjectFormat 对象。
Text 字符串。获取或设置文本对象中的文本。
Top(从 ReportObject 中继承而来) Int32。获取或设置以缇为单位的对象顶部位置。
Width(从 ReportObject 中继承而来) Int32。获取或设置以缇为单位的对象宽度。
——————————————————————————————————————
公共实例方法
ApplyFont 应用对System.Drawing.Font对象所做的更改。
TextObject textObject;
textObject = section.ReportObjects["Field1"] as TextObject; //问题出在这,总取出空值
——————————————————————————————————————
CrystalDecisions.CrystalReports.Engine.TextObject textObject
textObject = Report.ReportDefinition.ReportObjects[reportObjectName] as CrystalDecisions.CrystalReports.Engine.TextObject
rptAnswer.SetDataSource(ds1);
crystalReportViewer1.ReportSource = rptAnswer;
//修改报表标题
Section section;
section = rptAnswer.ReportDefinition.Sections["Section1"];FieldObject fieldObject; // ok
fieldObject = section.ReportObjects["Field1"] as FieldObject;// ok
if (fieldObject!= null) // ok
{
fieldObject.Color = Color.Red; //ok
}
TextObject textObject;
textObject = section.ReportObjects["Field1"] as TextObject; //问题出在这,总取出空值
if (textObject!= null)
{
textObject.Text ="abc";
}
分别用:
CrystalDecisions.CrystalReports.Engine.TextObject textObject;
textObject = section.ReportObjects["Field1"] as CrystalDecisions.CrystalReports.Engine.TextObject;
和
CrystalDecisions.CrystalReports.Engine.TextObject textObject;
textObject = rptSurvey.ReportDefinition.ReportObjects["Field1"] as CrystalDecisions.CrystalReports.Engine.TextObject;
替换原来的:
TextObject textObject;
textObject = section.ReportObjects["Field1"] as TextObject; //问题出在这,总取出空值
报表标题还是改不了。
奇怪的是:报表标题的颜色可改,就是标题内容改不了。
private const string TEXT_OBJECT_NAME = @"Text1";private void Form1_Load(object sender, System.EventArgs e)
{
report = new ReportDocument();
report.Load(REPORT_NAME);
report.Refresh(); crvChart.ReportSource = report;
}private void btnChangeText_Click(object sender, System.EventArgs e)
{
TextObject text;
text = GetTextObject(TEXT_OBJECT_NAME); text.Text = "Hello, Haibo.NET!"; crvChart.RefreshReport();
}private TextObject GetTextObject(string reportObjectName)
{
TextObject text; // 按名称获取 ReportObject,将其转换为 TextObject,
//并返回此对象。
text = report.ReportDefinition.ReportObjects[reportObjectName] as TextObject;
if (text != null) return text;
else return null;
}
http://expert.csdn.net/Expert/TopicView1.asp?id=2291055
CSDN 开个 Crystal Report 版吧!!!&&&我与水晶报表……
haibodotnet 海波.NET想了解更多水晶报表的知识和技巧,请到
NET专栏 -> 水晶报表专栏
http://218.56.11.178:8009/
jpyc(九品御厨-进军嵌入式)