[[TOC]] = Blueprint for Reporting/Charting = We need to be able to generate Pretty & Informative Reports from the database. e.g. for BluePrintImpact These can be implemented as an [wiki:S3XRC_ResourceReport S3XRC Custom method] == Charts == For quick visualisations in the browser, we have included [http://www.jqplot.com jqPlot]. We have included the [http://healthscapes.org Healthscapes] !SaVaGe library to easily output SVG graphs: * http://eden.sahanafoundation.org/browser/modules/hs/graph * We should have a recommended tested SVG plugin for Internet Explorer < 9 * http://www.savarese.com/software/svgplugin/ (not 64-bit) * http://www.adobe.com/svg/viewer/install/ (Not maintained - e.g. no Windows 7 support) * Background page: http://www.w3.org/Graphics/SVG/IG/wiki/SVG_Plugin_for_IE T2 includes a basic barchart function: {{{ def barchart(data,width=400,height=15,scale=None, label_width=50,values_width=50): if not scale: scale=max([m for n,c,m in data]) if not scale: return None return TABLE(_class='barchart', *[TR(TD(n,_width=label_width,_style="text-align: right"), TABLE(TR(TD(_width=int(m*width/scale),_height=height, _style='background-color:'+c))),TD(m,_width=values_width), _style="vertical-alignment: middle") for n,c,m in data]) }}} * [http://matplotlib.sourceforge.net/faq/howto_faq.html#matplotlib-in-a-web-application-server Matplotlib] can generate visualisations * [http://www.web2pyslices.com/main/slices/take_slice/12 Cairo] can generate nice charts from the back-end == Map == We want to be able to provide reports suitable for displaying inside popups on Map Polygons: * [wiki:BluePrintGISFeatureLayers} == PDF == For more formal reports (which can also be retrieved via webservices using the PDF representation of the REST Controller), we currently use [http://reportlab.org ReportLab] via [http://geraldo.sourceforge.net Geraldo]. This also supports Graphics (via [http://www.pythonware.com/products/pil/ PIL]) Other options: * http://www.reynoldsftw.com/2009/02/6-jquery-chart-plugins-reviewed/ * Recommends [http://code.google.com/p/flot/ Flot]: "''From an interaction perspective, Flot by far will get you as close as possible to Flash graphing as you can get with jQuery.''" * [http://www.xhtml2pdf.com Pisa] uses [http://reportlab.org ReportLab] to generate PDF from HTML * [http://code.google.com/p/jspdf jsPDF] uses pure !JavaScript to create PDFs * Use S3XRC & hence XSLT to generate XML-FO which can be converted to PDF * http://xmlgraphics.apache.org/fop/ * http://pypi.python.org/pypi/zopyx.convert/ * [http://osdir.com/ml/python.reportlab.user/2003-10/msg00206.html Recommend ReportLab over FOP] == Spreadsheets == Excel files are currently written using [http://pypi.python.org/pypi/xlwt xlwt]. Other options: * [http://sourceforge.net/projects/pyexcelerator PyExcelerator] * Docs on Python Excel libraries: http://www.python-excel.org/ * Thread recommending xlwt: http://groups.google.com/group/web2py/browse_thread/thread/375307e92df40ca8 * [http://appyframework.org/pod.html Pod] to create Open Document Format == Flash == Could be something to use Flash? (although best-avoided, if possible, to minimise client support) * PyAMF: http://pyamf.org * Web2Py integration: http://mdp.cti.depaul.edu/AlterEgo/default/show/22 * !BirdEye: http://code.google.com/p/birdeye/ * !FusionCharts Free: http://www.fusioncharts.com/Free/ * Open Flash Chart: http://teethgrinder.co.uk/open-flash-chart-2/ * from Python: http://code.google.com/p/open-flash-chart-python/ == Relevant Links == Phase2 version: * http://wiki.sahanafoundation.org/doku.php?id=dev:reportinglib ---- BluePrints