QRP File Documentation


Summary

A .qrp file is a saved report produced by QuickReport, a banded report generator used in Borland and Embarcadero Delphi and C++Builder applications. It stores the finished, rendered pages of a printed report as binary metafile data, not the underlying database records. The MIME type is application/octet-stream.

QuickReport was made by QuSoft AS in Norway, not QBS. To open a .qrp, use a QRP viewer or the Delphi application that created it, then export to PDF.

Technical details

Full nameQuickReport saved report
File extension.qrp
MIME typeapplication/octet-stream
Format typeBinary compiled report (stored page metafiles)
DeveloperQuSoft AS, Norway
Host environmentBorland/Embarcadero Delphi & C++Builder (VCL)
Introduced1990s
Page renderingWindows metafile (EMF/WMF) pages
Contains source dataNo (rendered output only)
Open standardNo
Magic numberNone publicly documented
Related extensions.pdf, .fr3, .rtm
Typical originCustom Delphi business/accounting apps

What is a QRP file?

A .qrp file is a saved report from QuickReport, a banded report generator that runs as a set of VCL components inside Borland and Embarcadero Delphi and C++Builder programs. A developer drops report bands onto a form, binds them to a dataset, and QuickReport lays out the printed pages at runtime. When a user picks "Save report", the result is written to a .qrp.

One correction is worth making up front, because it shows up in a lot of file databases. QuickReport was written by QuSoft AS, a Norwegian company, not by QBS. QBS Software is a European software reseller, and its name gets attached to the format by mistake. QuickReport shipped bundled with several IDE releases: QuickReport 3 Standard, for example, came with Delphi 6 and 7 and with C++Builder 6, which is why so many .qrp files trace back to that era.

Compiled report, not a data file

The important thing to understand about a .qrp is what it actually holds. It is not a query, a dataset, or a template. It is finished output. When a Delphi application runs a QuickReport, the print engine walks the data and renders each page as a Windows metafile, an EMF or WMF vector page image. "Save report" collects those rendered pages and stores them together in one .qrp.

So a .qrp captures the printed result: the pages, the tables, the text, any charts, and the layout exactly as they would come off the printer. It does not carry the database rows that produced those numbers. If you think of it as a print-to-file capture rather than a spreadsheet or an export, most of its behaviour makes sense.

Why a .qrp looks like gibberish in Notepad

Open a .qrp in Notepad and you get a screen of unreadable characters. That is expected. The file is binary metafile page data, not text, and there is no readable header to speak of. The bytes are drawing instructions meant to be replayed, not read.

To see the report, the metafile pages have to be handed back to the QuickReport preview engine. In code that is TQuickRep.LoadFromFile feeding a QRPreview window; for a user it is a standalone QRP viewer or the original application's report preview. Either way, something that speaks the QuickReport format has to redraw the pages. A generic image viewer or PDF reader will not do it.

Where QRP files come from

Most .qrp files come out of custom, in-house Delphi software: accounting packages, payroll systems, invoicing tools, and similar line-of-business applications built years ago by a single vendor or an internal team. These apps often gave users a "save this report" button so an invoice run or a monthly statement could be archived to disk or attached to an e-mail.

That makes the format niche and legacy. It is tied to the Delphi and C++Builder ecosystem, and you rarely encounter a .qrp unless you are working with one of those older business applications or the archives it left behind.

Getting the report out

A QRP viewer, or the application that produced the file, can usually export it. From a preview you can send the report to PDF, and often to HTML or CSV as well. PDF is the reliable choice, because it preserves the same rendered pages the .qrp already contains.

Text and CSV export is a different story. Because a .qrp stores rendered pages rather than structured records, pulling a clean data table out of it is best-effort extraction. The viewer is scraping numbers back out of the page layout, and the result depends on how regular that layout is. If you need the actual figures for further work, go back to the source application and its database, where the data still lives in structured form. The .qrp is the printout, and the printout was never meant to be the data.

Short FAQ

Why can't I get the underlying numbers out of a .qrp cleanly? Because the file never held them as data. It holds the rendered pages. Any CSV you extract is reconstructed from the printed layout, not read from a table, so it can be incomplete or misaligned.

Who actually made QuickReport? QuSoft AS in Norway. The frequent attribution to QBS is a database error; QBS is a reseller, not the developer.

References