Best UI/UX approach for on-demand PDF reporting with custom filters (Date Range & Category)

Hi everyone,

I am developing an app for a non-profit organization to help social workers manage daily logs and person records. I need to implement a “Reporting” feature that is as intuitive as the old MS Access reports.

My goal:
Allow users to select a Date Range, a person and a Category directly in the app, and then generate a PDF export containing only those filtered records for immediate download.

What is the most user-friendly way to handle “on-demand” PDF generation?

How can I make the “Download/Open PDF” button appear immediately after the bot finishes generating the file so the worker doesn’t have to wait or search for it?

Thanks! :heart:

Gari (Google EP)

For on-demand reports, You will want to create a Reports Data Structure. If you have only the one report “type” at this time then a single “Reports” table with columns to capture each of the user choices. You would then have the user navigate to a Form built on this Reports table to make their choices for report filtering and save the Reports row.

Then create a Bot that triggers on Reports table Adds to kickoff the PDF report generation.

In the PDF template, you would include START/END blocks for your source table and filter using the saved choices in the Reports table. An example might be:

<<Start: SELECT(Daily Logs[Log ID], AND([Log Date] >= [_THISROW].[Start Date Range], [Log Date] <= [End Date Range], [Person Logging] = [_THISROW].[Reporting Person], [Logging Category] = [_THISROW].[Category]))>>

Remember that the Bot is triggered on Reporting Adds, so [_THISROW] refers to the Reporting table row.
********************************

We do not have an ability to show a Download button. There are ways to include in an AppSheet app a button to open a PDF report.

HOWEVER, PDF’S are rarely available immediately after a bot finishes. The Bot will kick off server side processes that generates the PDF and this process may run for some time after the Bot is flagged as completed. There then needs to be time for the process to save the generated PDF into the cloud storage and time for the app to pickup that new file. It can be several minutes before the user can have access to a button to open the PDF.

I’m sure you will have questions. Please ask.

I hope this helps!!

You might find the following video helpful: