找回密码
 立即注册

QQ登录

只需一步,快速开始

grape_puppet

中级会员

35

主题

112

帖子

829

积分

中级会员

积分
829
grape_puppet
中级会员   /  发表于:2016-5-20 16:44  /   查看:15058  /  回复:25
本帖最后由 Lenka.Guo 于 2016-5-20 17:50 编辑

现在需要同时打印多张单据,单据的模板都是同一个,但是每张单据的页眉页脚独立显示(也就是页眉页脚之间没有关联)。我用的是rdl报表,通过在一个主报表上循环增加每一个子报表,这时候模板的页眉页脚显示不出来,应该怎么解决?

25 个回复

倒序浏览
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2016-5-20 18:18:37
沙发
子报表只能作为内容展示,所以无法显示子报表的页眉页脚。 您可以换种方式实现,比如添加到表头中,使用TextBox等
回复 使用道具 举报
grape_puppet
中级会员   /  发表于:2016-5-21 10:57:50
板凳
Lenka.Guo 发表于 2016-5-20 18:18
子报表只能作为内容展示,所以无法显示子报表的页眉页脚。 您可以换种方式实现,比如添加到表头中,使用Tex ...

打印多个报表,如果不用主报表,有没有办法实现?
回复 使用道具 举报
大侠归来
初级会员   /  发表于:2016-5-21 13:26:33
地板
比如打印五个订单的出货单,每个订单可能需要打印3页纸,你可能是希望每个订单的三页纸有相同的页眉页脚,比如:订单内的页号,客户名称,但是不同订单的页眉页脚中页号不同,客户名称也不同

不知道是不是这样的,我之前的做法是使用同一个模板,模板中有一个参数,通常情况下这个参数接收一个订单编号就可以,比如接收1,那么订单就打印一次,但是我的做法是该参数可以接收多值,比如可以接收1,2,3,4,5五个订单编号,那么就会把这五个订单的发货单一个显示出来,然后直接打印全部页就可以了。

其实你这儿提到的多个报表,其实用的是一个模板,只是显示的数据不同而已。
回复 使用道具 举报
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2016-5-23 09:37:52
5#
大侠归来 发表于 2016-5-21 13:26
比如打印五个订单的出货单,每个订单可能需要打印3页纸,你可能是希望每个订单的三页纸有相同的页眉页脚, ...

谢谢大侠归来的热心回答,奖励500金币~

@grape_puppet 批量打印与大侠归来说的思路一致,批量打印可参考帖子: http://gcdn.gcpowertools.com.cn/ ... 0&fromuid=29382
回复 使用道具 举报
grape_puppet
中级会员   /  发表于:2016-5-23 15:59:38
6#
Lenka.Guo 发表于 2016-5-23 09:37
谢谢大侠归来的热心回答,奖励500金币~

@grape_puppet 批量打印与大侠归来说的思路一致,批量打印可参 ...

这里说的批量打印是用数据分组来实现的吗
回复 使用道具 举报
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2016-5-23 16:09:42
7#
grape_puppet 发表于 2016-5-23 15:59
这里说的批量打印是用数据分组来实现的吗

使用参数报表实现的,你可以点击原帖看看主要的实现思路
回复 使用道具 举报
grape_puppet
中级会员   /  发表于:2016-5-25 09:50:34
8#
Lenka.Guo 发表于 2016-5-23 16:09
使用参数报表实现的,你可以点击原帖看看主要的实现思路

原贴中的Model是用模板绑定数据源,然后用sql查询语句通过参数确定每一页的数据。如果是运行时数据源,要怎么根据参数来确定数据?
回复 使用道具 举报
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2016-5-25 11:41:19
9#
grape_puppet 发表于 2016-5-25 09:50
原贴中的Model是用模板绑定数据源,然后用sql查询语句通过参数确定每一页的数据。如果是运行时数据源,要 ...

思路也是一样的,就不需要为报表指定参数了,而是在后台的SQL 语句添加变量就可以:

如代码:

  1. string constr = @"Provider=sqloledb; password=xA123456;data source=10.32.2.28;initial catalog=NWind_CHS;user id=sa;";
  2.            
  3.             //此处修改为AR的测试数据库

  4.            // 创建DataSet
  5.            DataSet myDataSet = new DataSet();
  6.            //string connStr = Properties.Resources.ConnectionString;
  7.            OleDbConnection conn = new OleDbConnection(constr);
  8.            DataTable myDataTable = new DataTable[3];
  9.            myDataTable = new DataTable(Constants.SaleTableName);
  10.          
  11.          
  12.           //变量从后台获取
  13.           string ProductID;

  14.           string cmdText="Select * from Product where ProductID ="+ProductID+";"
  15.             //创建DataTable   
  16.            myDataSet.Tables.Add(myDataTable);
  17.            OleDbCommand cmd1 = new OleDbCommand(cmdText, conn);
  18.            OleDbDataAdapter oleAdapter1 = new OleDbDataAdapter(cmd1);
  19.            oleAdapter1.Fill(myDataSet.Tables[0]);

  20.          
  21.             args.Data = myDataSet.Tables[0];
复制代码


回复 使用道具 举报
grape_puppet
中级会员   /  发表于:2016-5-25 16:59:38
10#
附件为测试程序,请根据测试程序测试子报表的页眉页脚问题。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部