# Preparing rows

Use a preparation script to add or reshape datasets before outputs are generated. The script receives the report's data as `input` (its parameters, context and datasets); return it after making your changes. This example creates one row and exports it as CSV.

```xml
<report>
  <preparation><![CDATA[input.datasets.rows = {{ name = 'Alice' }}; return input]]></preparation>
  <outputs>
    <output name="names.csv" format="CSV" storage="DATABASE" dataset="rows">
      <columns>
        <column>name</column>
      </columns>
    </output>
  </outputs>
</report>
```

The first line contains `name`; the next contains `Alice`. See the operations chapter for available functions and permissions.