找回密码
 立即注册

QQ登录

只需一步,快速开始

2293174034
初级会员   /  发表于:2015-4-29 13:09:00
21#
1、个人表40条记录无法分页,只显示第一页,如何处理?,花名册表可以分页(因为花名册表中引入了table);
2、导出pdf时不要在页面中直接打开,象导出excel一样直接保存文件?
3、导出excel的内容,报表中的直线(line) 在excel中不存在?
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-4-29 14:14:00
22#
您好,
第二个问题,导出PDF时是因为Chrome插件设置,如果停用其中的“Chrome PDF Viewer”插件,这样Chrome就会直接下载所有PDF文件了。如果在浏览器打开PDF插件的情况下,直接下载文件,就要更换MIME type。通俗的来讲,就是骗浏览器。
将原来的
  1. Response.ContentType = "application/pdf";
  2. Response.AddHeader("content-disposition", "inline;filename=客户订单.pdf");
复制代码


替换为
  1.             Response.ContentType = "application/octetstream";
  2.             Response.AddHeader("content-disposition", "attachment;filename=客户订单.pdf");
复制代码
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-4-29 14:47:00
23#
您好,
第三个问题,我们需要跟您确认下“报表中的直线(line) 在excel中不存在”,你所说的直线是table格子线还是独立的线呢?
回复 使用道具 举报
2293174034
初级会员   /  发表于:2015-4-29 15:01:00
24#
我说的不能显示的是:独立的直线.

table格子线在导出时可以设置 xlsExport1.DisplayGridLines = true; 来实现 .
回复 使用道具 举报
2293174034
初级会员   /  发表于:2015-4-29 15:36:00
25#
个人表40条记录无法分页,只显示第一页,如何处理?,花名册表可以分页(因为花名册表中引入了table);

个人表是指:每张表显示一条记录,共四十条记录,应该显示四十页才正确,现在是只能显示一页即第一条记录的内容;为什么?
花名册表:是一种列表显示的形式,利用table每页显示15条记录,这时可以自动分为三页是正确的
数据源都是object provider类型的list<ryjbxx>共四十条记录
回复 使用道具 举报
2293174034
初级会员   /  发表于:2015-4-30 08:45:00
26#
最后发现:对于个人表需要在报表中加入list控件才能实现分页的效果.
回复 使用道具 举报
2293174034
初级会员   /  发表于:2015-4-30 09:05:00
27#
下面这种方法可以导出excel但导出的格式效果不理想,
如报表中的直线控件(line)导出后无法显示,
但table的表格线可以通过设置显示

为什么?

引入的数据源的方法都一样
public void Document_LocateDataSource2(object sender, LocateDataSourceEventArgs args)
        {
            args.Data = _reportdata2;
        }
///////////////////////////////////
_reportdata2 = GzxxData.GetRyjbxxs();
            GrapeCity.ActiveReports.PageReport _reportDef = new GrapeCity.ActiveReports.PageReport(new FileInfo(Server.MapPath(&quot;/Reports/ryb/pyryhmc.rdlx&quot;)));
            
            ((PageReport)(_reportDef)).Document.LocateDataSource += Document_LocateDataSource2;   
            _reportDef.Run();
            GrapeCity.ActiveReports.Document.PageDocument _reportRuntime = new GrapeCity.ActiveReports.Document.PageDocument(_reportDef);
            
            // Create an output directory
            System.IO.MemoryStream ms = new System.IO.MemoryStream();

            GrapeCity.ActiveReports.Export.Excel.Section.XlsExport xlsExport1 = new GrapeCity.ActiveReports.Export.Excel.Section.XlsExport();
            xlsExport1.DisplayGridLines = true;            
            //xlsExport1.FileFormat = GrapeCity.ActiveReports.Export.Excel.Section.FileFormat.Xlsx;
            xlsExport1.FileFormat = GrapeCity.ActiveReports.Export.Excel.Section.FileFormat.Xls97Plus;
            xlsExport1.Export(_reportDef.Document, ms);

            Response.ContentType = &quot;application/vnd.ms-excel&quot;;
            //Response.ContentType = &quot;application/vnd.openxmlformats-officedocument.spreadsheetml.sheet&quot;;
            //Response.AddHeader(&quot;content-disposition&quot;, Server.UrlPathEncode(&quot;attachment;filename=Test1.xlsx&quot;));
            Response.AddHeader(&quot;content-disposition&quot;, Server.UrlPathEncode(&quot;attachment;filename=Test1.xls&quot;));
            Response.BinaryWrite(ms.ToArray());
回复 使用道具 举报
2293174034
初级会员   /  发表于:2015-4-30 09:18:00
28#
一般用户的习惯是
先预览,在预览页面执行打印,导出Excel,导出pdf
上面的方法都是服务器端响应,每执行一项都要查询数据库等待服务器返回信息,访问量大时容易出问题

我的意思是:当进入预览页面后,我们自定义的按钮直接调用预览工具栏上按钮接口函数执行
打印,导出Excel,导出pdf,
这样相当于只在预览时提取仪次数据,

另外预览工具栏上按钮(如打印、下载pdf)不够明显直接,用户更愿意使用自定义的打印,导出Excel,导出pdf按钮
回复 使用道具 举报
2293174034
初级会员   /  发表于:2015-4-30 09:23:00
29#
下面这种方法可以导出excel但导出的格式效果不理想,
如报表中的直线控件(line)导出后无法显示,
但table的表格线可以通过设置显示

为什么?

引入的数据源的方法都一样
public void Document_LocateDataSource2(object sender, LocateDataSourceEventArgs args)
        {
            args.Data = _reportdata2;
        }
///////////////////////////////////
_reportdata2 = GzxxData.GetRyjbxxs();
            GrapeCity.ActiveReports.PageReport _reportDef = new GrapeCity.ActiveReports.PageReport(new FileInfo(Server.MapPath(&quot;/Reports/ryb/pyryhmc.rdlx&quot;)));
            
            ((PageReport)(_reportDef)).Document.LocateDataSource += Document_LocateDataSource2;   
            _reportDef.Run();
            GrapeCity.ActiveReports.Document.PageDocument _reportRuntime = new GrapeCity.ActiveReports.Document.PageDocument(_reportDef);
            
            // Create an output directory
            System.IO.MemoryStream ms = new System.IO.MemoryStream();

            GrapeCity.ActiveReports.Export.Excel.Section.XlsExport xlsExport1 = new GrapeCity.ActiveReports.Export.Excel.Section.XlsExport();
            xlsExport1.DisplayGridLines = true;            
            //xlsExport1.FileFormat = GrapeCity.ActiveReports.Export.Excel.Section.FileFormat.Xlsx;
            xlsExport1.FileFormat = GrapeCity.ActiveReports.Export.Excel.Section.FileFormat.Xls97Plus;
            xlsExport1.Export(_reportDef.Document, ms);

            Response.ContentType = &quot;application/vnd.ms-excel&quot;;
            //Response.ContentType = &quot;application/vnd.openxmlformats-officedocument.spreadsheetml.sheet&quot;;
            //Response.AddHeader(&quot;content-disposition&quot;, Server.UrlPathEncode(&quot;attachment;filename=Test1.xlsx&quot;));
            Response.AddHeader(&quot;content-disposition&quot;, Server.UrlPathEncode(&quot;attachment;filename=Test1.xls&quot;));
            Response.BinaryWrite(ms.ToArray());
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-4-30 11:26:00
30#
您好,
由于多个问题如果在一个帖子中回复,容易导致问题的混淆。我把几个没有解决的问题独立出来。
flash显示的问题,我们在http://gcdn.gcpowertools.com.cn/ ... ;amp;jump=pid#82330中继续讨论。
分页的问题,我们在http://gcdn.gcpowertools.com.cn/showtopic-16842.html中继续讨论。
HtmlViewer类型报表预览效果,我们在http://gcdn.gcpowertools.com.cn/showtopic-16848.html中继续讨论
这个帖子中我们只讨论,导出excel的相关问题。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部