Changes

Create iReport Templates with Subreports

25,750 bytes removed, 03:17, 18 September 2013
no edit summary
<p>You can have multiple sub-reports in one Main report. To add more sub-reports to the Main report, just repeat Step 2 to Step 5.</p>
<p>Once you have all the sub-reports created for your Main report, you can compile and run your Main report.</p>
<p>Below is the table listing typical parameters required for both Main report and Sub-report.</p>
The following sections will describe the process for creating reports on items that have a direct relationship between them.
 
===Country Structure Areas and Associated Locations===__NOEDITSECTION__
Although a location must be associated with a country structure area, the process for creating a report of locations in a country structure area is very similar to a basic report. The location data source contains a field for each country structure area that is defined in your IMSMA database.
 
To create a report that lists locations within a country structure area:
<ol>
<li>From the '''File''' menu, select '''Report Wizard'''.</li>
:The iReport Wizard window displays.
<li>From the '''Connection/Data Sources''' list, select ''Location Data Source''.</li>
<li>Click the '''Next''' button.</li>
:The window to select the attributes to include in the report displays.
<li>From the Step 2. select fields screen:</li>
<ol type="a">
<li>Select the country structure level(s) on which you would like to list the associated locations.</li>
<li>Select the fields that you would like to include in the report.</li>
<li>Click the '''Next''' button.</li>
:A window displays the selected fields.
</ol>
<li>Click the '''Next''' button.</li>
:The window group the report data displays.
<li>From the Group lists, select the country structure level(s) that you selected in step 4a.</li>
</ol>
 
{{note|Be sure to select the highest country structure level for Group 1, followed by the next highest country structure level for Group 2, and so on.}}
 
<ol start="7">
<li>Click the '''Next''' button.</li>
:The window to select a layout displays.
<li>From the window to select a layout:</li>
<ol type="a">
<li>Select the layout option for the report.</li>
<li>Click the '''Next''' button.</li>
:The window displays a message stating that you have successfully created a new report.
<li>Click the '''Finish''' button.</li>
:The template for your report displays.
<li>Click the [[Image:iRepCompile.png]] button to compile the report.</li>
:The Save report window displays.
<li>Enter a name for the report in the '''File name''' field.</li>
<li>If there are no compilation errors, you may click the [[Image:iRepRun.png]] button to run the report.</li>
:The results of the report display in the iReport JasperViewer window.
</ol>
</ol>
===Location and Associated Items===__NOEDITSECTION__
''Figure 14. location_guid example''
</div>
 
Creating a report of a location and associated items will require you to complete the following parts:
:*Part 1: Create a report with location fields
:*Part 2: Create a sub-report for the associated item
:*Part 3: Add parameters to the sub-report
:*Part 4: Create a query the in sub-report to associate the guid to the location report
:*Part 5: Add parameters to the location report
:*Part 6: Compile and execute the location report
 
====Part 1. Create a report with location fields====__NOEDITSECTION__
The first part of creating a report of locations and their associated items is to create a report of the location fields you would like to include.
 
<ol>
<li>Ensure that the IMSMA server is started.</li>
<li>From the '''File''' menu, select '''Report Wizard'''.</li>
<li>From the '''Connection/Data Sources''' list, select Location Data Source to create a report of locations.</li>
<li>Click the '''Next''' button.</li>
:The iReport Wizard, Step 2 window displays a list of the location attributes.
<li>Select the fields you would like to include for the location.</li>
<li>Click the '''Next''' button.</li>
:The window displays a list of the attributes that you have selected.
<li>Click the '''Next''' button.</li>
:The iReport Wizard, Step 3 window displays to allow you to group the report results.
<li>Because the report results for this exercise will not need to be grouped, click the Next button.</li>
:The iReport Wizard, Step 4 window displays to allow you to select the report layout.
<li>Select a layout option.</li>
<li>Click the '''Next''' button.</li>
:The iReport Wizard, Step 5 window displays.
<li>Click the '''Finish''' button.</li>
<li>Save the report by doing one of the following:</li>
*Click the [[Image:iRepSave.png]] icon.
*From the File menu, select '''Save'''.
::The Save report window displays.
<li>Enter a name for the report in the '''File name''' field.</li>
<li>Click the Save button.</li>
</ol>
 
====Part 2. Create a sub-report for the associated item====__NOEDITSECTION__
 
<table border="1">
<tr>
<td>The next part of the process for creating a report on locations and its associated items requires you to create a sub-report within the location report.</td>
</tr>
</table>
 
<ol>
<li>Expand the detail section of the report by doing the following:</li>
<ol type="a">
<li>From the '''View''' menu, select '''Bands'''.</li>
<li>From the left pane, select ''detail''.</li>
<li>In the '''Band Height''' field that is in the right pane, increase the height of the detail section. At a minimum you will want to double the height.</li>
</ol>
</ol>
 
[[Image:iRep15.png|center|500px|''Figure 15. Detail band height'']]
<div align="center">
''Figure 15. Detail band height''
</div>
 
<ol>
<ol type="a" start="3">
<li>Click the '''Apply''' button.</li>
<li>The height of the band increases based on the value that you entered.</li>
</ol>
</ol>
 
[[Image:iRep16.png|center|500px|''Figure 16. Increased detail band'']]
<div align="center">
''Figure 16. Increased detail band''
</div>
 
<ol start="2">
<li>Click the [[Image:iRepBand.png]] button to add a sub-report.</li>
:The cursor changes to a crosshair.
</ol>
 
[[Image:iRep17.png|center|500px|''Figure 17. Sub-report button'']]
<div align="center">
''Figure 17. Sub-report button''
</div>
 
<ol start="3">
<li>Click the detail section of the report.</li>
<li>While holding down the mouse button, drag the cursor to form the rectangle which will contain the sub-report.</li>
<li>Release the mouse button.</li>
:The window below displays.
</ol>
 
[[Image:iRep18.png|center|500px|''Figure 18. Sub-report creation'']]
<div align="center">
''Figure 18. Sub-report creation''
</div>
 
<ol start="6">
<li>From the window:</li>
<ol type="a">
<li>Select the ''Create a new report'' option.</li>
<li>Click the '''Next''' button.</li>
::The How fill the sub-report screen displays.
</ol>
<li>From the window:</li>
<ol type="a">
<li>Select the data source for the associated item from the Connection/Data Source list. For example, if you are creating a report of locations and its associated accidents, you would select the accident data source.</li>
<li>Click the '''Next''' button.</li>
::The window to select the attributes to include in the report displays.
</ol>
<li>From the window:</li>
<ol type="a">
<li>Select the attributes that you would like to include in the report.</li>
<li>Click the Next button.</li>
::The window to select a layout displays.
</ol>
<li>From the window to select a layout:</li>
<ol type="a">
<li>Select the layout option.</li>
<li>Click the Next button.</li>
::The window to specify the sub-report expression displays.
</ol>
<li>From the window to specify the sub-report expression:</li>
<ol type="a">
<li>Enter a name for the sub-report.</li>
<li>Click the Finish button.</li>
::The sub-report displays.
</ol>
</ol>
 
====Part 3. Add parameters to the sub-report====__NOEDITSECTION__
 
<table border="1">
<tr>
<td>The next part of the process for creating a report on locations and its associated items is to define parameters that will be used for passing the location id between the sub-report and location report.</td>
</tr>
</table>
 
<ol>
<li>From the '''View''' menu, select '''Parameters'''.</li>
:The window displays the parameters.
</ol>
 
[[Image:iRep19.png|center|500px|''Figure 19. Window of fields, variables, and parameters'']]
<div align="center">
''Figure 19. Window of fields, variables, and parameters''
</div>
 
<ol>
<li>Click the '''New''' button.</li>
:The Add/modify parameter window displays.
<li>From the Add/modify parameter window:</li>
<ol type="a">
<li>In the '''Parameter Name''' field, enter a name for the parameter that will be used to identify the guid for the location.</li>
</ol>
</ol>
 
{{note|Although there are no requirements for the parameter name, you should enter a name that is easy to remember and meaningful (for example, ''location'' or ''location_guid''). Make note of this parameter name since it will used in a later step.}}
 
<ol start="4">
<ol type="a" start="2">
<li>Click the '''OK''' button.</li>
<li>Close the window that displays the list of all parameters.</li>
</ol>
</ol>
 
====Part 4. Create a query in the sub-report to associate the guid to the location report====__NOEDITSECTION__
 
{{note|The next part of the process for creating a report on locations and its associated items is to create a query that defines how the location and associated item are related in the IMSMA database. }}
 
<ol>
<li>From the '''Data''' menu, select '''Report Query'''.</li>
:The Report query window displays.
<li>From the Report query window:</li>
<ol type="a">
<li>Select ''ImsmaQuery'' from the '''Query language''' list.</li>
<li>In the field below the Query language list, enter location.guid = "$P{''ParameterName''}"</li>
where ''ParameterName'' is the name of the parameter that you created for the location guid.
</ol>
</ol>
 
[[Image:iRep20.png|center|500px|''Figure 20. Query for report on locations and associated items'']]
<div align="center">
''Figure 20. Query for report on locations and associated items''
</div>
 
<ol start="3">
<ol type="a" start="3">
<li>Click the '''OK''' button.</li>
:The Report query window closes.
</ol>
<li>Click the [[Image:iRepCompile.png]] button to compile the sub-report.</li>
</ol>
 
====Part 5. Add parameters to the location sub-report====__NOEDITSECTION__
 
{{note|The next part of the process for creating a report on locations and its associated items is to update the location report to include the parameter that will be used to associate the location record to item records.}}
 
<ol>
<li>Display the location report by doing one of the following:</li>
*From the '''Window''' menu, select the name of the location report.
*Close the sub-report.
*Bring the location report to the foreground by double-clicking the location report name that is displayed in the Files pane.
<li>Double-click the sub-report box within the report.</li>
:A window displays four tabs (Common, Sub-report, Sub-report (Other), and All).
<li>From the window:</li>
<ol type="a">
<li>Select the Sub-report (Other) tab.</li>
<li>Click the '''Add''' button.</li>
:The Add/modify parameter window displays.
</ol>
<li>From the Add/modify parameter window:</li>
<ol type="a">
<li>In the '''Sub-report Parameter Name''' field, enter the parameter name that you used for the location.</li>
</ol>
</ol>
{{note|This is the parameter that you created previously.}}
 
<ol start="5">
<ol type="a" start="2">
<li>In the '''Default Value Expression''' field, enter ''$F{guid}''.</li>
<li>Click the '''OK''' button.</li>
</ol>
<li>Close the window with the four tabs.</li>
</ol>
 
====Part 6. Compile and execute the location report====__NOEDITSECTION__
 
<ol>
<li>Ensure that the ''Location'' data source is selected from the list.</li>
<li>Click the [[Image:iRepCompile.png]] button to compile the report.</li>
<li>Click the [[Image:iRepRun.png]] button to execute the report.</li>
:The report results displays.
</ol>
 
==Items with Data Subsets==__NOEDITSECTION__
Certain items have subsets of data that are contained within them. For example, an education may have education details such as the education type, total audience, and percentage of women and men. The education details data requires the education to exist. Table 3. Parent/child relationships lists the items and the data subsets that depend on them.
The process for creating a report on a parent item and its children is similar to the process for creating a report on locations and their associated items. The key difference is that the main report will contain the attributes of the parent item. The sub-report will contain the attributes for the child item. For example, if you were trying to create a report of educations and their associated education details, the main report would contain the attributes for education and the sub-report would contain the attributes for education details.
====Part 1. Create a report with attributes for a parent item====__NOEDITSECTION__
The first part of creating a report on a parent and its child items is to create a report which includes the attributes from the parent item you would like to include.
<ol>
<li>Ensure that the IMSMA server is started.</li>
<li>From the '''File''' menu, select '''Report Wizard'''.</li>
<li>From the '''Connection/Data Sources''' list, select the data source for the parent item.</li>
</ol>
 
{{note|Table 3. Parent/child relationships lists the items which may be selected as the parent item for a report.}}
 
<ol>
<li>Click the '''Next''' button.</li>
:The iReport Wizard, Step 2 window displays a list of attributes for the selected item.
<li>Select the attributes you would like to include for the parent item.</li>
<li>Click the '''Next''' button.</li>
:The window displays a list of the attributes that you have selected.
<li>Click the '''Next''' button.</li>
:The iReport Wizard, Step 3 window displays to allow you to group the report results.
<li>Because the report results for this exercise will not need to be grouped, click the '''Next''' button.</li>
:The iReport Wizard, Step 4 window displays to allow you to select the report layout.
<li>Select a layout option.</li>
<li>Click the '''Next''' button.</li>
:The iReport Wizard, Step 5 window displays.
<li>Click the '''Finish''' button.</li>
<li>Save the report.</li>
</ol>
 
====Part 2. Create a sub-report for the child item====__NOEDITSECTION__
The next part of the process for creating a report on a parent and its child items requires you to create a sub-report within the parent item report.
 
<ol>
<li>Expand the detail section of the report by doing the following:</li>
<ol type="a">
<li>From the '''View''' menu, select '''Bands'''.</li>
<li>From the left pane, select ''detail''.</li>
<li>In the '''Band Height''' field that is in the right pane, increase the height of the detail section. At a minimum you will want to double the height.</li>
<li>Click the '''Apply''' button.</li>
:The height of the band increases based on the value that you entered.
</ol>
</ol>
 
{{note|You may also expand the height of the detail band by dragging the line that separates the detail section of the report and the page footer section down.}}
 
<ol start="2">
<li>Click the [[Image:iRepCompile.png]] button to add a sub-report.</li>
:The cursor changes to a crosshair.
<li>Click the detail section of the report.</li>
<li>While holding down the mouse button, drag the cursor to form the rectangle which will contain the sub-report.</li>
<li>Release the mouse button.</li>
:The window to create a new report or use an existing one displays.
<li>From the window:</li>
<ol type="a">
<li>Select the ''Create a new report'' option.</li>
<li>Click the '''Next''' button.</li>
:The How fill the sub-report screen displays.
</ol>
<li>From the window:</li>
<ol type="a">
<li>Select the data source for the child item from the '''Connection/Data Source''' list.</li>
<li>Click the '''Next''' button.</li>
:The window to select the attributes to include in the report displays.
</ol>
<li>From the window:</li>
<ol type="a">
<li>Select the attributes that you would like to include in the report.</li>
<li>Click the '''Next''' button.</li>
:The window to select a layout displays.
</ol>
<li>From the window to select a layout:</li>
<ol type="a">
<li>Select the layout option.</li>
<li>Click the '''Next''' button.</li>
:The window to specify the sub-report expression displays.
</ol>
<li>From the window to specify the sub-report expression:</li>
<ol type="a">
<li>Enter a name for the sub-report.</li>
<li>Click the '''Finish''' button.</li>
:The sub-report displays.
</ol>
</ol>
 
====Part 3. Add parameters to the sub-report====__NOEDITSECTION__
The next part of the process for creating a report on a parent and its child items is to define parameters that will be used for passing the parent item guid between the sub-report and main report.
 
<ol>
<li>From the '''View''' menu, select '''Parameters'''.</li>
:The window displays the parameters.
<li>Click the '''New''' button.</li>
:The Add/modify parameter window displays.
<li>From the Add/modify parameter window:</li>
<ol type="a">
<li>In the '''Parameter Name''' field, enter a name for the parameter that will be used to identify the guid for the parent item.</li>
</ol>
</ol>
 
{{note|Although there are no requirements for the parameter name, you should enter a name that is easy to remember and meaningful. Make note of this parameter name since it will used in a later step.}}
 
<ol start="4">
<ol type="a" start="2">
<li>Click the OK button.</li>
</ol>
<li>Close the window that displays the list of all parameters.</li>
</ol>
 
====Part 4. Create a query in the sub-report to associate the guid to the parent item report====__NOEDITSECTION__
The next part of the process for creating a report on locations and its associated items is to create a query that defines how the location and associated item are related in the IMSMA database.
 
<ol>
<li>From the '''Data''' menu, select '''Report Query'''.</li>
:The Report query window displays.
<li>From the Report query window:</li>
<ol type="a">
<li>Select ''ImsmaQuery'' from the '''Query language''' list.</li>
<li>In the field below the Query language list, enter ''ParentItem''.guid = "$P{''ParameterName''}"</li>
where ''ParentItem'' is the default value expression for the parent item and ''ParameterName'' is the name of the parameter that you created for the parent item guid.
<li>Click the '''OK''' button.</li>
:The Report query window closes.
<li>Click the [[Image:iRepCompile.png]] button to compile the sub-report.</li>
</ol>
</ol>
 
====Part 5. Add parameters to the parent report====__NOEDITSECTION__
The next part of the process for creating a report on a parent and its child items is to update the parent report to include the guid attribute and parameters that will be used to associate the parent item to the child item.
 
<ol>
<li>Display the parent item report by doing one of the following:</li>
*From the Window menu, select the name of the report.
*Close the sub-report.
*Bring the parent item report to the foreground by double-clicking the report name that is displayed in the Files pane.
<li>Double-click the sub-report box within the report.</li>
:A window displays four tabs (Common, Sub-report, Sub-report (Other), and All).
<li>From the window:</li>
<ol type="a">
<li>Select the Sub-report (Other) tab.</li>
<li>Click the Add button.</li>
:The Add/modify parameter window displays.
</ol>
<li>From the Add/modify parameter window:</li>
<ol type="a">
<li>In the Sub-report Parameter Name field, enter the parameter name that you used for the parent item guid.</li>
</ol>
</ol>
 
{{note|This is the parameter that you created in step previously.}}
 
<ol start="5">
<ol type="a" start="2">
<li>In the '''Default Value Expression''' field, enter ''$F{guid}''.</li>
<li>Click the '''OK''' button.</li>
</ol>
<li>Close the window with the four tabs.</li>
</ol>
 
====Part 6. Compile and execute the parent item report====__NOEDITSECTION__
<ol>
<li>Ensure that the data source for the parent item is selected from the list.</li>
<li>Click the [[Image:iRepCompile.png]] button to compile the report.</li>
<li>Click the [[Image:iRepRun.png]] button to execute the report.</li>
:The report results displays.
</ol>
==Reports on Linked Items==__NOEDITSECTION__
If you would like to report on different items that linked to the item in the main report, you may create a new sub-report for each linked item. For example, to create a report of land and the accidents and activities that are linked to those land, you would create the main report on land. This report would then contain a sub-report to list linked accidents, and another sub-report to list linked activities.
====Part 1. Create a report with attributes for a primary item====__NOEDITSECTION__
The first part of creating a report on linked items is to create a report which includes the attributes from the primary item for which you would like to list linked items.
 
<ol>
<li>Ensure that the IMSMA server is started.</li>
<li>From the '''File''' menu, select '''Report Wizard'''.</li>
<li>From the '''Connection/Data Sources''' list, select the data source for the primary item.</li>
</ol>
 
{{note|Table 3. Parent/child relationships lists the items which may be selected as the primary item for a report.}}
 
<ol start="4">
<li>Click the '''Next''' button.</li>
:The iReport Wizard, Step 2 window displays a list of attributes for the selected item.
<li>Select the attributes you would like to include for the primary item.</li>
<li>Click the '''Next''' button.</li>
:The window displays a list of the attributes that you have selected.
<li>Click the '''Next''' button.</li>
:The iReport Wizard, Step 3 window displays to allow you to group the report results.
<li>Because the report results for this exercise will not need to be grouped, click the '''Next''' button.</li>
:The iReport Wizard, Step 4 window displays to allow you to select the report layout.
<li>Select a layout option.</li>
<li>Click the '''Next''' button.</li>
:The iReport Wizard, Step 5 window displays.
<li>Click the '''Finish''' button.</li>
<li>Save the report by doing one of the following:</li>
*Click the [[Image:iRepSave.png]] icon.
*From the File menu, select '''Save'''.
::The Save report window displays.
<li>Enter a name for the report in the File name field.</li>
<li>Click the '''Save''' button.</li>
</ol>
 
====Part 2. Create a sub-report for the linked item====__NOEDITSECTION__
The next part of the process for creating a report on linked items requires you to create a sub-report for the item to which the primary item is linked.
 
<ol>
<li>Expand the detail section of the report.</li>
<li>Click the [[Image:iRepBand.png]] button to add a sub-report.</li>
:The cursor changes to a crosshair.
<li>Click the detail section of the report.</li>
<li>While holding down the mouse button, drag the cursor to form the rectangle which will contain the sub-report. </li>
<li>Release the mouse button.</li>
:The window to create a new report or use an existing one displays.
<li>From the window:</li>
<ol type="a">
<li>Select the ''Create a new report'' option.</li>
<li>Click the '''Next''' button.</li>
:The How fill the sub-report screen displays.
</ol>
<li>From the window:</li>
<ol type="a">
<li>Select the data source for the child item from the '''Connection/Data Source''' list.</li>
<li>Click the '''Next''' button.</li>
:The window to select the attributes to include in the report displays.
</ol>
<li>From the window:</li>
<ol type="a">
<li>Select the attributes that you would like to include in the report.</li>
<li>Click the '''Next''' button.</li>
:The window to select a layout displays.
</ol>
<li>From the window to select a layout:</li>
<ol type="a">
<li>Select the layout option.</li>
<li>Click the '''Next''' button.</li>
:The window to specify the sub-report expression displays.
</ol>
<li>From the window to specify the sub-report expression:</li>
<ol type="a">
<li>Enter a name for the sub-report.</li>
<li>Click the '''Finish''' button.</li>
:The sub-report displays.
</ol>
</ol>
 
====Part 3. Add the parameters to the sub-report====__NOEDITSECTION__
The next part of the process for creating a report on linked items is to define parameters that will be used for passing the guid of the primary item between the sub-report and main report.
 
<ol>
<li>Click the '''New''' button.</li>
:The Add/modify parameter window displays.
<li>From the Add/modify parameter window:</li>
<ol type="a">
<li>In the '''Parameter Name''' field, enter a name for the parameter that will be used to identify the guid for the primary item.</li>
</ol>
</ol>
 
{{note|Although there are no requirements for the parameter name, you should enter a name that is easy to remember and meaningful. Make note of this parameter name since it will used in a later step.
}}
 
<ol start="3">
<ol type="a" start="2">
<li>Click the '''OK''' button.</li>
</ol>
<li>Close the window that displays the list of all parameters.</li>
</ol>
 
====Part 4. Create a query in the sub-report to associate the guid to the primary report item====__NOEDITSECTION__
The next part of the process for creating a report on linked items is to create a query that defines how the primary item and the linked item are related in the IMSMA database.
 
<ol>
<li>From the '''Data''' menu, select '''Report Query'''.</li>
:The Report query window displays.
<li>From the Report query window:</li>
<ol type="a">
<li>Select ''ImsmaQuery'' from the '''Query language''' list.</li>
</ol>
</ol>
 
{{note|The following query is different from the query used when creating a report on items with data subsets.}}
 
<ol start="3">
<ol type="a" start="2">
<li>In the field below the Query language list, enter links.toGuid = "$P{''ParameterName''}"</li>
where ''ParameterName'' is the name of the parameter that you created for the parent item guid.
<li>Click the '''OK''' button.</li>
:The Report query window closes.
</ol>
<li>Ensure that the Query Executor data source is selected from the list.</li>
<li>Click the button to compile the sub-report.</li>
</ol>
 
====Part 5. Add attributes and parameters to the main report====__NOEDITSECTION__
The next part of the process for creating a report on linked items is to update the main report to include the guid attribute and parameters that will be used to associate the primary item to the linked item.
 
<ol>
<li>Display the main report by doing one of the following:</li>
*From the '''Window''' menu, select the name of the report.
*Close the sub-report.
*Bring the primary item report to the foreground by double-clicking the report name that is displayed in the Files pane.
<li>Double-click the sub-report box within the report.</li>
:A window displays four tabs (Common, Sub-report, Sub-report (Other), and All).
<li>From the window:</li>
<ol type="a">
<li>Select the Sub-report (Other) tab.</li>
<li>Click the '''Add''' button.</li>
:The Add/modify parameter window displays.
</ol>
<li>From the Add/modify parameter window:</li>
<ol type="a">
<li>In the '''Sub-report Parameter Name''' field, enter the parameter name that you used for the primary report item guid.</li>
</ol>
</ol>
 
{{note|This is the parameter that you created previously.}}
 
<ol start="5">
<ol type="a" start="2">
<li>In the '''Default Value Expression''' field, enter ''$F{guid}''.</li>
<li>Click the '''OK''' button.</li>
</ol>
<li>Close the window with the four tabs.</li>
 
====Part 6. Compile and execute the main report====__NOEDITSECTION__
<ol>
<li>Ensure that the data source for the item in the main report is selected from the list.</li>
<li>Click the [[Image:iRepCompile.png]] button to compile the report.</li>
<li>Click the [[Image:iRepRun.png]] button to execute the report.</li>
:The report results displays.
</ol>
 
</ol>
{{NavBox HowTo use iReport}}
319
edits