This library allows you do easily design multi-band hierarchical reports similarly to Crystal Reports from SAP using its own built-in DSL. It also allows you to create 9 types of charts using the same DSL. You can find a series of comprehensive user and developer guides on hexdocs.
Here are some teaser images from the Online demo (should be up in a few minutes sorry!)
You can also find the code for the demo which requires no database at Ash Reports Demo
Thanks for building this one, it is a good one to introduce Elixir/Phoenix/Ash especially in enterprises that use databases which have data layers already available.
I tried accessing demo but I am getting failure error “http error 503”
Oops will look into it sorry. In the meantime you can clone the AshReportsDemo and just run it. It uses json generated data. You will only have the small dataset but you can easily generate the other ones with a mix command.
As long as your AshDomain has a datalayer then it will be usable with that data layer. The demo application uses an ETS datalayer so its all in memory. But if you can run ash queries in your domain then it is going to work. I am not sure if there is an Ash data_layer for Oracle though.
Currently the library is tied to Ash framework as an extension but I may extract it as a more generic Elixir library at a later time if there is interest.
Thanks, I took a quick look at docs and I couldn’t find an answer to the following :
Let us assume we have long running reports with fixed criteria but could be needed by multiple teams, can we schedule it and then save result instead of running it again when another user requset it?
I will look into that, it should be doable since Spark DSL is not actually tied to Ash even if its under the Ash framework custody. The Dsl currently assume a few things regarding the resources that it is querying based on Ash.Domain and Ash.Resources. It should be doable to allow the passing of a simple data stream.
You should be able to cache reports in ETS pretty easily and the library exposes a save function (or it should anyway). The DSL allows you to generate the report but what you do with the result is up to you. You can have a look at the ash_reports_demo repository. The demo allows you to save the report in different modes (PDF, HTML,etc) which should give you a good example.