Bug 125060 Export to CSV should repeat values in each data row
When a user exports content to CSV, they typically do so in order to further manipulate the data using other tools such as Excel. For example, to export the data and then build an Excel Pivot Table around the data. They typically do no want to export the data in it's "visual" format -- they want the raw data so they can work with it. To support this common usage, when exporting to CSV from the viewer, the value for each column should be repeated in each row. That is, we should do a data export rather than trying to approximate the formatted layout of the report. For example, if you export data using BIRT 2.0 from the report design attached to bugzilla entry 125058, you get something like: Classic Cars 1948 Porsche 356-A Roadster Scale: 1:18 ... 1948 Porsche Type 356 Roadster Scale: 1:18 ... 1949 Jaguar XK 120 Scale: 1:24 ... ... This does not support the analysis that users are going to typically want to do. We should export this as: Classic Cars 1948 Porsche 356-A Roadster Scale: 1:18 ... Classic Cars 1948 Porsche Type 356 Roadster Scale: 1:18 ... Classic Cars 1949 Jaguar XK 120 Scale: 1:24 ... ...
engine/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/parser/EngineIRVisitor.java
* <p>
 * <li>Style handling: DE stores all styles in an unflatten version. Factory
 * needs to reference styles where the element hierarchy has been flattened.
 * <li>Faster lookup: DE stores various properties as property name/value
 * pairs. Factory IR might store them as structure. See
 * <code>createHighlightRule()</code> for an example.
 * <li>Merging properties: DE stores custom and default properties separately.
 * In FPE, they are merged.</li>
 * <p>
 * 
 * This class visits the Design Engine's IR to create a new IR for FPE. It is
 * usually used in the "Design Adaptation" phase of report generation, which is
 * also the first step in report generation after DE loads the report in.
 * 
 * <p>
 * special consideration in styles
 * <p>
 * BIRT uses a simlar style mode with CSS, but not exactly the same. The main
 * differences are:
 * <li> text-decoration is not inheraible which simplify the CSS standard. This
 * rules makes text-decroation are usless for all the containers. As the HTML
 * treat the text-decoration inheritable in block-level element, the ENGINE must
 * remove the text-decoration from the container's styles.
 * <li> BIRT doesn't define the body style, it uses a predefined style "report"
 * as the default style.
 * 
 * @version $Revision: 1.78 $ $Date: 2006/02/24 09:18:56 $
 */
class EngineIRVisitor extends DesignVisitor
{