I'm trying to develop a custom reports generation for my application, in which the user will dynamically input the model and its related model.And will select the related columns for which the report is needed and will have conditional statements for 'AND' and 'OR' conditions.
The same functionality is done is vtiger ,Zoho CRM and sales force .
My doubt is which is the efficient way of doing it.
1.Either by creating tables for each modules and defining its column in database 2.Or by providing a config file for all the set up 3.Or by creating a model class for all reports and defining its related model attributes and binding data using getter and setter(accessors and mutators). 4.Or suggest me any other preferrable method or any packages with have minimal functionalities relating this
I know is complex but please suggest me few hints from your point of view.
Please find the below for the flow.
Dynamic Report Generation (DRG) enables you to generate Reports manually. Simply, it enables you to select any report running in your project and get up to date value “On Demand”analysis and generation.
Dynamic reports are generated based on the latest information and provide interactive features that allow end-users to do various types of data analysis with ease. In brief, dynamic reports are real-time reporting +interactive reports.
A dynamic report is a report definition that can use report data to create the Report name, Distribution name, or both. You can use one dynamic report definition to create (or replace) hundreds or thousands of individual report definitions in the. Deliver. database.
you can use a Querybuilder to generate queries by users themselves. then use something similar to JSReport to allow users to design reports. There are very good web report designers out there, but most of them are for a price. if you still wanna make your own, refer these; Seal reports JSReports for reference what you looking for is real ;-)
use JQueryQueryBuilder and customize according to your need. use Laravel Boilerplate or something to start-off with. use Handlebars.js / Mustache.js or Blade as the template engine. be creative...
cheers!!!
For similar requirement, I have come across Reportico
Though I have not started implementing it yet, but it seems really nice.
They have Laravel module as well, supporting Laravel 5.1
Seems the team keeps the thing updated.
Although their UI is not good, they have got report builder as well.
Their Github link: https://github.com/reportico-web/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With