I don't have the opportunity to work on our BIRT projects often and am likely missing something obvious here.

I have a very generic report built using the Java API (BIRT 3.7) and my ultimate goal is to get tabular output within a cell of a table based on the incoming data bound to that cell.

For clarification, the incoming data for any given cell may contain row/column delimited data such as: aa::bb::cc;;xx::yy::zz;; where :: is the column separator and ;; is a row separator. The hope is that within this target cell, based on analysis of that data, we could break it down and represent it as an embedded Grid (or HTML table if it were auto-magically rendered due to knowing it is HTML).

My first approach was to set an expression on the computed column to a JavaScript function and return HTML tags (used a span in my test), the data is not evaluated and printed in raw form on the report. Though the expression invoked the JavaScript properly, this was obviously the wrong approach.

My second approach had me looking at both the ComputedColumn and the DataItem to see if I could tell it that the content would be HTML. I'm unable to set the resultDataSet on anything but a DataItem, and was unable to indicate for the cell handle or DataItem that it will contain HTML.

Here is the code snippet as it is today with the expression invoking structuredData as mentioned in my first approach(engine startup and openReportDesign() is omitted).

allColumns is a list of classes describing the columns to build for the report.

Is there anything that can be done to the ComputedColumn, DataItemHandle or CellHandle to indicate that the data returned from dataSetRow[] is HTML?

Alternatively, is there a way via my structuredData JavaScript method or from the API that I can dynamically put a Grid within the cell and break up the above data to apply to each cell of the inner grid?