grape_puppet 发表于 2016-5-20 16:44:31

子报表页眉,页脚显示问题。

本帖最后由 Lenka.Guo 于 2016-5-20 17:50 编辑

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

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

大侠归来 发表于 2016-5-21 13:26
比如打印五个订单的出货单,每个订单可能需要打印3页纸,你可能是希望每个订单的三页纸有相同的页眉页脚, ...

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

@grape_puppet 批量打印与大侠归来说的思路一致,批量打印可参考帖子: http://gcdn.gcpowertools.com.cn/forum.php?mod=redirect&goto=findpost&ptid=21176&pid=107930&fromuid=29382

grape_puppet 发表于 2016-5-23 15:59:38

Lenka.Guo 发表于 2016-5-23 09:37
谢谢大侠归来的热心回答,奖励500金币~

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

这里说的批量打印是用数据分组来实现的吗

Lenka.Guo 发表于 2016-5-23 16:09:42

grape_puppet 发表于 2016-5-23 15:59
这里说的批量打印是用数据分组来实现的吗

使用参数报表实现的,你可以点击原帖看看主要的实现思路

grape_puppet 发表于 2016-5-25 09:50:34

Lenka.Guo 发表于 2016-5-23 16:09
使用参数报表实现的,你可以点击原帖看看主要的实现思路

原贴中的Model是用模板绑定数据源,然后用sql查询语句通过参数确定每一页的数据。如果是运行时数据源,要怎么根据参数来确定数据?

Lenka.Guo 发表于 2016-5-25 11:41:19

grape_puppet 发表于 2016-5-25 09:50
原贴中的Model是用模板绑定数据源,然后用sql查询语句通过参数确定每一页的数据。如果是运行时数据源,要 ...

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

如代码:

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

         // 创建DataSet
         DataSet myDataSet = new DataSet();
         //string connStr = Properties.Resources.ConnectionString;
         OleDbConnection conn = new OleDbConnection(constr);
         DataTable myDataTable = new DataTable;
         myDataTable = new DataTable(Constants.SaleTableName);
         
         
          //变量从后台获取
          string ProductID;

          string cmdText="Select * from Product where ProductID ="+ProductID+";"
            //创建DataTable   
         myDataSet.Tables.Add(myDataTable);
         OleDbCommand cmd1 = new OleDbCommand(cmdText, conn);
         OleDbDataAdapter oleAdapter1 = new OleDbDataAdapter(cmd1);
         oleAdapter1.Fill(myDataSet.Tables);

         
            args.Data = myDataSet.Tables;


grape_puppet 发表于 2016-5-25 16:59:38

附件为测试程序,请根据测试程序测试子报表的页眉页脚问题。
页: [1] 2 3
查看完整版本: 子报表页眉,页脚显示问题。