水晶报表中的文本框怎样用代码改变它的文本值?急!在线等候。。。

Anhowe 2003-10-18 04:01:12
水晶报表中有很多文本框,不和数据库绑定的,现我想用代码在运行时改变它显示的文本,如一个Text1文本框,在设计时,它显示的文本为“你好”,但我想在运行时要用代码把它改成“上午好”,要怎样呢?谢谢!能给点示例代码吗?,在线等候。。。。。。
...全文
176 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
haibodotnet 2003-10-23
  • 打赏
  • 举报
回复
以后会用到……

海波.NET
问题:
动态改变水晶报表中的文本后,显示的不完全……
动态改变水晶报表中的文本的问题,我可以改变文本的值,但是显示的不完全,只显示一部分,这个问题如何解决?
------------------------------------------------
解决方案:
设置“文本对象”,使其“可以扩大”……
(1)在“文本对象”上右击,选择“格式化文本”命令,进入“格式设置编辑器”对话框对话框;
(2)在“公用”选项卡,选中“可以扩大”。
Anhowe 2003-10-23
  • 打赏
  • 举报
回复
to:海波.NET
但是我的报表一闪而过就不见了呀,怎会会是这样呢?谢谢谢谢谢谢!!!!!!!!!!!!!!!!
haibodotnet 2003-10-22
  • 打赏
  • 举报
回复
编程更改文本对象示例代码(作者:海波.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;
}
haibodotnet 2003-10-22
  • 打赏
  • 举报
回复
CrystalReportViewer1..RefreshReport()
Anhowe 2003-10-22
  • 打赏
  • 举报
回复
TO:haibodotnet(海波.NET)
我用的方法如下:

Private Function GetTextObject(ByVal reportObjectName As String) As TextObject
Dim text As TextObject

Dim Report As New ReportDocument()
Report.Load("rptOrderXHK")
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


调用时的方法如:
Me.GetTextObject("text10")

其中rptOrderXHK为我的报表名,text10为报表中的一个文本字段,但是当我运行时,出现的情况是那个报表一闪而过,也没有错误,请问这是怎么回事呢?谢谢!!!!!!
Anhowe 2003-10-22
  • 打赏
  • 举报
回复
TO:haibodotnet(海波.NET) ,谢谢您,我用的是VB.NET,Report 就是 ReportDocument,但是我用的我ReportDocument代替Report 时,会出现波浪线,不可以呀
haibodotnet 2003-10-21
  • 打赏
  • 举报
回复
Report 就是 ReportDocument
Anhowe 2003-10-21
  • 打赏
  • 举报
回复
TO:haibodotnet(海波.NET)
请问下面这个示例中,那个Report是什么意思,报表名吗?
为什么我用一个报表名代替它时,会出现波浪线呢? 谢谢!


下面的示例返回 TextObject 对象。
[Visual Basic]
Private Function GetTextObject _
(ByVal reportObjectName As String) As TextObject
Dim text As TextObject

' 按名称获取 ReportObject,将其转换为 TextObject,
' 并返回此对象。
If TypeOf _
(Report.ReportDefinition.ReportObjects. _     /////////////这里的Report
Item(reportObjectName)) Is TextObject Then
text = _
Report.ReportDefinition.ReportObjects. _
Item(reportObjectName)
GetTextObject = text
Else : GetTextObject = Nothing
End If
End Function
Kain 2003-10-19
  • 打赏
  • 举报
回复
mark
haibodotnet 2003-10-18
  • 打赏
  • 举报
回复
大家一起去这个贴子支持一下!!!
http://expert.csdn.net/Expert/TopicView1.asp?id=2291055
CSDN 开个 Crystal Report 版吧!!!&&&我与水晶报表……
haibodotnet 海波.NET

想了解更多水晶报表的知识和技巧,请到
NET专栏 -> 水晶报表专栏
http://218.56.11.178:8009/
jpyc(九品御厨-进军嵌入式)
haibodotnet 2003-10-18
  • 打赏
  • 举报
回复
参数字段也可以……

参数字段运行时自定义
设置参数 | Windows 窗体查看器的绑定选项 | Web 窗体查看器的绑定选项

可支持用户在 Crystal 报表中通过参数进行输入。这种参数有多种用途。例如:

使参数基于数据库字段并允许用户指定该字段的值,以便对报表中的数据进行筛选。
使用参数字段将条件格式应用于报表。
使用参数字段来定义排序顺序。
下列示例说明如何在运行时通过代码设置参数字段值。此例解释了如何设置两个不同的参数:第一个是多值离散参数,第二个是区域值参数。

在运行时修改参数字段

[Visual Basic]
' 声明将参数传递给
'查看器控件所需的变量。
Dim paramFields As New ParameterFields()
Dim paramField As New ParameterField()
Dim discreteVal As New ParameterDiscreteValue()
Dim rangeVal As New ParameterRangeValue()

' 第一个参数是具有多个值的离散参数。

' 设置参数字段的名称,它必须
'和报表中的参数相符。
paramField.ParameterFieldName = "客户姓名"

' 设置第一个离散值并将其传递给该参数
discreteVal.Value = "AIC Childrens"
paramField.CurrentValues.Add(discreteVal)

' 设置第二个离散值并将其传递给该参数。
' discreteVal 变量被设置为新值,这样,以前的设置
'就不会被覆盖。
discreteVal = New ParameterDiscreteValue()
discreteVal.Value = "Aruba Sport"
paramField.CurrentValues.Add(discreteVal)

' 将该参数添加到参数字段集合。
paramFields.Add(paramField)

' 第二个参数为区域值。paramField 变量
'被设置为新值,这样,以前的设置就不会被覆盖。
paramField = New ParameterField()

' 设置参数字段的名称,它必须
'和报表中的参数相符。
paramField.ParameterFieldName = "客户 ID"

' 设置区域的开始值和结束值并将区域传递给该参数。
rangeVal.StartValue = 42
rangeVal.EndValue = 72
paramField.CurrentValues.Add(rangeVal)

' 将第二个参数添加到参数字段集合。
paramFields.Add(paramField)

' 将参数字段集合放入查看器控件。
crystalReportViewer1.ParameterFieldInfo = paramFields

crystalReportViewer1.ReportSource = "c:\reports\my report.rpt"

[C#]
// 声明将参数传递给
//查看器控件所需的变量。
ParameterFields paramFields = new ParameterFields ();
ParameterField paramField = new ParameterField ();
ParameterDiscreteValue discreteVal = new ParameterDiscreteValue ();
ParameterRangeValue rangeVal = new ParameterRangeValue ();

// 第一个参数是具有多个值的离散参数。

// 设置参数字段的名称,它必须
//和报表中的参数相符。
paramField.ParameterFieldName = "客户姓名";

// 设置第一个离散值并将其传递给该参数。
discreteVal.Value = "AIC Childrens";
paramField.CurrentValues.Add (discreteVal);

// 设置第二个离散值并将其传递给该参数。
// discreteVal 变量被设置为新值,这样,以前的设置
//就不会被覆盖。
discreteVal = new ParameterDiscreteValue ();
discreteVal.Value = "Aruba Sport";
paramField.CurrentValues.Add (discreteVal);

// 将该参数添加到参数字段集合。
paramFields.Add (paramField);

// 第二个参数为区域值。paramField 变量
//被设置为新值,这样,以前的设置就不会被覆盖。
paramField = new ParameterField ();

// 设置参数字段的名称,它必须
//和报表中的参数相符。
paramField.ParameterFieldName = "客户 ID";

// 设置范围的开始值和结束值并将该范围传递给
//该参数。
rangeVal.StartValue = 42;
rangeVal.EndValue = 72;
paramField.CurrentValues.Add (rangeVal);

// 将第二个参数添加到参数字段集合。
paramFields.Add (paramField);

// 将参数字段集合放入查看器控件。
crystalReportViewer1.ParameterFieldInfo = paramFields;
[C++]
// 声明将参数传递给
//查看器控件所需的变量。
ParameterFields* paramFields = new ParameterFields ();
ParameterField* paramField = new ParameterField ();
ParameterDiscreteValue* discreteVal = new ParameterDiscreteValue ();
ParameterRangeValue* rangeVal = new ParameterRangeValue ();

// 第一个参数是具有多个值的离散参数。
// 设置参数字段的名称,它必须
//和报表中的参数相符。
paramField->ParameterFieldName = "客户姓名";

// 设置第一个离散值并将其传递给该参数。
String* val = "AIC Childrens";
discreteVal->Value = val;
paramField->CurrentValues->Add (discreteVal);

// 设置第二个离散值并将其传递给该参数。
// discreteVal 变量被设置为新值,这样,以前的设置
//就不会被覆盖。
discreteVal = new ParameterDiscreteValue ();
val = "Aruba Sport";
discreteVal->Value = val;
paramField->CurrentValues->Add (discreteVal);

// 将该参数添加到参数字段集合。
paramFields->Add (paramField);

// 第二个参数为区域值。paramField 变量
//被设置为新值,这样,以前的设置就不会被覆盖。
paramField = new ParameterField ();

// 设置参数字段的名称,它必须
//和报表中的参数相符。
paramField->ParameterFieldName = "客户 ID";

// 设置范围的开始值和结束值并将该范围传递给
//该参数。
rangeVal->StartValue = __box(42);
rangeVal->EndValue = __box(72);
paramField->CurrentValues->Add (rangeVal);

// 将第二个参数添加到参数字段集合。
paramFields->Add (paramField);

// 将参数字段集合放入查看器控件。
crystalReportViewer1->ParameterFieldInfo = paramFields;

crystalReportViewer1->ExportReport();
haibodotnet 2003-10-18
  • 打赏
  • 举报
回复
海波.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 成员。
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对象所做的更改。
Crystal Reports 9.2 文版(水晶报表) 下载,,软件版本:9.2.0.448不过现已出了Crystal Reports Professional v9.2.2.634 (c) Crystal Decisions,有足够的空间就提供.这是一个很不错的报表控件,我相信很多朋友都听说过吧!Crystal Reports 用于处理数据库,帮助用户分析和解释重要信息。使用 Crystal Reports 可以方便地创建简单报表,同时它也提供了创建复杂或专用的报表所需的整套工具。 创建所能想象的任何报表 Crystal Reports几乎可以从任何数据源生成您需要的报表。内置报表专家在您生成报表和完成一般的报表任务过程,会一步一步地指导您进行操作。报表专家通过公式、交叉表、子报表和设置条件格式帮助表现数据的实际意义,揭示可能被隐藏掉的重要关系。如果文字和数字确实不够充分,则用地理地图和图形进行形象的信息交流。 将报表扩展到 Web Crystal Reports 的灵活性并未停留在创建报表这一功能上 ?您可以用各种各样的格式发布报表,包括用 Microsoft 的 Word 和 Excel 发布、通过电子邮件甚至 Web 发布。高级的 Web 报表功能允许工作组的其他成员在他们自己的 Web 浏览器查看或更新共享报表。 将报表并入应用程序通过将 Crystal Reports 的报表处理功能整合到自己的数据库应用程序,应用程序和 Web 开发人员可以节省开发时间并满足用户的需求。Crystal Reports 支持大多数流行的开发语言,可以方便地在任何应用程序添加报表。 不论您是 IT 行业的站点管理员,还是营销推广经理,也无论您是金融业的数据库管理员还是 CEO,Crystal Reports 都堪称是一个功能强大的工具,它可以帮助每一个人分析、解释重要信息。感谢 revenant 上传!

16,549

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧