You should send a parameter of boolean type. while generating report. on the basis of that parameter you should define the path of subreport. Here is jrxml code for subrepor path.e.g.
For first subreport:
<subreport>
<reportElement uuid="8dba7f58-0466-4504-9d51-7484786450d2" positionType="Float" x="0" y="16" width="315" height="16"/>
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{listOfObject})]]></dataSourceExpression>
<subreportExpression><![CDATA[$P{swap} == true ? "/path/to/first/subreport" : /path/to/second/subreport]]></subreportExpression>
</subreport>
And for second subreport:
<subreport>
<reportElement uuid="8dba7f58-0466-4504-9d51-7484786450d2" positionType="Float" x="0" y="16" width="315" height="16"/>
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{listOfObject})]]></dataSourceExpression>
<subreportExpression><![CDATA[$P{swap} == true ? "/path/to/second/subreport" : /path/to/first/subreport]]></subreportExpression>
</subreport>
And vice-versa in other case.I have not tested. Please have a look.
Enjoy.