Jul 01
Integrating Birt Reports into OpenJacob is quite straightforward but note that (at the time of this writing) you need Birt Version 2.5 !
- When creating the report’s datasource you have to use the same name you use in your jACOB application. Otherwise jACOB will not be able to use your Report.
- Create your report and specify the required parameters.
- When having finished your report, upload the .rptdesign file to a document field in your application. (e.g. a config table)
- The following code opens the report, hands over a parameter and returns a .pdf
BirtReport rpt = new BirtReport(cnfrec.getDocumentValue("report"));
rpt.setParameterValue("mypar", currentRecord.getStringValue("pkey"));
byte[] barr = rpt.createPDF();
context.createDocumentDialog(null, "doc.pdf", barr).show();
Mar 24
With Open-jACOB 2.9 tarragon-software.com made another big step forward.
The new version contains many many improvements compared to the previous official release like:
- Tree browser with drag and drop.
- Radio buttons to select functions.
- Hideable Forms
- Enum fields with I18N
- Tooltips. A combination of error messages and tips on how to correct.
- Foreign fields as combo box.
- Breadcrumb control.
- Single sign on functionality through CAS.
- Embedded transactions
- Dynamic changeable forms.
- Full text search on long text fields.
- Distinguish between primary and secondary DB’s in multiple databases, dependent on who owns the data.
Installation instructions can be found at openjacob.org
The Java Docs are here.
Nov 06
I’ve written a small servlet that communicates with a Jacob Application through CommandEntry Points. Not the most elegant solution for sure but _very_ flexible.
When the servlet calls the entry point’s Url then we have everything UTF-8 encoded and additionally used URLEncoder.encode(URL).
On the jacob side the Data arrives as ISO8859-1 although everything in Jacob appears to be UTF-8. But a simple
String data1= new String(properties.getProperty("data1").getBytes("ISO8859-1"),"UTF-8");
does the job.
Sep 16
Open-Jacob (currently) does not support cascading deletes. Depending on the database used you could implement this at the database level but this would be no good idea since Open-Jacob itself keeps track of the data and could stumble when records are getting modified from another side.
Let’s assume the following database schema

Continue reading »
Aug 01
In order to reverse engineer a existing database you can use the FetchDatasourceSchemaInfo Entry Point. Continue reading »