In principle, it depends on what exactly you mean by reports and how your system is set up. I know that this can become very complicated and complex with a corresponding number of elements and subelements in a database.
Personally, I would prefer a combination of an SQL-based database in conjunction with B4X tables for B4J. This keeps the whole construct simple and clear, at least as far as the visual representation is concerned. You can even automate the queries skilfully by automatically changing the query depending on additional control elements arranged next to the table. This is very convenient for the end user. A problem for the end user, however, could be the display of the tables. They are usually not scrollable, you have to "page" through the pages of the table.
Jasper is perhaps a little more convenient when it comes to importing from different sources and the corresponding export, but actually extracting this data from a B4X table or from the SQL database and converting it is not necessarily a problem, as long as the export format is not too proprietary or exotic.
All queries run via the SQL database, the results of the queries can be displayed immediately and very quickly in a B4X table, a B4X table itself can then even display the query data wihin the table in a modified form (e.g. when searching for keywords).
Persoannly I have no experience with Jasper. Maybe it is better, to use a SQL-based construct as base, pulling the reports with Jasper directly from that database and to use B4X tables for visual presentation, for other output use Jasper again.
The advantage: Your existing construct should be very easy portable from VB to B4X (B4J) and you could probably use all existing queries with small modifications.
NEXT REPORTS could be worth a look for your needs.
Cheers and good luck! BV