loListener = CREATEOBJECT("_ReportListener") lcClause = "NOEJECT" * Generate first report loListener.AddReport("ReportName.FRX", lcClause) * Generate second report loListener.AddReport("ReportName2.FRX", lcClause) lcClause = "" * Generate final report loListener.AddReport("ReportName3.FRX", lcClause) loListener.RunReports(.T.) && .T. removes the reports from the list after each runIn my case, I actually was doing this inside of a loop (generating commission statements for several employees and merging them down into a single PDF report w/a table of contents using XFRX).