天道酬勤,学无止境

Crystal Report Sub Report Page Break

I new to Crystal Report and I've been trying to figure how to solve this sub report page break problem. I think I know what the report does but I don't know how to solve this issue.

It's hard to explain so I uploaded these pictures.

My main report: Main Report

My sub report, which is in the Detail Section2 (Details b): Sub Report

Page 1: The sub report doesn't print but leave. It should print. Page 1: Sub Report Does not Print

Page 2: The content in the sub report prints. In the sub report I set the New Page After 100 Visible Records. But that doesn't solve it. I even set KeepTogether = False at the Detail Section and also the IFieldObject (Description). Content of Sub Report

Page 4: I skipped page 3. Content of Sub Report

Page 5: It should look something like this: Content of Sub Report

to my understanding is that my sub report prints non-stop. and that's why it ruin my footer (bottom line like Page 5). So the sub report content has more records and it doesn't fit the first page, that's why it leaves the first page half blank and starts on page 2.

评论

Okay, I found the solution for this. It took a whole working day to find this. Unchecking "KeepTogether" option in the properties does not work at all.

What you have to do is, in the main report, right click the sub report and select "Format Object", on the first tab "Common", uncheck the "Keep Object Together".

enter image description here

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • How to stop crystal report viewer from asking login credentials when opening subreport
    I currently have a crystal report embedded in a visual studio website. I deploy the website and install it on an IIS, and provide a link to the user so they can access globally and see this report. This system has been working great. However, when I embedded a crystal report that has a sub report, the credentials are not being passed to the sub-report automatically. When i debug the solution, the initial report opens fine, when I click the item to open the sub-report, crystal report viewer asks me for database login credentials. How can i pass those credentials automatically in the code so
  • 打开子报表时如何阻止Crystal Report Viewer询问登录凭据(How to stop crystal report viewer from asking login credentials when opening subreport)
    问题 我目前在Visual Studio网站中嵌入了一份水晶报表。 我部署了网站并将其安装在IIS上,并提供了指向用户的链接,以便他们可以全局访问并查看此报告。 该系统一直运行良好。 但是,当我嵌入具有子报表的Crystal报表时,凭据不会自动传递到子报表。 当我调试解决方案时,初始报表会很好地打开,当我单击该项目以打开子报表时,Crystal报表查看器会要求我提供数据库登录凭据。 我如何在代码中自动传递这些凭据,以便在Crystal Report查看器中查看时用户不必输入代码。 以下是我在default.aspx.cs页中使用的代码。 它包含连接字符串。 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data.SqlClient; namespace CFIBInventory { public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { SqlConnection
  • Crystal Reports-“您请求的报告需要更多信息”(Crystal Reports - “The report you requested requires further information”)
    问题 我有一些使用Crystal创建的Crystal Reports(在Visual Studio外部),现在已加载到VS项目中。 在预览报告之前,我在报告和所有子报告中设置了这样的报告数据库信息。 var connectionInfo = new ConnectionInfo(); connectionInfo.ServerName = "192.168.x.xxx"; connectionInfo.DatabaseName = "xxxx"; connectionInfo.Password = "xxxx"; connectionInfo.UserID = "xxxx"; connectionInfo.Type = ConnectionInfoType.SQL; connectionInfo.IntegratedSecurity = false; TableLogOnInfo logon = table.LogOnInfo; table.LogOnInfo.ConnectionInfo = connectionInfo; table.ApplyLogOnInfo(logon); 最初对其进行预览时,该报告正确显示,但是当我转到报告预览的下一页时,收到消息“您请求的报告需要更多信息”,并再次提示您输入数据库登录信息。 在此输入后,将不再提示我。
  • 水晶报告“文件中断”(Crystal Reports “File Break”)
    问题 我正在生成一个Crystal Reports报告,最终将需要将其拆分为成千上万个pdf文件。 理想的情况是,如果Crystal Reports具有类似“文件中断”之类的内容,例如分页符,您可以将其插入文件中的适当位置。 我还需要对文件名进行适当的精细控制。...类似“ fileName_ {CustomerId} _ {CustomerIsLocal} .pdf”。 我假设可能需要第三方软件。 有什么想法吗? TIA。 回答1 我想将这个文档记录给其他任何正在寻找答案的人: private readonly CrystalReportViewer reportViewer = new CrystalReportViewer(); ... this.reportViewer.ReportSource = @"C:\PathToReport\Report.rpt"; using (var crystalReport = new ReportDocument()) { foreach (DataRow row in dataSet.Tables[0].Rows) { var customerId = int.Parse(row["customerId"].ToString()); var isCurrent = bool.Parse(row["isCurrent"]
  • CrystalReport加载报告失败(CrystalReport Load report failed)
    问题 我有一个使用Crystal Report 2008的Windows应用程序项目(C#和.NET 2.0)。但是在加载报表时有时会出现错误(似乎是偶然的)。 该错误是: CrystalDecisions.Shared.CrystalReportsException: Load report failed. System.Runtime.InteropServices.COMException (0x8000020D): Unable to load report. at CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass.Open(Object& DocumentPath, Int32 Options) at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.Open(Object& DocumentPath, Int32 Options) at CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened() --- End of inner exception stack trace --- at
  • 使用双面打印在报表组之间插入分页符(Insert page breaks between report groups with two-sided printing)
    问题 在组专家选项中,我设置了“保持组在一起”,以确保设置了新页面。 启用双面打印后,如何确保新的组始终形成在新的纸上? 可以在公式专家中完成吗? 有什么方法可以检查我所在的页面是偶数还是奇数,然后从那里插入页面? 因为我不熟悉Crystal公式编辑器的功能,所以只问一些主要问题。 顺便说一句,这是Crystal XI企业服务器。 回答1 您可以使用onfirstrecord , pagenumber和onlastrecord关键字进行此操作。 在组标题部分的“之前有新页”公式中... not onfirstrecord //so every group (except the first) starts on a new page 在“之后的新页面”公式中... //to keep the group from starting on even page but make sure the last page is not blank remainder(pagenumber, 2) = 1 and not onlastrecord 回答2 打开“节专家”屏幕。 选择报表标题,然后选中“禁止(无向下钻取)”。 然后在组标题中选择要分页的组,然后选中“之前新建页面”。 回答3 如果我需要在一组上进行分页,则可以正常工作。 如果在多个组上分页怎么办? 我找到答案了。使用Next
  • Repeating Group header on each page in crystal reports
    I have a main report and 1 sub report.In sub report i created a dummy group and checked repeat gh on each page to show headers in every page . But some times if the summary values came in new page the headers are not showing.(when there is no detail section values and only summary values). How to resolve this.
  • 如何在Crystal Report中导出为PDF文件?(How to Export to a PDF file in Crystal Report?)
    问题 使用VB 6和Crystal Report 8.5 在客户端系统中,在生成报告时,我单击了报告中的“导出到PDF”按钮; 它显示“导出”,“导出选项”。 选择“导出文件未在客户端系统中显示”。 但是在我的系统中,显示为Export,Export Option。 选择导出文件。 但是在客户端系统中没有显示选择导出文件屏幕。 我无法将报告文件保存为pdf。 因为它不是在询问要保存的文件名。 有谁能帮助解决这个问题? 回答1 尝试, Private Sub ExportReportToPDF(ReportObject As CRAXDRT.Report, Byval FileName As String, Byval ReportTitle As String) Dim objExportOptions As CRAXDRT.ExportOptions ReportObject.ReportTitle = ReportTitle With ReportObject .EnableParameterPrompting = False .MorePrintEngineErrorMessages = True End With Set objExportOptions = ReportObject.ExportOptions With objExportOptions
  • 以编程方式为 Crystal Report 设置自定义纸张大小(Programmatically set Custom Paper Size for Crystal Report)
    问题 我在Setting - Printers - File - Server Properties.创建了自定义纸张尺寸“SUPP 15 x 14” Setting - Printers - File - Server Properties. 现在我正在尝试使用 VB.net 2005 为 Crystal Report 设置自定义纸张大小。 当我从 VB.net 运行报表时,Crystal 报表查看器显示自定义纸张尺寸的正确预览,但是当我给出打印命令时,它会使用默认的打印机纸张尺寸进行打印。 (例如字母) 这是我用来打印的代码: Public Sub ... '... Dim ObjCrReport as new ReportDocument '... ObjCrReport.SetDataSource(ObjPrintDataSet.Tables("PrintData")) SetReportPageSize("SUPP 15 x 14", 1) '... End Sub Private Sub BtnPrintDoc_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPrintDoc.Click Try 'Print command ObjCrReport
  • 在 Visual Studio 2005 中使用 Crystal Reports(C# .NET Windows 应用程序)(Using Crystal Reports in Visual Studio 2005 (C# .NET Windows App))
    问题 我需要在 C# .NET Windows 应用程序中创建报告。 我有一个 SQL Server 2005 数据库,Visual Studio 2005,并且非常擅长创建存储过程和数据集。 有人可以指出我创建报告的正确方向吗? 我似乎无法解决。 一些示例将是一个好的开始,或者一个简单的操作教程......任何比 MSDN 文档更好解释的东西。 我正在使用 CrystalDecisions.Windows.Forms.CrystalReportViewer 控件来显示报告,我认为这是正确的。 如果我即将踏上漫长而复杂的旅程,创建和显示也可以打印的报告的最简单方法是什么? 回答1 我现在已经设法完成了这项工作。 简要概述 它的工作原理是拥有一个“数据类”,它只是一个包含变量而没有代码的常规 C# 类。 然后将其实例化并填充数据,然后放置在 ArrayList 中。 ArrayList 与要加载的报告的名称一起绑定到报告查看器。 在报表设计器中使用“.Net Objects”,而不是与数据库通信。 解释 我创建了一个类来保存我的报告的数据。 这个类是我通过手动从数据库中检索数据来手动填充的。 你如何做到这一点并不重要,但这里有一个例子: DataSet ds = GeneratePickingNoteDataSet(id); foreach (DataRow row in ds
  • 在Sql Reporting Services 2005中优化大型报表的PDF导出(Optimizing the PDF Export of Huge Reports in Sql Reporting Services 2005)
    问题 首先,我了解运行超大型/长期运行的报告是一个可怕的主意。 我知道微软有一条经验法则,规定SSRS报告的执行时间不超过30秒。 但是,有时由于外部力量(例如遵守州法律)而产生大量报道是首选的罪恶。 在我的工作地点,我们有一个asp.net(2.0)应用程序,已从Crystal Reports迁移到SSRS。 由于庞大的用户群和复杂的报告UI要求,我们提供了一组屏幕,这些屏幕可以接受用户输入的参数并创建要在夜间运行的时间表。 由于该应用程序支持多个报告框架,因此我们不使用SSRS的计划/快照功能。 系统中的所有报告均由计划的控制台应用程序生成,该应用程序采用用户输入的参数,并使用创建报告的相应报告解决方案生成报告。 对于SSRS报告,控制台应用程序会生成SSRS报告,并通过SSRS Web服务API将其导出为PDF。 到目前为止,除了我们最近已将25,000页的报表从Crystal报表转换为SSRS之外,SSRS的处理要比Crystal容易得多。 SSRS服务器是一台64位2003服务器,具有32个运行SSRS 2005的内存。我们所有较小的报告都可以正常工作,但是我们在处理此类较大的报告时遇到了麻烦。 不幸的是,我们似乎无法通过Web服务API生成修订报告。 在生成/导出大约30-35分钟内会发生以下错误: 异常消息:基础连接已关闭:接收时发生意外错误。
  • 我们如何在Crystal报表XI中将参数从主报表传递到子报表(How can we pass a parameter from main report to subreport in crystal reports XI)
    问题 我们如何将参数从主报表传递到Crystal Reports XI中的子报表? 我在主报告中有一个参数。 现在,我想将相同的参数传递给子报表。 请帮我。 回答1 右键单击子报表对象,然后选择“更改子报表链接”,然后选择子报表如何使用参数。 回答2 使用CodebyMoonlight的解决方案需要在主报表和子报表之间建立关系。 如果它们之间没有关系,则可以使用共享变量在两者之间传递值,因为可以在主报表或子报表中的任何位置设置和显示共享变量。 Shared NumberVar x := 5; 回答3 执行以下简单步骤: 创建新参数时,在Crystal Report的字段资源管理器中的“参数字段”中说“ StartDate” 在子报表的字段资源管理器的“参数字段”中,使用“创建新参数”说“ StartDateSubReport” 现在在主报表文件中,右键单击子报表,说“ EmployeesList.rpt”,然后单击“更改子报表链接”菜单从“可用字段”选项卡的“可用字段”中选择“ StartDate”,然后单击“>”按钮以使其无法链接到子报表中现在,通过在“要使用的子报表参数字段”中提供的下拉菜单中的“ StartDateSubReport”来选择可用的“ StartDate”,将其绑定 回答4 主报表和子报表之间的参数共享“右键单击子报表对象,然后选择“更改子报表链接”
  • Programmatically set Custom Paper Size for Crystal Report
    I have created custom paper Size "SUPP 15 x 14" in Setting - Printers - File - Server Properties. Now I’m trying to set custom Paper Size for Crystal Report using VB.net 2005. When I run report from VB.net, the Crystal report viewer shows the correct preview for custom paper size but when I give print command it prints with the default printer paper size. (e.g Letter) Here's the code I'm using to print: Public Sub ... '... Dim ObjCrReport as new ReportDocument '... ObjCrReport.SetDataSource(ObjPrintDataSet.Tables("PrintData")) SetReportPageSize("SUPP 15 x 14", 1) '... End Sub Private Sub
  • 更新Crystal Reports的数据提供程序(Updating Data Provider of Crystal Reports)
    问题 我在VB.NET项目中创建了许多Crystal Reports,它们从Microsoft Access 2007(.accdb)数据库中获取数据。 现在,我正在使用Microsoft SQL Server(.mdf)数据库更新我的应用程序。 如何将所有Crystal报表的数据源从访问文件更新为MDF文件? 谢谢。 回答1 除非有人有一个更快/更简单的解决方案,否则这是我用来在Visual Studio 2010中使用Crystal Access使用Crystal报表的方法。与选择数据源的常规方法相比,它涉及的程度更多,但它提供了更多的控制权,即数据库不可知论,并且在其他方​​法有时会失败的情况下起作用(特别是根据我的经验,使用MS Access)。 我将详细介绍使报告从头到尾工作的过程(因为整个过程可能对其他人有用),但将重点介绍可能对您有用的部分。 1)从SAP站点安装Crystal Reports。 请确保您下载的是exe文件,而不是msi文件(它不起作用): http://scn.sap.com/docs/DOC-7824 2)将应用程序的目标框架更改为.Net Framework 4(非客户端)。 基本配置文件中不包含Crystal内容。 3)添加对Crystal库的引用(.NET的Crystal Reports) 4)添加一个表单,在该表单上放置一个Crystal
  • How to set datasource of Sub crystal report in c# win form app
    I am using this code to load a main report and a subreport inside the main report. The main report is a blank one and just contains subreport. Here is my code: MySqlConnection cnn; string connectionString = null; string sql = null; connectionString = "Server = BC; Database = mydb1; Uid = root; Pwd = abc123;"; cnn = new MySqlConnection(connectionString); cnn.Open(); sql = "SELECT * from mytable1 "; MySqlDataAdapter dscmd = new MySqlDataAdapter(sql, cnn); DataSet1 ds = new DataSet1(); dscmd.Fill(ds, "Imagetest"); cnn.Close(); ReportDocument cryRpt = new ReportDocument(); cryRpt.Load("C
  • Crystal Report:无法连接错误的登录参数(Crystal Report: Unable to connect incorrect log on parameters)
    问题 打印报告时,用户有时会出现以下错误: CrystalDecisions.CrystalReports.Engine.LogOnException: Error in File C:\DOCUME~1\carolec\LOCALS~1\Temp\temp_b117cc2e-c184-4556-a493-e04e6d4126fb {388C2B55-114E-4087-A22D-9289902AFDEB}.rpt: Unable to connect: incorrect log on parameters. ---> System.Runtime.InteropServices.COMException (0x8004100F): Error in File C:\DOCUME~1\carolec\LOCALS~1\Temp\temp_b117cc2e-c184-4556-a493-e04e6d4126fb {388C2B55-114E-4087-A22D-9289902AFDEB}.rpt: Unable to connect: incorrect log on parameters. à CrystalDecisions.ReportAppServer.Controllers.ReportSourceClass.GetLastPageNumber
  • Adding a column to a DataSet (xsd) for a Crystal Report
    I am working on a report and need to add a column to one of my datasets and to the RPT file, but when I try to modify the Data Set, I get an error that the specified table doesn't exist. When I look in the code, it looks like there was originally a table used for this purpose, but this approach has been abandoned, and now this is instead being done with a DataSet in code that is attached to the report. My problem is that I need to add this new column in the report and I can't seem to get a handle on the data in a way so I can drag my new field onto the report, because I can't find the needed
  • Crystal Reports Exception: The maximum report processing jobs limit configured by your system administrator has been reached
    I'm facing a very buggy issue, in ASP.NET application after viewing the same report many times simultaneously I got this exception: The maximum report processing jobs limit configured by your system administrator has been reached. Wait I know there are tons of solutions out there but all of them are not working with me. I put ReportDocument.Close(); ReportDocument.Dispose(); in CrystalReportViewer_Unload event, and still throw the exception. Private Sub CrystalReportViewer1_Unload(ByVal sender As Object, ByVal e As System.EventArgs) Handles CrystalReportViewer1.Unload reportFile.Close()
  • 在Crystal Report中设置详细信息部分的大小(Set size of detail section in Crystal Report)
    问题 我使用VS2008 ..中的水晶报表生成Bill报表,因为细节部分的大小是动态的。 即取决于记录数,它会改变。 因此,如果我有10条记录,则报告视图为全页,即k ..但是,如果我在详细信息节中有2条记录,则整个页脚节都将粘在详细信息页上。 因此,有没有办法固定详细信息部分,即10条记录,如果记录超过更多,则同一页上的所有记录和剩余数据将进入下一页,即报表页脚,页脚。 水晶报表中是否有任何设置 回答1 好的,我可以为您提供一些技巧,告诉您如何实现所需的结果。 Crystal Reports引擎具有以下特征。 报告标题仅出现在第一页的顶部。 页面页眉显示在每页的顶部(在第一页的报表页眉下)。 报告页脚仅出现一次,在最后一页的详细信息部分的底部。 页面页脚出现在每页的底部。 每个部分都有一个功能,可让您在不需要时将其隐藏。 可以通过右键单击要取消显示的部分的栏,然后从将出现的菜单中按取消选择来完成。 考虑以下两种情况。 如果要实现第一种情况,请将“页脚”的高度更改为一个值,该值将仅在“详细信息”部分显示10条记录,在“页脚”中包含所有页脚信息,并取消“报告页脚”。 如果您希望获得相同的结果,但页脚信息仅出现在最后一页,请右键单击“页脚”的栏,然后选择“节专家”。 从那里,按一下Suppress CheckBox旁边的x + 2符号,然后在其中添加以下代码。 if
  • 如何动态更改Crystal Report数据库连接(How to dynamically change crystal report database connection)
    问题 我是水晶报告的新手。 我试图使用报表向导Visual Studio 2012在Win Form C#应用程序中实现Crystal报表,所以不知道这反手发生了什么。 一切都可以在我的计算机上正常运行,但是当我尝试在另一台计算机上安装时,连接字符串更改并给出错误。 我尝试了许多诸如“动态连接字符串更改”之类的链接,但是由于我正在使用报告向导进行设置,所以不知道在哪里使用它。 我还在报表向导中尝试了所有用于连接字符串的选项,但在运行时未发现任何更改连接字符串的内容。 我可以通过任何选项attach connection String from app config at run time 。 回答1 尝试这样的事情: strServer= ConfigurationManager.AppSettings["ServerName"].ToString(); strDatabase= ConfigurationManager.AppSettings["DataBaseName"].ToString(); strUserID= ConfigurationManager.AppSettings["UserId"].ToString(); strPwd= ConfigurationManager.AppSettings["Password"].ToString(); report