c# - 水晶报表导出需要永远
问题描述
我正在努力将 Crystal Report 导出到 Word 文档。
我正在使用以下代码创建报告:
using (ReportDocument initRep = report.SetUpReportDocument(rep, loadId))
{
string filePath = @"C:\word2Pdf\";
string fileName = Guid.NewGuid().ToString() + "wordReport.doc";
var fileNameAndPath = filePath + fileName;
initRep.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.WordForWindows, fileNameAndPath);
}
问题出在这行代码上:
initRep.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.WordForWindows, fileNameAndPath);
这是永远的,没有任何错误。
我的报告有 4 个子报告,它们通过唯一的 Id ( ) 链接到主报告loadId
。
当我使用 SQL Server Profiler 进行检查时,我发现查询没有暂停,而且查询似乎在尖叫循环中运行。我真的需要这个来出口,SOS。
解决方案
如果这些子报表在重复部分中(详细信息最差),那么主报表中的每个子报表都会有一个查询。也就是说,如果您的主报表有 1000 条记录,而子报表位于详细信息部分,那么您将有 4001 个查询(1 个用于主报表,然后 1000 个用于每个子报表)。要进行测试,请删除所有子报表,然后一一添加回来,看看是否有一个比其他的差。它在 Crystal Reports 设计器中不会那么明显,因为 Crystal 只会在您导航到页面时运行子报表。尝试将总页数添加到第一页以查看可怕的结果。
解决方案通常是在查询中完成工作或使用 SQL 函数。仅取决于您的报告需求。
推荐阅读
- google-apps-script - 在 Google 文档中,如何设置表格的多行高度以匹配单元格内容大小?
- sql - Oracle 视图或 With 子句
- python - 检查一个数据帧中的值是否存在于另一个数据帧中,打印所有值对
- flutter - 我正在尝试借助颤振中的模型类从 api 加载数据
- ajax - 仅当 Chrome 开发控制台打开时,Laravel 后端失败
- json - 如何将我自己的错误消息和智能感知添加到 Visual-studio-code 中的 JSON 文件
- html5-video - VideoJS:无法在运行时切换文本轨道
- angular - 根据 id 过滤 observable
- json - 具有多个可能值的 json-rpc 响应 jq 过滤
- amazon-web-services - 根据 aws codepipline 执行的状态将 jenkins 作业标记为成功/失败