水晶报表钻取(深化)之子报表法

andylgl 2010-04-23 10:22:54
阿泰,你的水晶报表钻取(深化)之子报表法教程(http://www.cnblogs.com/babyt/archive/2009/04/29/1445793.html)是用的拉模式做的吧,我现在是用推模式做的,可以实现吗?麻烦指点,谢谢
另外:我想问下,水晶报表怎样让用户实现自定义分页,就是让用户设定每页显示的行数,本人是水晶报表的新手,麻烦指教,谢谢。。
...全文
270 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
andylgl 2010-04-26
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 babyt 的回复:]

使用PUSH模式的时候,确实需要把全部的数据推给报表
当然,也可以不用全部,那逻辑上就稍微复杂了点。

如果你是WEB应用的话,将原来的子报表去掉
借用一个字段属性的internet链接,将子报表链接导向到一个独立的主报表(用子报表的那个数据源)就行了
这样两个报表彼此独立,代替原来子报表的那个主报表,只要使用前面报表传递过来的参数进行过滤后的那部分数据即可
[/Quote]

babyt 你好,将子报表链接导向到一个独立的主报表 这个我不知道怎样去实现,可以说明白点吗?谢谢
andylgl 2010-04-26
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 andylgl 的回复:]

引用 6 楼 andylgl 的回复:

引用 5 楼 luols 的回复:

1、新建一参数,取名par,值类型设为 数字
2、把上面公式的数字8替换为{?par}
3、在cs文件设置数据源代码处添加:
C# code

myReport.SetDataSource(ds);
//在设置数据源后把textbox的值传给水晶报表
myReport.SetParameterV……
[/Quote]

解决了,是我多了行代码,,谢谢luols
andylgl 2010-04-26
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 andylgl 的回复:]

引用 5 楼 luols 的回复:

1、新建一参数,取名par,值类型设为 数字
2、把上面公式的数字8替换为{?par}
3、在cs文件设置数据源代码处添加:
C# code

myReport.SetDataSource(ds);
//在设置数据源后把textbox的值传给水晶报表
myReport.SetParameterValue("par",Convert.ToIn……
[/Quote]

谢谢luols 我现在按你的方法去使用了,但现在有个问题,就是通过参数设置后,页面每次都提示" The report you requested requires further information." 要求输入参数的值,我在程序中设置了参数的值也不行。。这个要怎么才能解决?谢谢
阿双2009 2010-04-26
  • 打赏
  • 举报
回复
相对子报表法而言,感觉水晶报表钻取用 分组法 更简便一些 :)
阿双2009 2010-04-23
  • 打赏
  • 举报
回复
[Quote=引用楼主 andylgl 的回复:]
另外:我想问下,水晶报表怎样让用户实现自定义分页,就是让用户设定每页显示的行数,本人是水晶报表的新手,麻烦指教,谢谢。。
[/Quote]

进入节专家,选中详细资料节,勾选“在后面页新建页”,点击后面的“x+2”按钮,输入:
if RecordNumber mod 8 = 0 then
true
else
false

表示每页显示8行
阿泰 2010-04-23
  • 打赏
  • 举报
回复
使用PUSH模式的时候,确实需要把全部的数据推给报表
当然,也可以不用全部,那逻辑上就稍微复杂了点。

如果你是WEB应用的话,将原来的子报表去掉
借用一个字段属性的internet链接,将子报表链接导向到一个独立的主报表(用子报表的那个数据源)就行了
这样两个报表彼此独立,代替原来子报表的那个主报表,只要使用前面报表传递过来的参数进行过滤后的那部分数据即可
andylgl 2010-04-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 luols 的回复:]

1、新建一参数,取名par,值类型设为 数字
2、把上面公式的数字8替换为{?par}
3、在cs文件设置数据源代码处添加:
C# code

myReport.SetDataSource(ds);
//在设置数据源后把textbox的值传给水晶报表
myReport.SetParameterValue("par",Convert.ToInt32(textBox1.Text));



……
[/Quote]

谢谢luols,另外一个问题可以帮下忙吗?就是钻取报表那个问题,谢谢
阿双2009 2010-04-23
  • 打赏
  • 举报
回复
1、新建一参数,取名par,值类型设为 数字
2、把上面公式的数字8替换为{?par}
3、在cs文件设置数据源代码处添加:

myReport.SetDataSource(ds);
//在设置数据源后把textbox的值传给水晶报表
myReport.SetParameterValue("par",Convert.ToInt32(textBox1.Text));


当然我这边只是举个例子,你可以因需而易。
andylgl 2010-04-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 luols 的回复:]

引用 2 楼 andylgl 的回复:
这只是给开发人员去设置每页显示的行数吧。我要让用户去设定,可以实现吗?


可以在界面添加个控件,比如textbox,让用户控制,程序可以把这个值当参数传给水晶报表。
[/Quote]

呵呵,终于说到我想知道的了,我现在的问题是在程序中不知道怎么把这个值传给水晶报表,麻烦luols兄给我写写,万分感谢。。谢谢
阿双2009 2010-04-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 andylgl 的回复:]
这只是给开发人员去设置每页显示的行数吧。我要让用户去设定,可以实现吗?
[/Quote]

可以在界面添加个控件,比如textbox,让用户控制,程序可以把这个值当参数传给水晶报表。
andylgl 2010-04-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 luols 的回复:]

引用楼主 andylgl 的回复:
另外:我想问下,水晶报表怎样让用户实现自定义分页,就是让用户设定每页显示的行数,本人是水晶报表的新手,麻烦指教,谢谢。。


进入节专家,选中详细资料节,勾选“在后面页新建页”,点击后面的“x+2”按钮,输入:
if RecordNumber mod 8 = 0 then
true
else
false

表示每页显示8行

对我有用。。这只是给开发人员去设置每页显示的行数吧。我要让用户去设定,可以实现吗?
 

4,818

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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