水晶报表怎么传递参数给PrintDocument对象

sheyouyou1 2009-06-16 07:52:08
我在报表中设置了一个参数(lister)用于显示制表人姓名,在C#中应该怎么给该参数赋值呢?由于该报表直接打印,没有用到crystalReportViewer,要怎么将参数值赋给PrintDocument对象呢?另外环境是vvs2008。
到网上搜了半天讲Crystal Report传参的代码很多,已经晕头了,还望懂的人给个直接的代码。
...全文
138 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
sheyouyou1 2009-06-17
  • 打赏
  • 举报
回复
晕啊,SetParameterValue()开始我竟没找到。估计是被网上的例子弄得糊涂了。非常感谢qldsrx 51Crack
qiweihero 2009-06-17
  • 打赏
  • 举报
回复
水晶报表用着的确很方便,有的地方还需要给它加上参数,还要给它表达式,很头晕的,呵呵
ximi82878 2009-06-17
  • 打赏
  • 举报
回复
基本不用水晶报表,觉得太麻烦了~~~帮你顶吧~~
qldsrx 2009-06-17
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 sheyouyou1 的回复:]
我是想传些静态变量到报表,和报表数据源无关。楼上能把SetParameterValue()方法翻译成c#吗?
[/Quote]
SetParameterValue已经是C#的方法了啊,一楼自定义的那个SetParamValue我没有试过,不过完全没必要,ReportDocument类自带一个SetParameterValue用来设置参数的,为什么不用?
netstray 2009-06-17
  • 打赏
  • 举报
回复
学习学习再说
sheyouyou1 2009-06-17
  • 打赏
  • 举报
回复
现在出差中,回家试试
sheyouyou1 2009-06-17
  • 打赏
  • 举报
回复
我是想传些静态变量到报表,和报表数据源无关。楼上能把SetParameterValue()方法翻译成c#吗?
qldsrx 2009-06-16
  • 打赏
  • 举报
回复
一般参数都是放在DataTable的获取上的,那样便于程序控制,基本上不会有人在水晶报表内部设置了参数从外部传入的,内部的参数是给内部主从表传递用的。话说那个VB.NET的代码很容易看懂啊,就是每句后面少个封号,花括号的范围框定变成了文字的END来结束。

翻译+优化+纠错:

ReportDocument ReportDoc = new ReportDocument();
ReportDoc.Load("test.rpt");
ReportDoc.SetParameterValue("lister", "台阶");
ReportDoc.PrintToPrinter(1, true, 0, 0);
sheyouyou1 2009-06-16
  • 打赏
  • 举报
回复
在我的代码调试时 ReportDoc.DataDefinition.FormulaFields.Count=0 无忧你设参数的方法可能和我不同,我是在报表中的参数字段中设置的。
sheyouyou1 2009-06-16
  • 打赏
  • 举报
回复
ReportDoc.DataDefinition.FormulaFields(i).Text = """" + paramValue + """"
这句c#要怎么写呢
sheyouyou1 2009-06-16
  • 打赏
  • 举报
回复
楼上的美女能翻译成C#吗,惭愧得很vb不懂,哎~~~~
51Crack 2009-06-16
  • 打赏
  • 举报
回复

ReportDoc = New ReportDocument
ReportDoc.Load("test.rpt")
SetParamValue("@lister", "楼主")
ReportDoc.PrintToPrinter(1, True, 0, 0)

Private Sub SetParamValue(ByVal paramName As String, ByVal paramValue As String)
For i As Integer = 0 To ReportDoc.DataDefinition.FormulaFields.Count - 1
If ReportDoc.DataDefinition.FormulaFields(i).FormulaName = "{" + paramName + "}" Then
ReportDoc.DataDefinition.FormulaFields(i).Text = """" + paramValue + """"
Exit For
End If
Next
End Sub

111,119

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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