1. rpt文件中用一textbox object作為標題,在cs文件中如下寫:
text=this.reportDocument1.ReportDefinition.ReportObjects["Text4"] as TextObject ;
if (text!=null) text.Text=TextBox1.Text;2. 我也想知道
text=this.reportDocument1.ReportDefinition.ReportObjects["Text4"] as TextObject ;
if (text!=null) text.Text=TextBox1.Text;2. 我也想知道
解决方案 »
- c#调用java写的webservice的问题
- C#&SQL 多字段 范围查询问题!?
- 如何获得某个网页的当前HTML代码(非源代码)
- MemoryStream和StreamReader的问题
- 新人求教信息异地存储问题?
- 遇到一个奇怪问题调制解调器拨号上网PHostEntry tst_host = Dns.GetHostEntry(_serverName)执行出错宽带上网执行又没有错误
- c#中有没有类似vb中的公共变量的东西?
- C#前台图片的onclick,能调用后台写的一个方法吗?
- vs2008怎么打开vs2002编的c#项目
- 把窗体作为控件用,而窗体的标题栏不能激活?????
- 上了服务器,就报以下错误,\
- 除了system.web.mail可以发邮件外,c#还有什么方法可以收发邮件啊???
在程序中有做完的报表.RPT,我想按一个按钮就直接打印,不预览、不设置打印机,怎么做?
——————————————————————————————————————
解决方案:
ReportDocument.PrintToPrinter 方法 [C#]
要求
命名空间:CrystalDecisions.CrystalReports.Engine
平台:Windows 98,Windows NT 4.0,Windows Millennium Edition,Windows 2000
程序集:CrystalDecisions.CrystalReports.Engine使用 PrintOptions.PrinterName 属性将报表的指定页输出到选定的打印机上。如果未选择打印机,则将使用报表中指定的默认打印机。
[Visual Basic]
Public Overridable Sub PrintToPrinter(ByVal nCopies As Integer, ByVal collated As Boolean, ByVal startPageN As Integer, ByVal endPageN As Integer)
[C#]
public virtual void PrintToPrinter (int nCopies , bool collated , int startPageN , int endPageN );
[C++]
public virtual void PrintToPrinter (int nCopies , bool collated , int startPageN , int endPageN );参数
nCopies
指明要打印的份数。
collated
指明是否逐份打印。
startPageN
指明要打印的第一页。
endPageN
指明要打印的最后一页。
备注
若要打印所有页,请将 startPageN 参数和 endPageN 参数设置为零。 示例
下面的示例设置报表的页边距,选择打印机,并打印报表。
[Visual Basic]
Private Sub PrintReport(ByVal printerName As String)
Dim margins As PageMargins ' 获取 PageMargins 结构并设置
' 报表边距。
margins = Report.PrintOptions.PageMargins
margins.bottomMargin = 350
margins.leftMargin = 350
margins.rightMargin = 350
margins.topMargin = 350
' 应用页边距。
Report.PrintOptions.ApplyPageMargins(margins) ' 选择打印机。
Report.PrintOptions.PrinterName = printerName' 打印报表。将 startPageN 和 endPageN
'参数设置为 0 表示打印所有页。
Report.PrintToPrinter(1, False, 0, 0)
End Sub
[C#]
private void PrintReport(string printerName)
{
PageMargins margins; // 获取 PageMargins 结构并设置
//报表的边距。
margins = Report.PrintOptions.PageMargins;
margins.bottomMargin = 350;
margins.leftMargin = 350;
margins.rightMargin = 350;
margins.topMargin = 350;
// 应用页边距。
Report.PrintOptions.ApplyPageMargins(margins); // 选择打印机。
Report.PrintOptions.PrinterName = printerName; // 打印报表。将 startPageN 和 endPageN
// 参数设置为 0 表示打印所有页。
Report.PrintToPrinter(1, false,0,0);
}
[C++]
void PrintReport(String* printerName)
{
PageMargins margins; // 获取 PageMargins 结构并设置
//报表的边距。
margins = Report->PrintOptions->PageMargins;
margins.bottomMargin = 350;
margins.leftMargin = 350;
margins.rightMargin = 350;
margins.topMargin = 350;
// 应用页边距。
Report->PrintOptions->ApplyPageMargins(margins); // 选择打印机。
Report->PrintOptions->PrinterName = printerName; // 打印报表。将 startPageN 和 endPageN
// 参数设置为 0 表示打印所有页。
Report->PrintToPrinter(1, false,0,0);
};
——————————————————————————————————————
PrintOptions 类 [C#]
要求
命名空间:CrystalDecisions.CrystalReports.Engine
平台:Windows 98,Windows NT 4.0,Windows Millennium Edition,Windows 2000
程序集:CrystalDecisions.CrystalReports.Engine提供用于设置报表打印选项的属性和方法。
有关该类型所有成员的列表,请参见 PrintOptions 成员。Object
PrintOptions
[Visual Basic]
Public Class PrintOptions
[C#]
public class PrintOptions
[C++]
__gc public class PrintOptions
备注
通过ReportDocument对象的PrintOptions 属性来检索 PrintOptions 对象。
使用参数
——————————————————————————————————————
目录
1、设置参数请参见
2、设计参数字段请参见
3、将参数合并到公式参数字段不必放入报表中即可在记录或组选定公式中使用。创建参数字段,然后像插入其他字段那样将其输入到公式中。
4、参数字段运行时自定义
——————————————————————————————————————
1、设置参数请参见参数提示报表用户输入信息。将参数看作是在报表生成之前用户需要回答的问题。用户输入的信息或用户响应的方式决定报表的内容。例如,在销售人员使用的报表中,或许有要求用户选择地区的参数。该报表将返回特定地区的结果,而不是返回所有地区的结果。通过在公式、选定公式和报表中使用参数字段,可创建单个报表,并可随时根据需要对其进行修改。参数字段也可用于子报表。参数字段注意事项
使用参数字段时,需要注意下列事项: 若要通过参数提示用户,您必须将该参数包含在报表中某个位置(如记录选定、组选定或公式中)或直接将该参数作为报表中的字段。
参数字段不必放入报表中即可在记录或组选定公式中使用。创建参数字段,然后像插入其他字段那样将其输入到公式中。
参数字段必须与要比较字段的数据类型相同。例如,如果报表中使用类型为字符串的 {客户姓名} 字段将记录选定限制为特定的客户名称,则为此目的创建的参数字段也必须为字符串类型。
参数字段支持下列数据类型:
数据类型 解释 参数示例
布尔值 要求回答是/否或真/假。 在摘要中包括计划预算数吗?
货币 要求一个美元金额。 显示销售额超过 XXXXX 的客户。
日期 要求采用日期格式回答。 输入季度的开始和结束日期。
日期和时间 要求日期和时间。 显示 07/04/2000 1:00pm-2:00pm 之间的统计。
数字 要求一个数值。 输入客户标识号。
字符串 要求回答文本。 输入地区。
时间 要求使用时间格式回答。 显示 1:00pm-2:00pm 之间的呼叫总数。 可以为用户创建选择参数值的选取列表,而不是让用户手动输入参数值。
参数字段提示文本可长达四行,每行大约 60-70 个字符(取决于字符宽度,最多可以有 254 个字符)。文本长度超过一行将自动换行。
——————————————————————————————————————
2、设计参数字段请参见
若要通过参数提示用户,您必须将该参数包含在报表中某个位置(如记录选定、组选定或公式中)或直接将该参数作为报表中的字段。设计参数字段 在字段资源管理器中,右击“参数字段”并单击“新建”。
在“名称”字段中输入参数的名称(最多 255 个字母数字字符)。
在“提示文本”字段中输入想要的提示文本(最多 255 个字母数字字符)。
这是在刷新报表后,出现在“输入参数值”对话框中的文本。 输入“值类型”。
如果想限制或为用户指定选项,请单击“设置默认值”。
在“设置默认值”对话框中,为参数值指定表和字段。
单击“>>”将所有的值移动到“默认值”区域。
用户将能够选择您移动到“默认值”区域中的任何值。如果想限制选定范围,只移动希望用户从中进行选择的值。 提示 对于要为其设置默认值的字符串参数字段,可选择在“编辑掩码”字段中输入编辑掩码,而不是指定范围。
单击“确定”按钮。
出现“创建参数字段”对话框。 单击“确定”按钮。
将参数拖放到报表中。
——————————————————————————————————————
3、将参数合并到公式参数字段不必放入报表中即可在记录或组选定公式中使用。创建参数字段,然后像插入其他字段那样将其输入到公式中。用公式进行记录选定
若要减少从数据库服务器传输的数据量并改善性能,请将参数字段直接合并到记录选定公式中。 下面的记录选定公式提请用户输入销售配额,并只显示去年销售额超过销售配额的所有客户。{客户.去年销售额} > {?SalesQuota}
用参数字段进行排序和分组
该 Crystal 语法公式合并参数 ?group,提示用户选择“客户”或“组”作为其组选项。UpperCase 函数将参数值转换为大写以便保持一致。 WhileReadingRecords;
If UpperCase ({?group})= "客户" then
{客户.客户姓名}
Else if UpperCase ({?group}) = "地区" then
{??.地区}
用参数字段进行条件格式化
参数字段可用于创建条件格式化公式。可以使用条件格式化公式用颜色标记符合某些条件的数据。如果您用来标记这些项的条件从不更改,则不必使用参数字段,而可以使用公式或条件格式化。 该 Crystal 语法公式合并参数 ?SalesTarget,提示用户输入销售目标值。超过销售目标值的所有客户在报表中均以红色显示。If {客户.去年销售额} > {?SalesTarget} Then
Red
Else
Black
——————————————————————————————————————
4、参数字段运行时自定义可支持用户在 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 = paramFieldscrystalReportViewer1.ReportSource = "c:\reports\my report.rpt"
http://expert.csdn.net/Expert/TopicView1.asp?id=2291055
CSDN 开个 Crystal Report 版吧!!!&&&我与水晶报表……
haibodotnet 海波.NET
http://expert.csdn.net/Expert/topic/2205/2205048.xml?temp=.6493647怎樣使CrystalReportViewer里選擇打印機後可以預覽
http://expert.csdn.net/Expert/topic/2255/2255373.xml?temp=.7327997