Report CODING with pure Servoy/Javascript

I have evaluated every development environment I could get my hands on for years and Servoy has generally beat them all. You probably know this but there is one glaring weakness which is reporting. I am very pleased with Servoy except for ease of reporting. I am successfully reporting using line-by-line coding of HTML as in the CRM example solution but there is no example for reports with a chart, graph, or even a picture. My question is "Can someone please furnish me code for each of (chart, graph, and picture)?

There are several reporting options for Servoy…

  1. Built-in. You can build Servoy Forms using Title Headers, Headers, Footers, Summary, etc and build a report. This model’s the FileMaker Pro way of doing thing if you are familiar with that.
    Simple example here: http://omar4.dotnet35.hostbasket.com/se … imple.aspx

  2. Manual. You can of course retrieve the data on your own, and write data our in HTML, Excel, or PDF. This is old school and should generally not be done.

  3. Jasper Reports. This is really the standard for reporting in Servoy and is now the vast majority of users do it. You can use a visual iReport design tool which will connect to your data via raw SQL, FoundSets, or DataSets, and can pass parameters into the report.
    See:
    Videos: http://www.servoy.com/reposition/generi … omy_id=727
    Jasper Plugin / WIki / Docs: https://www.servoyforge.net/projects/se … perreports

  4. Velocity Reports. This is an open source plugin using the Velocity Engine. Reports are built in XHTML using special templating functions
    https://www.servoyforge.net/projects/velocity-report

  5. Any other SQL Tool! Since Servoy connects to a SQL Database, you can use other tools and call them, like SQL Server Reporting Services, Crystal Reports, etc.

For my personal choices, I use Jasper most of the time. I’ll use Velocity when I want a quick report to print our something like a datagrid because it has nice tools to dynamically build reports. You can also do that in Jasper with DynamicJasper, but it gets more complicated.

My 2c -

If you’re comfortable in HTML/CSS, VelocityReport is pretty unbeatable. I’ve got pretty limited HTML experience and I find Velocity to be super easy to use :

//report template
<html lang="en">
  <head>
	<link href="../innit_app/assets/css/bootstrap.css" rel="stylesheet" type="text/css" media="all" />
	</head>
	<body>
  	<div class="container">
	<h3>$reportHeader</h3>
	<table class="table table-bordered table-condensed">  
    	<thead>  
        	<tr>  
            	<th>OpCode</th>  
            	<th>Hours</th>  
            	<th>Rate</th>  
            	<th>Total</th>  
        	</tr>  
		</thead>  
        <tbody>  
        #foreach ($employee in $EmployeeFS)	
	<tr>  
		<td>$employee.op_code</td>  
		<td>$employee.hours</td>  
		<td>$employee.rate</td>  
		<td>$employee.calc_total</td>  
	</tr>  
	#end
	</tbody>  
	</table>  
	</div> 
	</body>
</html>
//servoy side

//create the data object ("context object")

var context = {}

//add some data

context.reportHeader = 'Sample Report Header'

var employeeFoundset = databaseManager.getFoundset('data','employee')
employeeFoundset.loadRecords()
context.EmployeeFS = employeeFoundset

plugins.VelocityReport.previewReport('template.html',context)

Pretty awesome and very simple IMHO.

I’ve also started playing with d3.js for much more complex rendering, but that’s a whole different ballgame.

lgormley:
My question is "Can someone please furnish me code for each of (chart, graph, and picture)?

Download VelocityReport from ServoyForge Overview - VelocityReport Plugin - ServoyForge, it comes with an example of report with many tables, charts, images, barcodes and a flexible layout.
Have a look at the wiki, there’s lots of information out there: Wiki - VelocityReport Plugin - ServoyForge

This is unfortunately true of all the current solutions out there that aim to provide a more high-level development environment - Servoy, Lianja, Lightswitch, you name it. We were certainly spoiled in the Visual FoxPro world in terms of strong, built-in reporting tools. Reporting always seems to be left to third party providers like JasperSoft, which is generally fine except it’s another stack of dependencies, gotchas and complications.