devlopnew 5 Posted yesterday at 08:02 PM (edited) Project: Daoui Reports 🧩 What Is It? Daoui Reports is a dynamic report generator developed using Delphi FireMonkey (FMX), designed to create visually rich, data-driven reports for both Windows and Android platforms. It is a lightweight, open-source alternative to commercial reporting tools like QuickReport or FastReport, offering a simple yet powerful way to design and generate printable or exportable reports directly from SQLite databases. ✅ Key Features Visual Design: Drag-and-drop components (Text, Labels, Images) onto a report template, just like in QuickReport. 🔁 Dynamic Data Binding Connects to a TFDQuery and repeats the Detail section for each record in the dataset. 📄 Automatic Page Breaking Splits content across multiple pages when it exceeds the page height, using IntersectsWith logic. 📸 Screenshot-Based Rendering Uses MakeScreenshot to capture the visual state of each Detail block and render it as an image in the final report. 🖨️ Preview & Print Offers a preview window with zoom and page navigation. Supports direct printing on Android via PrintBitmap 📎 PDF Export (Android) Exports the final report to PDF using Android’s JPdfDocument API. 📱 Cross-Platform Built with FireMonkey for full compatibility with Windows and Android . 💡 No External Dependencies Relies only on native Delphi components and FireDAC—no third-party libraries required. 🏗️ How It Works Design Mode You place visual components (like TText, TLabel) inside a TLayout called Detail. This acts as the template for each data row. Data Binding A TFDQuery is linked to your SQLite database. When the report runs, it loops through each record. Dynamic Height Calculation For each field (especially multi-line text), the system calculates the required height using TTextLayout to ensure text wraps correctly. Page Generation Each record is rendered into the Detail layout. A MakeScreenshot captures its visual state. The image is placed in a TRectangle within ZoneDetail. When the content reaches the bottom of the page (checked via BoundsRect.IntersectsWith), a new page is created. Preview & Output All generated pages are displayed in PreviewF.LayoutZOM as TImage components. From there, users can: Zoom in/out Navigate pages Print Export to PDF (on Android) 📁 Core Units UnitMain.pas Main form with SQL input, data grid, and report settings (show/hide sections). DesignU.pas The engine of the report. Contains DESINGFACT , the core function that generates the report dynamically. PreviewU.pas Handles preview, printing, and PDF export . Manages the display of all report pages. 🎯 Why Use Daoui Reports? Simple & Fast: No complex setup—just design and run. Open & Transparent: Full access to source code for customization. Mobile-Ready: Works seamlessly on Android devices. SQLite-Friendly: Ideal for local database apps. Lightweight: No bloated dependencies or installer packages. 🚀 Ideal For Inventory reports Sales summaries Fish species catalogs (as in the demo) Any application needing simple, printable reports without licensing costs. 💬 In Summary Daoui Reports is a practical, no-frills reporting solution for Delphi developers who want full control over report design and output—without relying on expensive or complex third-party tools. It proves that with smart use of MakeScreenshot, FireMonkey, and FireDAC, you can build a robust reporting system entirely in Delphi. 🔗 GitHub: https://github.com/devlop0/daoui-reports Edited yesterday at 08:10 PM by devlopnew 1 Share this post Link to post
devlopnew 5 Posted 23 hours ago 📢 Daoui Reports: A Simple, Powerful, and Overlooked Delphi Innovation Despite its simplicity, my project Daoui Reports is built on a brilliant and powerful idea: ✅ Use any Delphi visual component at runtime — and print it directly in a report. No need for special reporting components like QuickReport or FastReport. Just design your layout using standard FireMonkey controls (TText, TLabel, TImage, TLayout, etc.), and the system captures it visually using MakeScreenshot, then generates a dynamic, paginated report — fully functional on Windows and Android. This concept has been working flawlessly since 2021. I’ve used it to build real-world printing solutions for Android apps, where traditional reporting tools fail or require heavy dependencies. I shared it on YouTube back in 2022 — not for fame, but to contribute to the Delphi community. Yet, despite its practicality, innovation, and cross-platform power, I’ve received no meaningful support — not moral, not financial. Every developer knows the time, effort, and passion it takes to build and maintain a project like this. From dynamic height calculation for text, to automatic page breaking, to PDF export on Android — every line of code was crafted with care. And still, it remains unnoticed. 💡 Why This Matters It proves that you don’t need commercial tools to create professional reports in Delphi. It’s lightweight, open, and flexible — perfect for mobile apps. It empowers developers who can’t afford expensive reporting libraries. 🤝 I’m Not Asking for Much Just a little support: A small donation to keep the development going. A word of encouragement — it means more than you think. Or simply sharing the project with someone who might benefit from it. Your support — even $5 — helps me keep building tools that give back to the Delphi community. 👉 Buy me a coffee ☕ https://coff.ee/daouimahmoud Thank you for listening. To every developer out there building in silence — I see you. And I hope, one day, the world sees us too. — A Delphi Developer Who Believes in Simplicity Share this post Link to post