From 6494941037ae2670876de9940853d50538eb5129 Mon Sep 17 00:00:00 2001
From: Kenmegne <stephanie.kenmegne@gmail.com>
Date: Fri, 19 Jun 2026 11:25:51 +0000
Subject: [PATCH] move to new repo
---
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/LargestWidth.java | 59
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/process/SecondProcessor.java | 501 ++++
reporting-adhoc/target/classes/.netbeans_automatic_build | 0
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/components/Label.java | 23
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/components/ValueElement.java | 85
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/components/TextComponent.java | 122 +
reporting-adhoc/reports/jasper/Dossier.jasper | 0
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/enums/ReportOrientation.java | 33
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/layouts/PageHeader.java | 19
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/components/Line.java | 42
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/dto/HeaderData.java | 43
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/DescriptionSousEtat.java | 81
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/components/Component.java | 104
reporting-adhoc/src/main/resources/report-parts/page-properties.xml | 10
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/ReportDefinition.java | 26
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/components/TextField.java | 53
reporting-adhoc/pom.xml | 65
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/dto/ReportConfiguration.java | 48
reporting-adhoc/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst | 52
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/annotations/PrintList.java | 27
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/layouts/ColumnData.java | 28
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/process/ParseXMLTemplate.java | 1027 ++++++++
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/annotations/PrintColumn.java | 27
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/test/CategorieDetailConstruct.java | 93
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/DisplayCondition.java | 53
reporting-adhoc/src/main/resources/report-parts/parameters.xml | 1
reporting-adhoc/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst | 0
reporting-adhoc/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst | 54
reporting-adhoc/reports/pdf/baseArchive20240419154430.pdf | 0
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/MainReportDefinition.java | 57
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/CustomField.java | 110
reporting-adhoc/reports/jrxml/DossierDetail.jrxml | 271 ++
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/components/Paragraph.java | 83
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/layouts/SubReport.java | 157 +
reporting-adhoc/target/maven-archiver/pom.properties | 5
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/DescriptionEtat.java | 88
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/layouts/PageFooter.java | 17
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/layouts/Title.java | 19
reporting-adhoc/reports/jasper/DossierDetail.jasper | 0
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/ElementToDisplay.java | 70
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/SubReportDefinition.java | 50
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/xml/ReportTag.java | 86
reporting-adhoc/nb-configuration.xml | 18
reporting-adhoc/target/classes/report-parts/page-properties.xml | 10
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/ProcessorElements.java | 62
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/process/GenerateJRXML.java | 724 ++++++
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/process/Processor.java | 92
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/App.java | 96
reporting-adhoc/src/main/resources/report-parts/groups.xml | 12
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/enums/ComponentType.java | 12
reporting-adhoc/reports/pdf/baseArchive20240606103904.pdf | 0
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/layouts/MainReport.java | 208 +
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/test/CategorieConstruct.java | 98
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/components/Image.java | 34
reporting-adhoc/target/test-classes/.netbeans_automatic_build | 0
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/layouts/Report.java | 25
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/test/EntrepriseConstruct.java | 118 +
reporting-adhoc/target/classes/report-parts/variables.xml | 7
reporting-adhoc/reports/jrxml/Dossier.jrxml | 1043 ++++++++
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/components/Border.java | 112
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/enums/ValueElementType.java | 13
reporting-adhoc/target/classes/report-parts/groups.xml | 12
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/layouts/ColumnHeader.java | 27
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/dto/Column.java | 43
reporting-adhoc/target/classes/report-parts/parameters.xml | 1
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/enums/Section.java | 13
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/util/PdfUtil.java | 55
reporting-adhoc/src/main/resources/report-parts/variables.xml | 7
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/dto/PrintableColumn.java | 33
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/util/PrintableColumnExtractor.java | 115
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/enums/ElementType.java | 39
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/layouts/Layout.java | 47
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/enums/Position.java | 37
reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/Constantes.java | 106
74 files changed, 6,908 insertions(+), 0 deletions(-)
diff --git a/reporting-adhoc/nb-configuration.xml b/reporting-adhoc/nb-configuration.xml
new file mode 100644
index 0000000..a65c451
--- /dev/null
+++ b/reporting-adhoc/nb-configuration.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project-shared-configuration>
+ <!--
+This file contains additional configuration written by modules in the NetBeans IDE.
+The configuration is intended to be shared among all the users of project and
+therefore it is assumed to be part of version control checkout.
+Without this configuration present, some functionality in the IDE may be limited or fail altogether.
+-->
+ <properties xmlns="http://www.netbeans.org/ns/maven-properties-data/1">
+ <!--
+Properties that influence various parts of the IDE, especially code formatting and the like.
+You can copy and paste the single properties, into the pom.xml file and the IDE will pick them up.
+That way multiple projects can share the same settings (useful for formatting rules for example).
+Any value defined here will override the pom.xml file value but is only applicable to the current project.
+-->
+ <netbeans.hint.jdkPlatform>JDK_1.8</netbeans.hint.jdkPlatform>
+ </properties>
+</project-shared-configuration>
diff --git a/reporting-adhoc/pom.xml b/reporting-adhoc/pom.xml
new file mode 100644
index 0000000..227c3ee
--- /dev/null
+++ b/reporting-adhoc/pom.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>com.megatim</groupId>
+ <artifactId>reporting-adhoc</artifactId>
+ <version>1.0</version>
+ <packaging>jar</packaging>
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <maven.compiler.source>1.8</maven.compiler.source>
+ <maven.compiler.target>1.8</maven.compiler.target>
+ <exec.mainClass>com.megatim.dynamic.reports.App</exec.mainClass>
+ </properties>
+ <build>
+ <plugins>
+
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifest>
+ <mainClass>com.megatim.dynamic.reports.App</mainClass>
+ </manifest>
+ </archive>
+ <descriptorRefs>
+ <descriptorRef>jar-with-dependencies</descriptorRef>
+ </descriptorRefs>
+ </configuration>
+ <executions>
+ <execution>
+ <id>make-assembly</id> <!-- this is used for inheritance merges -->
+ <phase>package</phase> <!-- bind to the packaging phase -->
+ <goals>
+ <goal>single</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+
+ </plugins>
+ </build>
+
+ <dependencies>
+ <dependency>
+ <groupId>net.sf.jasperreports</groupId>
+ <artifactId>jasperreports</artifactId>
+ <version>6.19.1</version>
+ </dependency>
+ <dependency>
+ <groupId>net.sf.jasperreports</groupId>
+ <artifactId>jasperreports-fonts</artifactId>
+ <version>6.19.1</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-validator</groupId>
+ <artifactId>commons-validator</artifactId>
+ <version>1.6</version>
+ </dependency>
+ <dependency>
+ <groupId>com.megatim.horizon</groupId>
+ <artifactId>horizon-reporting</artifactId>
+ <version>1.0</version>
+ </dependency>
+ </dependencies>
+</project>
\ No newline at end of file
diff --git a/reporting-adhoc/reports/jasper/Dossier.jasper b/reporting-adhoc/reports/jasper/Dossier.jasper
new file mode 100644
index 0000000..48d61bd
--- /dev/null
+++ b/reporting-adhoc/reports/jasper/Dossier.jasper
Binary files differ
diff --git a/reporting-adhoc/reports/jasper/DossierDetail.jasper b/reporting-adhoc/reports/jasper/DossierDetail.jasper
new file mode 100644
index 0000000..c91bd7e
--- /dev/null
+++ b/reporting-adhoc/reports/jasper/DossierDetail.jasper
Binary files differ
diff --git a/reporting-adhoc/reports/jrxml/Dossier.jrxml b/reporting-adhoc/reports/jrxml/Dossier.jrxml
new file mode 100644
index 0000000..bea80ac
--- /dev/null
+++ b/reporting-adhoc/reports/jrxml/Dossier.jrxml
@@ -0,0 +1,1043 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Dossier" pageWidth="842" pageHeight="595" orientation="Landscape" columnWidth="814" leftMargin="14" rightMargin="0" topMargin="4" bottomMargin="4" whenResourceMissingType="Key" whenNoDataType="NoDataSection" uuid="336e3455-4d58-40aa-ad3a-8622391eb9ff">
+ <property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
+ <property name="com.jaspersoft.studio.unit." value="pixel"/>
+ <property name="com.jaspersoft.studio.unit.pageHeight" value="pixel"/>
+ <property name="com.jaspersoft.studio.unit.pageWidth" value="pixel"/>
+ <property name="com.jaspersoft.studio.unit.topMargin" value="pixel"/>
+ <property name="com.jaspersoft.studio.unit.bottomMargin" value="pixel"/>
+ <property name="com.jaspersoft.studio.unit.leftMargin" value="pixel"/>
+ <property name="com.jaspersoft.studio.unit.rightMargin" value="pixel"/>
+ <property name="com.jaspersoft.studio.unit.columnWidth" value="pixel"/>
+ <property name="com.jaspersoft.studio.unit.columnSpacing" value="pixel"/>
+ <parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="true"/>
+ <parameter name="TITRE" class="java.lang.String" isForPrompting="false"/>
+ <parameter name="LOGO_CENTRE" class="java.lang.String" isForPrompting="false"/>
+ <parameter name="VERSION" class="java.lang.String" isForPrompting="false"/>
+
+ <field name="dateCreation" class="java.lang.String" >
+ <fieldDescription><![CDATA[dateCreation]]></fieldDescription>
+ </field>
+ <field name="posteComptableArchive" class="java.lang.String" >
+ <fieldDescription><![CDATA[posteComptableArchive]]></fieldDescription>
+ </field>
+ <field name="banqueArchive" class="java.lang.String" >
+ <fieldDescription><![CDATA[banqueArchive]]></fieldDescription>
+ </field>
+ <field name="nbreDetails" class="java.lang.Integer" >
+ <fieldDescription><![CDATA[nbreDetails]]></fieldDescription>
+ </field>
+ <field name="montant" class="java.lang.String" >
+ <fieldDescription><![CDATA[montant]]></fieldDescription>
+ </field>
+ <field name="details" class="java.util.List" >
+ <fieldDescription><![CDATA[details]]></fieldDescription>
+ </field>
+ <field name="statutDossier" class="java.lang.String" >
+ <fieldDescription><![CDATA[statutDossier]]></fieldDescription>
+ </field>
+
+ <variable name="REPORT_PAGE" class="java.lang.Integer" resetType="None" incrementType="Page">
+ <variableExpression><![CDATA[$V{PAGE_NUMBER}]]></variableExpression>
+ </variable>
+ <variable name="LINE_NUMBER" class="java.lang.Long" resetType="Group" resetGroup="Groupe1" calculation="Count">
+ <variableExpression><![CDATA[Boolean.TRUE]]></variableExpression>
+ <initialValueExpression><![CDATA[new Long(1)]]></initialValueExpression>
+ </variable>
+ <group name="Groupe1" isStartNewPage="true" minHeightToStartNewPage="60">
+ <groupHeader>
+ <band splitType="Immediate">
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+ </band>
+ </groupHeader>
+ <groupFooter>
+ <band splitType="Immediate">
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+ </band>
+ </groupFooter>
+ </group>
+ <title>
+ <band height="211" splitType="Immediate" >
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+ <image scaleImage="FillFrame" hAlign="Center" vAlign="Middle">
+ <reportElement x="0" y="1" width="813" height="62" uuid="0846f415-2676-4c1f-9c7b-2d5285964739">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <graphicElement fill="Solid"/>
+ <imageExpression><![CDATA[$P{LOGO_CENTRE}]]></imageExpression>
+ </image>
+ <textField isBlankWhenNull="true" textAdjust="CutText">
+ <reportElement x="1" y="80" width="813" height="32" isRemoveLineWhenBlank="false" forecolor="#000000" isPrintInFirstWholeBand="true" isPrintWhenDetailOverflows="true" uuid="74e84f59-b587-42e7-ab7a-c898e566e084">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="16" isBold="true" isUnderline="true"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <textFieldExpression><![CDATA[$P{TITRE}]]></textFieldExpression>
+ </textField>
+ <staticText>
+ <reportElement x="0" y="131" width="78" height="20" forecolor="#000000" uuid="0f8b7bb1-e73e-4919-ba1d-eeeca1ae2916">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Left" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[Montant Total]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="88" y="131" width="168" height="20" forecolor="#000000" uuid="85cad382-1341-493d-9c37-b0b866f28d20">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Left" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="false" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[5555.69723]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="78" y="131" width="5" height="20" forecolor="#000000" uuid="e9a4f0f2-4fa5-44b7-b55f-818d8555405d">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[:]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="0" y="151" width="78" height="20" forecolor="#000000" uuid="520cbb07-17e6-4f66-9e38-953563c30a30">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Left" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[Nombre Total]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="88" y="151" width="168" height="20" forecolor="#000000" uuid="9e36eb17-a042-4808-8803-042f58d933e5">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Left" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="false" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[100]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="78" y="151" width="5" height="20" forecolor="#000000" uuid="58bcd8c2-82bd-45af-8b12-309fe41c20c1">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[:]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="0" y="171" width="78" height="20" forecolor="#000000" uuid="bc4849e2-f312-4271-8ed8-42bc9785ca12">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Left" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[Date Début]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="88" y="171" width="168" height="20" forecolor="#000000" uuid="1021ca23-f8d9-4c0c-91a5-3b628fabca3c">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Left" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="false" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[Thu Jun 06 10:39:02 WAT 2024]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="78" y="171" width="5" height="20" forecolor="#000000" uuid="af7bbd27-60fd-4606-b6b4-8255be27ea55">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[:]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="0" y="191" width="78" height="20" forecolor="#000000" uuid="cd484297-66c4-4517-a695-7a4628bcd142">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Left" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[Date Fin]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="88" y="191" width="168" height="20" forecolor="#000000" uuid="48a9aaf6-8215-4034-a16b-dd3f0ebee83c">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Left" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="false" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[Thu Jun 06 10:39:02 WAT 2024]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="78" y="191" width="5" height="20" forecolor="#000000" uuid="a1cb155a-1200-42a3-a0ec-6462831b3ffc">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[:]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="595" y="131" width="54" height="20" forecolor="#000000" uuid="b65e7914-5e6a-43a8-93e3-9b97684d70b9">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Left" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[Edité le]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="659" y="131" width="168" height="20" forecolor="#000000" uuid="b6d7d4d5-d956-4035-93dd-c1a0a0ef3f03">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Left" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="false" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[Thu Jun 06 10:39:02 WAT 2024]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="649" y="131" width="5" height="20" forecolor="#000000" uuid="685bb82a-0d27-4f70-9b14-045d7c0bbc6f">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[:]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="595" y="151" width="54" height="20" forecolor="#000000" uuid="3181b12a-015b-48f9-a9b2-13e5a4f72f59">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Left" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[Edité par]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="659" y="151" width="168" height="20" forecolor="#000000" uuid="dd4b74c7-cfe6-4ca9-9e4c-c00e381c3485">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Left" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="false" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[Thu Jun 06 10:39:02 WAT 2024]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="649" y="151" width="5" height="20" forecolor="#000000" uuid="e470db74-3a7c-430c-adc6-175d7be9347a">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[:]]></text>
+ </staticText>
+ <image scaleImage="FillFrame" hAlign="Center" vAlign="Middle">
+ <reportElement x="0" y="1" width="813" height="62" uuid="ab1c3b13-ed5f-4ef4-a89f-94ed1e588ebf">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <graphicElement fill="Solid"/>
+ <imageExpression><![CDATA[$P{LOGO_CENTRE}]]></imageExpression>
+ </image>
+ <textField isBlankWhenNull="true" textAdjust="CutText">
+ <reportElement x="1" y="80" width="813" height="32" isRemoveLineWhenBlank="false" forecolor="#000000" isPrintInFirstWholeBand="true" isPrintWhenDetailOverflows="true" uuid="eb5d0bfe-0e58-40ba-ab48-1f01d318696e">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="16" isBold="true" isUnderline="true"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <textFieldExpression><![CDATA[$P{TITRE}]]></textFieldExpression>
+ </textField>
+ <staticText>
+ <reportElement x="0" y="131" width="78" height="20" forecolor="#000000" uuid="ea8e18a1-9126-439b-9222-016ae77ffcde">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Left" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[Montant Total]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="88" y="131" width="168" height="20" forecolor="#000000" uuid="941a4401-3dbc-44dd-8d41-41635d92dcc3">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Left" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="false" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[5555.69723]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="78" y="131" width="5" height="20" forecolor="#000000" uuid="74e5d055-12e0-4f16-a488-74baa528da90">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[:]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="0" y="151" width="78" height="20" forecolor="#000000" uuid="9cd14e54-4cc1-4e3e-a72e-34a5c742431c">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Left" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[Nombre Total]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="88" y="151" width="168" height="20" forecolor="#000000" uuid="a8a38b1b-c0c2-432d-94b0-577330492422">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Left" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="false" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[100]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="78" y="151" width="5" height="20" forecolor="#000000" uuid="b605e546-6b6f-4fc2-906c-d58cc0c0c745">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[:]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="0" y="171" width="78" height="20" forecolor="#000000" uuid="7c76d8ab-915d-4380-bf34-22c4d7e450f1">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Left" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[Date Début]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="88" y="171" width="168" height="20" forecolor="#000000" uuid="4e2e3e76-2b73-4e45-a40e-87834b8009d2">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Left" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="false" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[Thu Jun 06 10:39:02 WAT 2024]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="78" y="171" width="5" height="20" forecolor="#000000" uuid="811dd1b9-8424-4448-8d12-e3f6b7a48d30">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[:]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="0" y="191" width="78" height="20" forecolor="#000000" uuid="58ddef6e-854a-433f-b255-1a211b08acd1">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Left" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[Date Fin]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="88" y="191" width="168" height="20" forecolor="#000000" uuid="904b9a2c-5ed5-4ba2-91e5-776c7e2273be">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Left" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="false" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[Thu Jun 06 10:39:02 WAT 2024]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="78" y="191" width="5" height="20" forecolor="#000000" uuid="78ba8e3b-ea1b-45f6-9366-ba8c4963e310">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[:]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="595" y="131" width="54" height="20" forecolor="#000000" uuid="679ef903-d439-413e-a090-ddfad9ad07e5">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Left" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[Edité le]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="659" y="131" width="168" height="20" forecolor="#000000" uuid="836ed5e9-3bdb-40a9-ac04-5e85f9f2b8cf">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Left" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="false" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[Thu Jun 06 10:39:02 WAT 2024]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="649" y="131" width="5" height="20" forecolor="#000000" uuid="7df766ef-5d6d-4cc2-bc60-80ff8c140d39">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[:]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="595" y="151" width="54" height="20" forecolor="#000000" uuid="0683ac38-a5e1-44e5-896c-140818d14835">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Left" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[Edité par]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="659" y="151" width="168" height="20" forecolor="#000000" uuid="e011cd7f-a6a7-4f85-995c-cff5f31d37dc">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Left" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="false" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[Thu Jun 06 10:39:02 WAT 2024]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="649" y="151" width="5" height="20" forecolor="#000000" uuid="8563dc8b-917d-4c38-a35e-7d7e9a51654b">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[:]]></text>
+ </staticText>
+ </band>
+ </title>
+ <pageHeader>
+ <band height="30" splitType="Immediate" >
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+ <textField isBlankWhenNull="true" textAdjust="StretchHeight">
+ <reportElement x="16" y="0" width="700" height="20" isRemoveLineWhenBlank="false" forecolor="#000000" isPrintInFirstWholeBand="true" isPrintWhenDetailOverflows="true" uuid="45879388-c3ab-4690-8e29-5cc2c5614106">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+<printWhenExpression><![CDATA[$V{PAGE_NUMBER} >1]]></printWhenExpression>
+ </reportElement>
+ <textElement textAlignment="Left" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <textFieldExpression><![CDATA[$P{TITRE}]]></textFieldExpression>
+ </textField>
+ <line>
+ <reportElement x="0" y="22" width="815" height="1" isRemoveLineWhenBlank="true" forecolor="#000000" uuid="67233608-55d6-423c-8925-0979a94bfa0d">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+<printWhenExpression><![CDATA[$V{PAGE_NUMBER} >1]]></printWhenExpression>
+ </reportElement>
+ <graphicElement>
+ <pen lineWidth="2.5" lineStyle="Solid"/>
+ </graphicElement>
+ </line>
+ </band>
+ </pageHeader>
+ <columnHeader>
+ <band height="19" splitType="Stretch" >
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+ <staticText>
+ <reportElement x="0" y="0" width="38" height="19" forecolor="#000000" uuid="2ebddbed-5d62-4214-a4a9-8fa077485647">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <box>
+ <pen lineWidth="1.0" lineStyle="Solid" lineColor="#000000" />
+ <topPen lineWidth="1.0"/>
+ <leftPen lineWidth="1.0"/>
+ <bottomPen lineWidth="1.0"/>
+ </box>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[N°]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="38" y="0" width="111" height="19" forecolor="#000000" uuid="2098e036-b361-46f5-abed-92d670d948b5">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <box>
+ <pen lineWidth="1.0" lineStyle="Solid" lineColor="#000000" />
+ <topPen lineWidth="1.0"/>
+ <leftPen lineWidth="1.0"/>
+ <bottomPen lineWidth="1.0"/>
+ </box>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[BANQUE]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="149" y="0" width="111" height="19" forecolor="#000000" uuid="f3f8f806-5736-40ff-beb5-353f62f49a1c">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <box>
+ <pen lineWidth="1.0" lineStyle="Solid" lineColor="#000000" />
+ <topPen lineWidth="1.0"/>
+ <leftPen lineWidth="1.0"/>
+ <bottomPen lineWidth="1.0"/>
+ </box>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[POSTE COMPTABLE]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="260" y="0" width="111" height="19" forecolor="#000000" uuid="0f4eecca-ce8f-4a8e-aca5-75ac8a37cd89">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <box>
+ <pen lineWidth="1.0" lineStyle="Solid" lineColor="#000000" />
+ <topPen lineWidth="1.0"/>
+ <leftPen lineWidth="1.0"/>
+ <bottomPen lineWidth="1.0"/>
+ </box>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[STATUT]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="371" y="0" width="111" height="19" forecolor="#000000" uuid="38e688b8-f268-412b-84ce-35d2802ca679">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <box>
+ <pen lineWidth="1.0" lineStyle="Solid" lineColor="#000000" />
+ <topPen lineWidth="1.0"/>
+ <leftPen lineWidth="1.0"/>
+ <bottomPen lineWidth="1.0"/>
+ </box>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[NATURE]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="482" y="0" width="111" height="19" forecolor="#000000" uuid="e23e7bd4-9831-4e29-8f86-87efffa5213a">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <box>
+ <pen lineWidth="1.0" lineStyle="Solid" lineColor="#000000" />
+ <topPen lineWidth="1.0"/>
+ <leftPen lineWidth="1.0"/>
+ <bottomPen lineWidth="1.0"/>
+ </box>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[MONTANT]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="593" y="0" width="111" height="19" forecolor="#000000" uuid="c72c7980-5a99-4c25-b1dd-77769d06ed11">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <box>
+ <pen lineWidth="1.0" lineStyle="Solid" lineColor="#000000" />
+ <topPen lineWidth="1.0"/>
+ <leftPen lineWidth="1.0"/>
+ <bottomPen lineWidth="1.0"/>
+ </box>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[NBRE DETAILS]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="704" y="0" width="114" height="19" forecolor="#000000" uuid="c37323ac-ac19-492c-993b-f58f5a297e1d">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <box>
+ <pen lineWidth="1.0" lineStyle="Solid" lineColor="#000000" />
+ <topPen lineWidth="1.0"/>
+ <leftPen lineWidth="1.0"/>
+ <bottomPen lineWidth="1.0"/>
+ </box>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[DATE CREATION]]></text>
+ </staticText>
+ </band>
+ </columnHeader>
+ <detail>
+ <band height="19" splitType="Prevent" >
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+ <textField isBlankWhenNull="true" textAdjust="StretchHeight">
+ <reportElement x="0" y="0" width="38" height="19" isRemoveLineWhenBlank="false" forecolor="#000000" stretchType="ElementGroupHeight" isPrintInFirstWholeBand="true" isPrintWhenDetailOverflows="true" uuid="5c29fed6-1057-43fa-8ba1-d932cca7a689">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <box>
+ <pen lineWidth="1.0" lineStyle="Solid" lineColor="#000000" />
+ <leftPen lineWidth="0.5"/>
+ <bottomPen lineWidth="0.5"/>
+ </box>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="false" isUnderline="false"/>
+ <paragraph lineSpacing="1_1_2" lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <textFieldExpression><![CDATA[String.valueOf($V{LINE_NUMBER})]]></textFieldExpression>
+ </textField>
+ <textField isBlankWhenNull="true" textAdjust="StretchHeight">
+ <reportElement x="38" y="0" width="111" height="19" isRemoveLineWhenBlank="false" forecolor="#000000" stretchType="ElementGroupHeight" isPrintInFirstWholeBand="true" isPrintWhenDetailOverflows="true" uuid="493d89d8-1167-4375-82de-20dd37a645bd">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <box>
+ <pen lineWidth="1.0" lineStyle="Solid" lineColor="#000000" />
+ <leftPen lineWidth="0.5"/>
+ <bottomPen lineWidth="0.5"/>
+ </box>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="false" isUnderline="false"/>
+ <paragraph lineSpacing="1_1_2" lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <textFieldExpression><![CDATA[$F{banqueArchive}]]></textFieldExpression>
+ </textField>
+ <textField isBlankWhenNull="true" textAdjust="StretchHeight">
+ <reportElement x="149" y="0" width="111" height="19" isRemoveLineWhenBlank="false" forecolor="#000000" stretchType="ElementGroupHeight" isPrintInFirstWholeBand="true" isPrintWhenDetailOverflows="true" uuid="ca1c8c48-2270-47f7-964a-962c6873904e">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <box>
+ <pen lineWidth="1.0" lineStyle="Solid" lineColor="#000000" />
+ <leftPen lineWidth="0.5"/>
+ <bottomPen lineWidth="0.5"/>
+ </box>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="false" isUnderline="false"/>
+ <paragraph lineSpacing="1_1_2" lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <textFieldExpression><![CDATA[$F{posteComptableArchive}]]></textFieldExpression>
+ </textField>
+ <textField isBlankWhenNull="true" textAdjust="StretchHeight">
+ <reportElement x="260" y="0" width="111" height="19" isRemoveLineWhenBlank="false" forecolor="#000000" stretchType="ElementGroupHeight" isPrintInFirstWholeBand="true" isPrintWhenDetailOverflows="true" uuid="acf27d88-e995-4419-ac49-89868ecf2a2d">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <box>
+ <pen lineWidth="1.0" lineStyle="Solid" lineColor="#000000" />
+ <leftPen lineWidth="0.5"/>
+ <bottomPen lineWidth="0.5"/>
+ </box>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="false" isUnderline="false"/>
+ <paragraph lineSpacing="1_1_2" lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <textFieldExpression><![CDATA[$F{posteComptableArchive}]]></textFieldExpression>
+ </textField>
+ <textField isBlankWhenNull="true" textAdjust="StretchHeight">
+ <reportElement x="371" y="0" width="111" height="19" isRemoveLineWhenBlank="false" forecolor="#000000" stretchType="ElementGroupHeight" isPrintInFirstWholeBand="true" isPrintWhenDetailOverflows="true" uuid="d6ce998f-28d9-473d-a8ba-7d89460b70ae">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <box>
+ <pen lineWidth="1.0" lineStyle="Solid" lineColor="#000000" />
+ <leftPen lineWidth="0.5"/>
+ <bottomPen lineWidth="0.5"/>
+ </box>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="false" isUnderline="false"/>
+ <paragraph lineSpacing="1_1_2" lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <textFieldExpression><![CDATA[$F{statutDossier}]]></textFieldExpression>
+ </textField>
+ <textField isBlankWhenNull="true" textAdjust="StretchHeight">
+ <reportElement x="482" y="0" width="111" height="19" isRemoveLineWhenBlank="false" forecolor="#000000" stretchType="ElementGroupHeight" isPrintInFirstWholeBand="true" isPrintWhenDetailOverflows="true" uuid="9b8059e3-b271-413c-a1ba-1d54966dd50b">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <box>
+ <pen lineWidth="1.0" lineStyle="Solid" lineColor="#000000" />
+ <leftPen lineWidth="0.5"/>
+ <bottomPen lineWidth="0.5"/>
+ </box>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="false" isUnderline="false"/>
+ <paragraph lineSpacing="1_1_2" lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <textFieldExpression><![CDATA[$F{montant}]]></textFieldExpression>
+ </textField>
+ <textField isBlankWhenNull="true" textAdjust="StretchHeight">
+ <reportElement x="593" y="0" width="111" height="19" isRemoveLineWhenBlank="false" forecolor="#000000" stretchType="ElementGroupHeight" isPrintInFirstWholeBand="true" isPrintWhenDetailOverflows="true" uuid="6be6eac7-b195-4edf-b784-27ccff2acf38">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <box>
+ <pen lineWidth="1.0" lineStyle="Solid" lineColor="#000000" />
+ <leftPen lineWidth="0.5"/>
+ <bottomPen lineWidth="0.5"/>
+ </box>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="false" isUnderline="false"/>
+ <paragraph lineSpacing="1_1_2" lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <textFieldExpression><![CDATA[$F{nbreDetails}]]></textFieldExpression>
+ </textField>
+ <textField isBlankWhenNull="true" textAdjust="StretchHeight">
+ <reportElement x="704" y="0" width="114" height="19" isRemoveLineWhenBlank="false" forecolor="#000000" stretchType="ElementGroupHeight" isPrintInFirstWholeBand="true" isPrintWhenDetailOverflows="true" uuid="d2b19276-1002-444d-9fa0-8f0a305b6e68">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <box>
+ <pen lineWidth="1.0" lineStyle="Solid" lineColor="#000000" />
+ <leftPen lineWidth="0.5"/>
+ <bottomPen lineWidth="0.5"/>
+ </box>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="false" isUnderline="false"/>
+ <paragraph lineSpacing="1_1_2" lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <textFieldExpression><![CDATA[$F{dateCreation}]]></textFieldExpression>
+ </textField>
+ </band>
+ <band height="38" splitType="Immediate" >
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+ <subreport isUsingCache="true" runToBottom="true" overflowType="Stretch" >
+ <reportElement stretchType="ElementGroupHeight" x="0" y="0" width="780" height="38" isPrintInFirstWholeBand="true" isPrintWhenDetailOverflows="true" uuid="0f90bb2d-8cc2-43e2-82f8-e8017b4c06e0">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+ </reportElement>
+ <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{details})]]></dataSourceExpression>
+ <subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "DossierDetail.jasper"]]></subreportExpression>
+ </subreport>
+ </band>
+ </detail>
+ <pageFooter>
+ <band height="35" splitType="Immediate" >
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+ <line>
+ <reportElement x="0" y="10" width="814" height="1" isRemoveLineWhenBlank="true" forecolor="#000000" uuid="ae8a306f-387b-4bab-a652-79ed70b8f2cb">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <graphicElement>
+ <pen lineWidth="2.5" lineStyle="Solid"/>
+ </graphicElement>
+ </line>
+ <textField isBlankWhenNull="true" textAdjust="CutText">
+ <reportElement x="2" y="11" width="268" height="20" isRemoveLineWhenBlank="false" forecolor="#000000" isPrintInFirstWholeBand="true" isPrintWhenDetailOverflows="true" uuid="25a89e48-9e5c-45bf-ad87-fa5164d5f9a6">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Left" verticalAlignment="Middle">
+ <font fontName="Serif" size="8" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <textFieldExpression><![CDATA[$P{VERSION}]]></textFieldExpression>
+ </textField>
+ <staticText>
+ <reportElement x="370" y="11" width="100" height="20" forecolor="#000000" uuid="07790b9f-2a76-45d8-8f12-592a406cb690">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="6" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[By MEGATIM]]></text>
+ </staticText>
+ <textField evaluationTime="Auto" isBlankWhenNull="true" textAdjust="CutText">
+ <reportElement x="745" y="11" width="87" height="20" isRemoveLineWhenBlank="false" forecolor="#000000" isPrintInFirstWholeBand="true" isPrintWhenDetailOverflows="true" uuid="57419f3d-09c2-48ff-ae25-6feed0cdc80c">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="8" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <textFieldExpression><![CDATA[" Page "+String.valueOf($V{REPORT_PAGE})+" / "+String.valueOf($V{PAGE_NUMBER})]]></textFieldExpression>
+ </textField>
+ </band>
+ </pageFooter>
+</jasperReport>
\ No newline at end of file
diff --git a/reporting-adhoc/reports/jrxml/DossierDetail.jrxml b/reporting-adhoc/reports/jrxml/DossierDetail.jrxml
new file mode 100644
index 0000000..fa01fbd
--- /dev/null
+++ b/reporting-adhoc/reports/jrxml/DossierDetail.jrxml
@@ -0,0 +1,271 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="DossierDetail" pageWidth="700" pageHeight="500" orientation="Landscape" columnWidth="600" leftMargin="14" rightMargin="0" topMargin="8" bottomMargin="11" whenResourceMissingType="Key" whenNoDataType="NoDataSection" uuid="605f95ec-9bc5-48bc-b430-efbb5ef2ceef">
+ <property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
+ <property name="com.jaspersoft.studio.unit." value="pixel"/>
+ <property name="com.jaspersoft.studio.unit.pageHeight" value="pixel"/>
+ <property name="com.jaspersoft.studio.unit.pageWidth" value="pixel"/>
+ <property name="com.jaspersoft.studio.unit.topMargin" value="pixel"/>
+ <property name="com.jaspersoft.studio.unit.bottomMargin" value="pixel"/>
+ <property name="com.jaspersoft.studio.unit.leftMargin" value="pixel"/>
+ <property name="com.jaspersoft.studio.unit.rightMargin" value="pixel"/>
+ <property name="com.jaspersoft.studio.unit.columnWidth" value="pixel"/>
+ <property name="com.jaspersoft.studio.unit.columnSpacing" value="pixel"/>
+ <parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="true"/>
+
+ <field name="reference" class="java.lang.String" >
+ <fieldDescription><![CDATA[reference]]></fieldDescription>
+ </field>
+ <field name="dateDetail" class="java.lang.String" >
+ <fieldDescription><![CDATA[dateDetail]]></fieldDescription>
+ </field>
+ <field name="systemePaiement" class="java.lang.String" >
+ <fieldDescription><![CDATA[systemePaiement]]></fieldDescription>
+ </field>
+ <field name="montant" class="java.math.BigDecimal" >
+ <fieldDescription><![CDATA[montant]]></fieldDescription>
+ </field>
+
+ <variable name="REPORT_PAGE" class="java.lang.Integer" resetType="None" incrementType="Page">
+ <variableExpression><![CDATA[$V{PAGE_NUMBER}]]></variableExpression>
+ </variable>
+ <variable name="LINE_NUMBER" class="java.lang.Long" resetType="Group" resetGroup="Groupe1" calculation="Count">
+ <variableExpression><![CDATA[Boolean.TRUE]]></variableExpression>
+ <initialValueExpression><![CDATA[new Long(1)]]></initialValueExpression>
+ </variable>
+ <group name="Groupe1" isStartNewPage="true" minHeightToStartNewPage="60">
+ <groupHeader>
+ <band splitType="Immediate">
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+ </band>
+ </groupHeader>
+ <groupFooter>
+ <band splitType="Immediate">
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+ </band>
+ </groupFooter>
+ </group>
+ <pageHeader>
+ <band height="20" splitType="Immediate" >
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+ <staticText>
+ <reportElement x="0" y="0" width="150" height="20" forecolor="#000000" uuid="6f376ed3-c299-40f6-bc3b-fb32b0962d08">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <textElement textAlignment="Left" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[Liste détails virement]]></text>
+ </staticText>
+ </band>
+ </pageHeader>
+ <columnHeader>
+ <band height="19" splitType="Stretch" >
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+ <staticText>
+ <reportElement x="0" y="0" width="38" height="19" forecolor="#000000" uuid="ca5498a9-0d92-4c4c-98b1-21c4b0300b57">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <box>
+ <pen lineWidth="1.0" lineStyle="Solid" lineColor="#000000" />
+ <topPen lineWidth="1.0"/>
+ <leftPen lineWidth="1.0"/>
+ <bottomPen lineWidth="1.0"/>
+ </box>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[N°]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="38" y="0" width="159" height="19" forecolor="#000000" uuid="36d4d583-6015-4a39-86b7-fe2e77304df8">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <box>
+ <pen lineWidth="1.0" lineStyle="Solid" lineColor="#000000" />
+ <topPen lineWidth="1.0"/>
+ <leftPen lineWidth="1.0"/>
+ <bottomPen lineWidth="1.0"/>
+ </box>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[REFERENCE]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="197" y="0" width="159" height="19" forecolor="#000000" uuid="89505e6a-8167-4d74-9d5c-42ddd16288b1">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <box>
+ <pen lineWidth="1.0" lineStyle="Solid" lineColor="#000000" />
+ <topPen lineWidth="1.0"/>
+ <leftPen lineWidth="1.0"/>
+ <bottomPen lineWidth="1.0"/>
+ </box>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[SYSTEME PAIEMENT]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="356" y="0" width="159" height="19" forecolor="#000000" uuid="4cf82043-e285-47b7-9ace-65c71786c54b">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <box>
+ <pen lineWidth="1.0" lineStyle="Solid" lineColor="#000000" />
+ <topPen lineWidth="1.0"/>
+ <leftPen lineWidth="1.0"/>
+ <bottomPen lineWidth="1.0"/>
+ </box>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[MONTANT]]></text>
+ </staticText>
+ <staticText>
+ <reportElement x="515" y="0" width="161" height="19" forecolor="#000000" uuid="e7523ae2-1ba8-4710-a7e5-e5928d67bb9c">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <box>
+ <pen lineWidth="1.0" lineStyle="Solid" lineColor="#000000" />
+ <topPen lineWidth="1.0"/>
+ <leftPen lineWidth="1.0"/>
+ <bottomPen lineWidth="1.0"/>
+ </box>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="true" isUnderline="false"/>
+ <paragraph lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <text><![CDATA[DATE OPERATION]]></text>
+ </staticText>
+ </band>
+ </columnHeader>
+ <detail>
+ <band height="19" splitType="Immediate" >
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+ <textField isBlankWhenNull="true" textAdjust="StretchHeight">
+ <reportElement x="0" y="0" width="38" height="19" isRemoveLineWhenBlank="false" forecolor="#000000" stretchType="ElementGroupHeight" isPrintInFirstWholeBand="true" isPrintWhenDetailOverflows="true" uuid="9096d398-8129-48c7-ba7b-e3d3f05e8d50">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <box>
+ <pen lineWidth="1.0" lineStyle="Solid" lineColor="#000000" />
+ <leftPen lineWidth="0.5"/>
+ <bottomPen lineWidth="0.5"/>
+ </box>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="false" isUnderline="false"/>
+ <paragraph lineSpacing="1_1_2" lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <textFieldExpression><![CDATA[String.valueOf($V{LINE_NUMBER})]]></textFieldExpression>
+ </textField>
+ <textField isBlankWhenNull="true" textAdjust="StretchHeight">
+ <reportElement x="38" y="0" width="159" height="19" isRemoveLineWhenBlank="false" forecolor="#000000" stretchType="ElementGroupHeight" isPrintInFirstWholeBand="true" isPrintWhenDetailOverflows="true" uuid="c4e1afd2-9ccc-4d6f-81f1-5d6532d77278">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <box>
+ <pen lineWidth="1.0" lineStyle="Solid" lineColor="#000000" />
+ <leftPen lineWidth="0.5"/>
+ <bottomPen lineWidth="0.5"/>
+ </box>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="false" isUnderline="false"/>
+ <paragraph lineSpacing="1_1_2" lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <textFieldExpression><![CDATA[$F{reference}]]></textFieldExpression>
+ </textField>
+ <textField isBlankWhenNull="true" textAdjust="StretchHeight">
+ <reportElement x="197" y="0" width="159" height="19" isRemoveLineWhenBlank="false" forecolor="#000000" stretchType="ElementGroupHeight" isPrintInFirstWholeBand="true" isPrintWhenDetailOverflows="true" uuid="1d304c34-2d86-41ee-80c2-2a1cdfd1c238">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <box>
+ <pen lineWidth="1.0" lineStyle="Solid" lineColor="#000000" />
+ <leftPen lineWidth="0.5"/>
+ <bottomPen lineWidth="0.5"/>
+ </box>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="false" isUnderline="false"/>
+ <paragraph lineSpacing="1_1_2" lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <textFieldExpression><![CDATA[$F{systemePaiement}]]></textFieldExpression>
+ </textField>
+ <textField pattern="#,##0.###;(#,##0.###-)" isBlankWhenNull="true" textAdjust="StretchHeight">
+ <reportElement x="356" y="0" width="159" height="19" isRemoveLineWhenBlank="false" forecolor="#000000" stretchType="ElementGroupHeight" isPrintInFirstWholeBand="true" isPrintWhenDetailOverflows="true" uuid="e0e5f8c5-4177-4c9f-835a-9cc61f57e3f0">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <box>
+ <pen lineWidth="1.0" lineStyle="Solid" lineColor="#000000" />
+ <leftPen lineWidth="0.5"/>
+ <bottomPen lineWidth="0.5"/>
+ </box>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="false" isUnderline="false"/>
+ <paragraph lineSpacing="1_1_2" lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <textFieldExpression><![CDATA[$F{montant}]]></textFieldExpression>
+ </textField>
+ <textField isBlankWhenNull="true" textAdjust="StretchHeight">
+ <reportElement x="515" y="0" width="161" height="19" isRemoveLineWhenBlank="false" forecolor="#000000" stretchType="ElementGroupHeight" isPrintInFirstWholeBand="true" isPrintWhenDetailOverflows="true" uuid="f50923c0-0e3e-453d-a1c9-c83d51674b9a">
+ <property name="com.jaspersoft.studio.unit.x" value="px"/>
+ <property name="com.jaspersoft.studio.unit.width" value="px"/>
+ <property name="com.jaspersoft.studio.unit.y" value="px"/>
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+
+ </reportElement>
+ <box>
+ <pen lineWidth="1.0" lineStyle="Solid" lineColor="#000000" />
+ <leftPen lineWidth="0.5"/>
+ <bottomPen lineWidth="0.5"/>
+ </box>
+ <textElement textAlignment="Center" verticalAlignment="Middle">
+ <font fontName="Serif" size="10" isBold="false" isUnderline="false"/>
+ <paragraph lineSpacing="1_1_2" lineSpacingSize="0.0" firstLineIndent="0" leftIndent="0" rightIndent="0" spacingBefore="0" spacingAfter="0" />
+ </textElement>
+ <textFieldExpression><![CDATA[$F{dateDetail}]]></textFieldExpression>
+ </textField>
+ </band>
+ </detail>
+</jasperReport>
\ No newline at end of file
diff --git a/reporting-adhoc/reports/pdf/baseArchive20240419154430.pdf b/reporting-adhoc/reports/pdf/baseArchive20240419154430.pdf
new file mode 100644
index 0000000..7b48f1e
--- /dev/null
+++ b/reporting-adhoc/reports/pdf/baseArchive20240419154430.pdf
Binary files differ
diff --git a/reporting-adhoc/reports/pdf/baseArchive20240606103904.pdf b/reporting-adhoc/reports/pdf/baseArchive20240606103904.pdf
new file mode 100644
index 0000000..ef62c85
--- /dev/null
+++ b/reporting-adhoc/reports/pdf/baseArchive20240606103904.pdf
Binary files differ
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/App.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/App.java
new file mode 100644
index 0000000..2ec570b
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/App.java
@@ -0,0 +1,96 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Project/Maven2/JavaApp/src/main/java/${packagePath}/${mainClassName}.java to edit this template
+ */
+package com.megatim.reporting.adhoc;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.OutputStream;
+import java.util.List;
+import java.util.Map;
+import net.sf.jasperreports.engine.JasperExportManager;
+import net.sf.jasperreports.engine.JasperFillManager;
+import net.sf.jasperreports.engine.JasperPrint;
+import net.sf.jasperreports.engine.JasperReport;
+import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
+import net.sf.jasperreports.engine.util.JRLoader;
+
+/**
+ *
+ * @author ASUS
+ */
+public class App {
+
+ public final static File templateListe = new File("C:\\Users\\ASUS\\Documents\\templateEtats.xml");
+ public final static File templateDetail = new File("C:\\Users\\ASUS\\Documents\\templateEtatsDetail.xml");
+
+ public static void main(String[] args) {
+ String str = "\t\tmoi hghruhrih \niroriotor\naem\t\tp\t\t";
+
+ String result = str.trim()
+ .replaceAll("(?U)\\s+", " ");
+// .replaceAll("(?U)\\G\\s", "");
+ System.out.println("----------------- before ----------------------------");
+ System.out.println(str);
+ System.out.println("--------------------after-------------------------");
+ System.out.println("begin" + result + "end");
+
+// String jrxmlPath = "C:\\Users\\ASUS\\Documents\\etats\\etats_horizon";
+// String pdfPath = "C:\\Users\\ASUS\\Documents\\etats\\etats_horizon\\pdfs";
+// DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
+//
+// try {
+// String jasperFile = new Processor().process(new CategorieDetailConstruct().construct(jrxmlPath));
+//// String jasperFile = new Processor().process(templateDetail, new ComiteDetailConstruct().construct(jrxmlPath));
+//
+// List<ComiteRapport> liste = ComiteDataSource.createBeanCollection();
+//
+// HashMap<String, Object> map = new HashMap<>();
+// map.put("MONTANT_TOTAL", new BigDecimal("642555.36915"));
+// map.put("TITRE", "LISTE DES ENTREPRISES");
+// map.put("LOGIN_UTILISATEUR", "Mela");
+// map.put("VERSION", "HORIZON");
+// map.put("LOGO_CENTRE", jrxmlPath + "\\images\\logo.jpg");
+// map.put("NOMBRE_TOTAL", liste.size() + "");
+// map.put("SUBREPORT_DIR", jrxmlPath + File.separator);
+//
+// genererFichierPdf(liste, Paths.get(pdfPath, "ComiteDetail" + dtf.format(LocalDateTime.now()) + ".pdf").toString(),
+// jasperFile, map);
+// } catch (Exception ex) {
+// Logger.getLogger(App.class.getName()).log(Level.SEVERE, null, ex);
+// }
+ }
+
+ public static File genererFichierPdf(List<?> datas, String pdfFile, String reportFilePath, Map params) throws Exception {
+
+ // Creation d'un File sur le fichier
+ File reportFile = new File(reportFilePath);
+ File fichierGenerer = new File(pdfFile);
+
+ //On cree le fichier s'ile n'existe pas
+ if (!fichierGenerer.exists()) {
+
+ //On cree le fichier
+ fichierGenerer.createNewFile();
+
+ }
+
+ // Chargement du Rapport
+ JasperReport report = null;
+
+ // Etat rempli
+ JasperPrint jasperPrint = null;
+
+ // Chargement du report
+ report = (JasperReport) JRLoader.loadObject(reportFile);
+ jasperPrint = JasperFillManager.fillReport(report, params, new JRBeanCollectionDataSource(datas, false));
+
+ OutputStream output = new FileOutputStream(fichierGenerer);
+ JasperExportManager.exportReportToPdfStream(jasperPrint, output);
+ output.close();
+
+ return fichierGenerer;
+ }
+
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/annotations/PrintColumn.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/annotations/PrintColumn.java
new file mode 100644
index 0000000..556f68e
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/annotations/PrintColumn.java
@@ -0,0 +1,27 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Interface.java to edit this template
+ */
+package com.megatim.reporting.adhoc.annotations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ *
+ * @author ASUS
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ElementType.FIELD, ElementType.METHOD})
+public @interface PrintColumn {
+
+ //libellé ou titre de la colonne lors de l'affichage
+ public String libelle();
+
+ public int rang() default 0;
+
+ public int width() default 0;
+
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/annotations/PrintList.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/annotations/PrintList.java
new file mode 100644
index 0000000..880d6eb
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/annotations/PrintList.java
@@ -0,0 +1,27 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Interface.java to edit this template
+ */
+package com.megatim.reporting.adhoc.annotations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ *
+ * @author ASUS
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ElementType.FIELD})
+public @interface PrintList {
+
+ //libellé ou titre de la colonne lors de l'affichage
+ public String titre();
+
+ public int rang() default 0;
+
+ public Class<?> classe();
+
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/dto/Column.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/dto/Column.java
new file mode 100644
index 0000000..180843b
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/dto/Column.java
@@ -0,0 +1,43 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.dto;
+
+/**
+ *
+ * @author ASUS
+ */
+public class Column {
+
+ private String libelle; // Label à utiliser dans le ColumnHeader pour ce champ
+
+ private int rang;
+
+ private int width;
+
+ public String getLibelle() {
+ return libelle;
+ }
+
+ public void setLibelle(String libelle) {
+ this.libelle = libelle;
+ }
+
+ public int getRang() {
+ return rang;
+ }
+
+ public void setRang(int rang) {
+ this.rang = rang;
+ }
+
+ public int getWidth() {
+ return width;
+ }
+
+ public void setWidth(int width) {
+ this.width = width;
+ }
+
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/dto/HeaderData.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/dto/HeaderData.java
new file mode 100644
index 0000000..501be6e
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/dto/HeaderData.java
@@ -0,0 +1,43 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.dto;
+
+/**
+ *
+ * @author ASUS
+ */
+public class HeaderData {
+ private String libelle;
+
+ private String value;
+
+ private String position = "GAUCHE";
+
+ public String getLibelle() {
+ return libelle;
+ }
+
+ public void setLibelle(String libelle) {
+ this.libelle = libelle;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ public String getPosition() {
+ return position;
+ }
+
+ public void setPosition(String position) {
+ this.position = position;
+ }
+
+
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/dto/PrintableColumn.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/dto/PrintableColumn.java
new file mode 100644
index 0000000..eb1a2f6
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/dto/PrintableColumn.java
@@ -0,0 +1,33 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.dto;
+
+/**
+ *
+ * @author ASUS
+ */
+public class PrintableColumn {
+
+ private String libelle;
+
+ private String description;
+
+ public String getLibelle() {
+ return libelle;
+ }
+
+ public void setLibelle(String libelle) {
+ this.libelle = libelle;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/dto/ReportConfiguration.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/dto/ReportConfiguration.java
new file mode 100644
index 0000000..0dabdd6
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/dto/ReportConfiguration.java
@@ -0,0 +1,48 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.dto;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ *
+ * @author ASUS
+ */
+public class ReportConfiguration<U> {
+
+ private U searchEntity;
+
+ private String title;
+
+ private final List<Column> columns = new ArrayList<>();
+
+ private final List<HeaderData> headerDatas = new ArrayList<>();
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public List<Column> getColumns() {
+ return columns;
+ }
+
+ public List<HeaderData> getHeaderDatas() {
+ return headerDatas;
+ }
+
+ public U getSearchEntity() {
+ return searchEntity;
+ }
+
+ public void setSearchEntity(U searchEntity) {
+ this.searchEntity = searchEntity;
+ }
+
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/Constantes.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/Constantes.java
new file mode 100644
index 0000000..5ac4630
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/Constantes.java
@@ -0,0 +1,106 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.pojo;
+
+/**
+ *
+ * @author ASUS
+ */
+public class Constantes {
+ public static final String ATTRIBUTE_X = "x";
+ public static final String ATTRIBUTE_Y = "y";
+ public static final String ATTRIBUTE_DEFAULT_VALUE = "defaultValue";
+ public static final String ATTRIBUTE_BOLD = "bold";
+ public static final String ATTRIBUTE_UNDERLINE = "underLine";
+ public static final String ATTRIBUTE_FONT_NAME = "fontName";
+ public static final String ATTRIBUTE_LEFT_BORDER = "leftBorder";
+ public static final String ATTRIBUTE_TOP_BORDER = "topBorder";
+ public static final String ATTRIBUTE_RIGHT_BORDER = "rightBorder";
+ public static final String ATTRIBUTE_BOTTOM_BORDER = "bottomBorder";
+ public static final String ATTRIBUTE_H_ALIGN = "hAlign";
+ public static final String ATTRIBUTE_V_ALIGN = "vAlign";
+ public static final String ATTRIBUTE_NAME = "name";
+ public static final String ATTRIBUTE_DATASOURCE = "datasource";
+ public static final String ATTRIBUTE_STYLE = "style";
+ public static final String ATTRIBUTE_COLUMN_STYLE = "columnStyle";
+ public static final String ATTRIBUTE_SPLIT_TYPE = "splitType";
+ public static final String ATTRIBUTE_STRETCH_TYPE = "stretchType";
+ public static final String ATTRIBUTE_CLASSE = "classe";
+ public static final String ATTRIBUTE_PATTERN = "pattern";
+ public static final String ATTRIBUTE_VALUE = "value";
+ public static final String ATTRIBUTE_TEXT_ADJUST = "textAdjust";
+ public static final String ATTRIBUTE_IS_PRINT_IN_FIRST_WHOLE_BAND = "isBlankWhenNull";
+ public static final String ATTRIBUTE_IS_PRINT_WHEN_DETAIL_OVER_FLOWS = "isPrintInFirtWholeBand";
+ public static final String ATTRIBUTE_IS_BLANK_WHEN_NULL = "isBlankWhenNull";
+ public static final String ATTRIBUTE_WIDTH = "width";
+ public static final String ATTRIBUTE_PAGE_WIDTH = "pageWidth";
+ public static final String ATTRIBUTE_HEIGHT = "height";
+ public static final String ATTRIBUTE_PAGE_HEIGHT = "pageHeight";
+ public static final String ATTRIBUTE_ORIENTATION = "orientation";
+ public static final String ATTRIBUTE_LEFT_MARGIN = "leftMargin";
+ public static final String ATTRIBUTE_TOP_MARGIN = "topMargin";
+ public static final String ATTRIBUTE_BOTTOM_MARGIN = "bottomMargin";
+ public static final String ATTRIBUTE_RIGHT_MARGIN = "rightMargin";
+ public static final String ATTRIBUTE_FORE_COLOR = "forecolor";
+ public static final String ATTRIBUTE_LINE_COLOR = "lineColor";
+ public static final String ATTRIBUTE_LINE_WIDTH = "lineWidth";
+ public static final String ATTRIBUTE_LINE_STYLE = "lineStyle";
+ public static final String ATTRIBUTE_SIZE = "size";
+ public static final String ATTRIBUTE_LEFT_INDENT = "leftIndent";
+ public static final String ATTRIBUTE_RIGHT_INDENT = "rightIndent";
+ public static final String ATTRIBUTE_RIGHT_PADDING = "rightPadding";
+ public static final String ATTRIBUTE_LEFT_PADDING = "leftPadding";
+ public static final String ATTRIBUTE_TOP_PADDING = "topPadding";
+ public static final String ATTRIBUTE_BOTTOM_PADDING = "bottomPadding";
+ public static final String ATTRIBUTE_LINE_SPACING = "lineSpacing";
+ public static final String ATTRIBUTE_SPACING_BEFORE = "spacingBefore";
+ public static final String ATTRIBUTE_SPACING_AFTER = "spacingAfter";
+ public static final String ATTRIBUTE_LINE_SPACING_SIZE = "lineSpacingSize";
+ public static final String ATTRIBUTE_FIRST_LINE_INDENT = "firstLineIndent";
+ public static final String ATTRIBUTE_BAND_STYLE = "bandStyle";
+ public static final String ATTRIBUTE_RUN_TO_BOTTOM = "runToBottom";
+ public static final String ATTRIBUTE_USING_CACHE = "usingCache";
+ public static final String ATTRIBUTE_OVERFLOW_TYPE = "overflowType";
+ public static final String ATTRIBUTE_REMOVE_LINE_WHEN_BLANK = "removeLineWhenBlank";
+ public static final String ATTRIBUTE_DISPLAY_CONDITION = "displayCondition";
+ public static final String ATTRIBUTE_OPERAND_TYPE = "operandType";
+ public static final String ATTRIBUTE_LEFT_OPERAND = "leftOperand";
+ public static final String ATTRIBUTE_OPERATOR = "operator";
+ public static final String ATTRIBUTE_RIGHT_OPERAND = "rightOperator";
+ public static final String ATTRIBUTE_PAGE_TITLE_STYLE = "pageTitleStyle";
+ public static final String ATTRIBUTE_SCALE_IMAGE = "scaleImage";
+ public static final String ATTRIBUTE_COLUMN_WIDTH = "columnWidth";
+
+ public static final String OPERAND_TYPE_VARIABLE = "variable";
+ public static final String OPERAND_TYPE_PARAMETER = "parameter";
+ public static final String OPERAND_TYPE_FIELD = "field";
+
+ public static final String TAG_REPORT = "report";
+ public static final String TAG_SUB_REPORT = "subReport";
+ public static final String TAG_TITLE = "title";
+ public static final String TAG_IMAGE = "image";
+ public static final String TAG_PARAMETER = "parameter";
+ public static final String TAG_TEXT_FIELD = "textField";
+ public static final String TAG_LABEL = "label";
+ public static final String TAG_GENERATE = "GENERATE";
+ public static final String TAG_PAGE_HEADER = "pageHeader";
+ public static final String TAG_PAGE_FOOTER = "pageFooter";
+ public static final String TAG_COLUMN_HEADER = "columnHeader";
+ public static final String TAG_COLUMN_DATA = "columnData";
+ public static final String TAG_FIELD = "field";
+ public static final String TAG_LINE = "line";
+ public static final String TAG_LINE_NUMBER = "lineNumber";
+ public static final String TAG_TEXT = "text";
+ public static final String TAG_PAGE_NUMBER = "pageNumber";
+
+
+ public static String V_ALIGN_MIDDLE = "Middle";
+ public static String H_ALIGN_LEFT = "Left";
+ public static String H_ALIGN_CENTER = "Center";
+ public static String H_ALIGN_RIGHT = "Right";
+
+ public static final int LABEL_HEIGHT = 20;
+ public static final int DEUX_POINTS_WIDTH = 5;
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/CustomField.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/CustomField.java
new file mode 100644
index 0000000..615199f
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/CustomField.java
@@ -0,0 +1,110 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.pojo;
+
+/**
+ *
+ * @author ASUS
+ */
+public class CustomField {
+
+ private String libelle; // Label à utiliser dans le ColumnHeader pour ce champ
+
+ private String name; // Nom du champ
+
+ private Class<?> classe = java.lang.String.class;
+
+ private int rang;
+
+ private int width;
+
+ private String pattern;
+
+ public CustomField() {
+ }
+
+ public CustomField(String libelle, String name) {
+ this.libelle = libelle;
+ this.name = name;
+ }
+
+ @Override
+ public String toString() {
+ return libelle ;
+ }
+
+ public String getLibelle() {
+ return libelle;
+ }
+
+ public void setLibelle(String libelle) {
+ this.libelle = libelle;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Class<?> getClasse() {
+ return classe;
+ }
+
+ public void setClasse(Class<?> classe) {
+
+ if (classe.getCanonicalName().equals(int.class.getCanonicalName())) {
+ this.classe = java.lang.Integer.class;
+
+ } else if (classe.getCanonicalName().equals(long.class.getCanonicalName())) {
+ this.classe = java.lang.Long.class;
+
+ } else if (classe.getCanonicalName().equals(boolean.class.getCanonicalName())) {
+ this.classe = java.lang.Boolean.class;
+
+ } else if (classe.getCanonicalName().equals(float.class.getCanonicalName())) {
+ this.classe = java.lang.Float.class;
+
+ } else if (classe.getCanonicalName().equals(double.class.getCanonicalName())) {
+ this.classe = java.lang.Double.class;
+
+ }else if (classe.getCanonicalName().equals(char.class.getCanonicalName())) {
+ this.classe = java.lang.Character.class;
+
+ } else if (classe.getCanonicalName().equals(byte.class.getCanonicalName())) {
+ this.classe = java.lang.Byte.class;
+ } else {
+ this.classe = classe;
+ }
+
+ }
+
+ public int getRang() {
+ return rang;
+ }
+
+ public void setRang(int rang) {
+ this.rang = rang;
+ }
+
+ public int getWidth() {
+ return width;
+ }
+
+ public void setWidth(int width) {
+ this.width = width;
+ }
+
+ public String getPattern() {
+ return pattern;
+ }
+
+ public void setPattern(String pattern) {
+ this.pattern = pattern;
+ }
+
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/DescriptionEtat.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/DescriptionEtat.java
new file mode 100644
index 0000000..7701514
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/DescriptionEtat.java
@@ -0,0 +1,88 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.pojo;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ *
+ * @author ASUS
+ */
+public class DescriptionEtat {
+
+ private boolean haveLineNumber = true; // renseigne si le rapport doit prévoir une colonne pour le numéro de ligne
+
+ private String reportName; // Nom que va porter le fichier de sortie du jrxml et du jasper
+
+ private List<DescriptionSousEtat> subReportDescriptions = new ArrayList<>();
+
+ private final List<CustomField> fieldsToDisplay = new ArrayList<>(); // Liste des champs dont vont provenir les données
+
+ private final List<ElementToDisplay> elementsToDisplay = new ArrayList<>(); // Liste des labels à insérer dans l'état
+
+ private File templateFile;//Fichier template xml qui contient la description minimale de l'état
+
+ private String repositoryFolder; //Repertoire où seront stockés les fichiers jrxml et jasper
+
+ private boolean detail; //renseigne si l'état sous forme de "liste" ou de "détail"
+
+ public boolean isHaveLineNumber() {
+ return haveLineNumber;
+ }
+
+ public void setHaveLineNumber(boolean haveLineNumber) {
+ this.haveLineNumber = haveLineNumber;
+ }
+
+ public String getReportName() {
+ return reportName;
+ }
+
+ public void setReportName(String reportName) {
+ this.reportName = reportName;
+ }
+
+ public List<CustomField> getFieldsToDisplay() {
+ return fieldsToDisplay;
+ }
+
+ public File getTemplateFile() {
+ return templateFile;
+ }
+
+ public void setTemplateFile(File templateFile) {
+ this.templateFile = templateFile;
+ }
+
+ public String getRepositoryFolder() {
+ return repositoryFolder;
+ }
+
+ public void setRepositoryFolder(String repositoryFolder) {
+ this.repositoryFolder = repositoryFolder;
+ }
+
+ public List<ElementToDisplay> getElementsToDisplay() {
+ return elementsToDisplay;
+ }
+
+ public List<DescriptionSousEtat> getSubReportDescriptions() {
+ return subReportDescriptions;
+ }
+
+ public void setSubReportDescriptions(List<DescriptionSousEtat> subReportDescriptions) {
+ this.subReportDescriptions = subReportDescriptions;
+ }
+
+ public boolean isDetail() {
+ return detail;
+ }
+
+ public void setDetail(boolean detail) {
+ this.detail = detail;
+ }
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/DescriptionSousEtat.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/DescriptionSousEtat.java
new file mode 100644
index 0000000..0aaa0c4
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/DescriptionSousEtat.java
@@ -0,0 +1,81 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.pojo;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ *
+ * @author ASUS
+ */
+public class DescriptionSousEtat {
+
+ private int rangSousEtat;
+
+ private CustomField dataField;// champ de type liste qui contient les données du sous-état
+
+ private boolean haveLineNumber = true; // renseigne si le rapport doit une doit une colonne pour le numéro de ligne
+
+ private String subReportName; // Nom que va porter le fichier de sortie du jrxml et du jasper
+
+ private final List<CustomField> fieldsToDisplay = new ArrayList<>(); // Liste des champs à afficher dans le sous-rapport
+
+ private List<ElementToDisplay> elementsToDisplay = new ArrayList<>(); // Liste des labels à insérer dans le sous-état
+
+ private String reportTitle;
+
+ public int getRangSousEtat() {
+ return rangSousEtat;
+ }
+
+ public void setRangSousEtat(int rangSousEtat) {
+ this.rangSousEtat = rangSousEtat;
+ }
+
+ public boolean isHaveLineNumber() {
+ return haveLineNumber;
+ }
+
+ public void setHaveLineNumber(boolean haveLineNumber) {
+ this.haveLineNumber = haveLineNumber;
+ }
+
+ public String getSubReportName() {
+ return subReportName;
+ }
+
+ public void setSubReportName(String subReportName) {
+ this.subReportName = subReportName;
+ }
+
+ public List<ElementToDisplay> getElementsToDisplay() {
+ return elementsToDisplay;
+ }
+
+ public void setElementsToDisplay(List<ElementToDisplay> elementsToDisplay) {
+ this.elementsToDisplay = elementsToDisplay;
+ }
+
+ public List<CustomField> getFieldsToDisplay() {
+ return fieldsToDisplay;
+ }
+
+ public CustomField getDataField() {
+ return dataField;
+ }
+
+ public void setDataField(CustomField dataField) {
+ this.dataField = dataField;
+ }
+
+ public String getReportTitle() {
+ return reportTitle;
+ }
+
+ public void setReportTitle(String reportTitle) {
+ this.reportTitle = reportTitle;
+ }
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/DisplayCondition.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/DisplayCondition.java
new file mode 100644
index 0000000..8c9dd0c
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/DisplayCondition.java
@@ -0,0 +1,53 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.dynamic.reports.pojo;
+
+/**
+ *
+ * @author ASUS
+ */
+public class DisplayCondition {
+
+ private String operandType;
+
+ private String leftOperand;
+
+ private String rightOperand;
+
+ private String operator;
+
+ public String getOperandType() {
+ return operandType;
+ }
+
+ public void setOperandType(String operandType) {
+ this.operandType = operandType;
+ }
+
+ public String getLeftOperand() {
+ return leftOperand;
+ }
+
+ public void setLeftOperand(String leftOperand) {
+ this.leftOperand = leftOperand;
+ }
+
+ public String getRightOperand() {
+ return rightOperand;
+ }
+
+ public void setRightOperand(String rightOperand) {
+ this.rightOperand = rightOperand;
+ }
+
+ public String getOperator() {
+ return operator;
+ }
+
+ public void setOperator(String operator) {
+ this.operator = operator;
+ }
+
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/ElementToDisplay.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/ElementToDisplay.java
new file mode 100644
index 0000000..255ec23
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/ElementToDisplay.java
@@ -0,0 +1,70 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.pojo;
+
+import com.megatim.reporting.adhoc.pojo.enums.ElementType;
+import com.megatim.reporting.adhoc.pojo.enums.Position;
+import com.megatim.reporting.adhoc.pojo.enums.Section;
+
+/**
+ * Pojo permettant de stocker les labels (provenant de la vue) à insérer dans un état
+ * @author ASUS
+ */
+public class ElementToDisplay {
+ private String libelle;
+
+ private String value;
+
+ private Position position = Position.LEFT;
+
+ private Section section = Section.TITLE;
+
+ private ElementType elementType = ElementType.TEXTE_STATIQUE;
+
+ public ElementToDisplay(String libelle, String value) {
+ this.libelle = libelle;
+ this.value = value;
+ }
+
+ public String getLibelle() {
+ return libelle;
+ }
+
+ public void setLibelle(String libelle) {
+ this.libelle = libelle;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ public Position getPosition() {
+ return position;
+ }
+
+ public void setPosition(Position position) {
+ this.position = position;
+ }
+
+ public Section getSection() {
+ return section;
+ }
+
+ public void setSection(Section section) {
+ this.section = section;
+ }
+
+ public ElementType getElementType() {
+ return elementType;
+ }
+
+ public void setElementType(ElementType elementType) {
+ this.elementType = elementType;
+ }
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/LargestWidth.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/LargestWidth.java
new file mode 100644
index 0000000..110ed1c
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/LargestWidth.java
@@ -0,0 +1,59 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.dynamic.reports.pojo;
+
+/**
+ * Pojo permettant de stocker la longueur adéquate des labels de la section titre
+ * @author ASUS
+ */
+public class LargestWidth {
+
+ private int leftLargestKey;
+
+ private int leftLargestValue;
+
+ private int rightLargestKey;
+
+ private int rightLargestValue;
+
+ public LargestWidth(int leftLargestKey, int leftLargestValue, int rightLargestKey, int rightLargestValue) {
+ this.leftLargestKey = leftLargestKey;
+ this.leftLargestValue = leftLargestValue;
+ this.rightLargestKey = rightLargestKey;
+ this.rightLargestValue = rightLargestValue;
+ }
+
+ public int getLeftLargestKey() {
+ return leftLargestKey;
+ }
+
+ public void setLeftLargestKey(int leftLargestKey) {
+ this.leftLargestKey = leftLargestKey;
+ }
+
+ public int getLeftLargestValue() {
+ return leftLargestValue;
+ }
+
+ public void setLeftLargestValue(int leftLargestValue) {
+ this.leftLargestValue = leftLargestValue;
+ }
+
+ public int getRightLargestKey() {
+ return rightLargestKey;
+ }
+
+ public void setRightLargestKey(int rightLargestKey) {
+ this.rightLargestKey = rightLargestKey;
+ }
+
+ public int getRightLargestValue() {
+ return rightLargestValue;
+ }
+
+ public void setRightLargestValue(int rightLargestValue) {
+ this.rightLargestValue = rightLargestValue;
+ }
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/MainReportDefinition.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/MainReportDefinition.java
new file mode 100644
index 0000000..e5c19bb
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/MainReportDefinition.java
@@ -0,0 +1,57 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.pojo;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ *
+ * @author ASUS
+ */
+public class MainReportDefinition {
+
+ protected boolean haveLineNumber = true; // renseigne si le rapport doit une doit une colonne pour le numéro de ligne
+
+ protected String reportName; // Nom que va porter le fichier de sortie du jrxml et du jasper
+
+ protected boolean detail;
+
+ protected final List<CustomField> customFields = new ArrayList<>(); // Liste des champs dont vont probenir les données
+
+ protected final List<ElementToDisplay> elementsToDisplay = new ArrayList<>(); // Liste des labels à insérer dans l'état
+
+ public boolean isHaveLineNumber() {
+ return haveLineNumber;
+ }
+
+ public void setHaveLineNumber(boolean haveLineNumber) {
+ this.haveLineNumber = haveLineNumber;
+ }
+
+ public String getReportName() {
+ return reportName;
+ }
+
+ public void setReportName(String reportName) {
+ this.reportName = reportName;
+ }
+
+ public List<CustomField> getCustomFields() {
+ return customFields;
+ }
+
+ public List<ElementToDisplay> getElementsToDisplay() {
+ return elementsToDisplay;
+ }
+
+ public boolean isDetail() {
+ return detail;
+ }
+
+ public void setDetail(boolean detail) {
+ this.detail = detail;
+ }
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/ProcessorElements.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/ProcessorElements.java
new file mode 100644
index 0000000..c76a099
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/ProcessorElements.java
@@ -0,0 +1,62 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.pojo;
+
+import java.io.File;
+
+/**
+ *
+ * @author ASUS
+ */
+public class ProcessorElements {
+
+ private File templateFile;
+
+ private String jrxmlFolder;
+
+ private String jasperFolder;
+
+ private ReportDefinition reportDefinition;
+
+ public ProcessorElements(File templateFile, String jrxmlFolder, String jasperFolder, ReportDefinition reportDefinition) {
+ this.templateFile = templateFile;
+ this.jrxmlFolder = jrxmlFolder;
+ this.jasperFolder = jasperFolder;
+ this.reportDefinition = reportDefinition;
+ }
+
+ public File getTemplateFile() {
+ return templateFile;
+ }
+
+ public void setTemplateFile(File templateFile) {
+ this.templateFile = templateFile;
+ }
+
+ public String getJrxmlFolder() {
+ return jrxmlFolder;
+ }
+
+ public void setJrxmlFolder(String jrxmlFolder) {
+ this.jrxmlFolder = jrxmlFolder;
+ }
+
+ public String getJasperFolder() {
+ return jasperFolder;
+ }
+
+ public void setJasperFolder(String jasperFolder) {
+ this.jasperFolder = jasperFolder;
+ }
+
+ public ReportDefinition getReportDefinition() {
+ return reportDefinition;
+ }
+
+ public void setReportDefinition(ReportDefinition reportDefinition) {
+ this.reportDefinition = reportDefinition;
+ }
+
+ }
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/ReportDefinition.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/ReportDefinition.java
new file mode 100644
index 0000000..aeb62eb
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/ReportDefinition.java
@@ -0,0 +1,26 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.pojo;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Pojo permettant de stocker la description d'un état
+ *
+ * @author ASUS
+ */
+public class ReportDefinition extends MainReportDefinition {
+
+ private final List<SubReportDefinition> subReportDefs = new ArrayList<>(); // Liste des sous-rapports s'il y en a
+
+ public ReportDefinition(String reportName) {
+ this.reportName = reportName;
+ }
+
+ public List<SubReportDefinition> getSubReportDefs() {
+ return subReportDefs;
+ }
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/SubReportDefinition.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/SubReportDefinition.java
new file mode 100644
index 0000000..186ed63
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/SubReportDefinition.java
@@ -0,0 +1,50 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.pojo;
+
+/**
+ *
+ * @author ASUS
+ */
+public class SubReportDefinition extends MainReportDefinition {
+
+ private int rang; //ordre d'affichage de l'etat, utile pour les sous-rapports au cas où il y en a plusieurs
+
+ private String dataSource; // Nom du champ qui contient la liste des données d'un rapport; ce champ doit être une liste
+
+ private String title; // titre du sous-rapport
+
+ public SubReportDefinition(String reportName,String dataSource, String title, int rang) {
+ this.rang = rang;
+ this.dataSource = dataSource;
+ this.title = title;
+ this.reportName = reportName;
+ }
+
+ public int getRang() {
+ return rang;
+ }
+
+ public void setRang(int rang) {
+ this.rang = rang;
+ }
+
+ public String getDataSource() {
+ return dataSource;
+ }
+
+ public void setDataSource(String dataSource) {
+ this.dataSource = dataSource;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/components/Border.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/components/Border.java
new file mode 100644
index 0000000..ee92407
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/components/Border.java
@@ -0,0 +1,112 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.pojo.components;
+
+/**
+ *
+ * @author ASUS
+ */
+public class Border {
+
+ private float leftBorder;
+
+ private float bottomBorder;
+
+ private float topBorder;
+
+ private float rightBorder;
+
+ private String lineColor = "#000000";
+
+ private String lineStyle = "Solid";
+
+ protected int leftPadding;
+
+ protected int rightPadding;
+
+ protected int topPadding;
+
+ protected int bottomPadding;
+
+ public float getLeftBorder() {
+ return leftBorder;
+ }
+
+ public void setLeftBorder(float leftBorder) {
+ this.leftBorder = leftBorder;
+ }
+
+ public float getBottomBorder() {
+ return bottomBorder;
+ }
+
+ public void setBottomBorder(float bottomBorder) {
+ this.bottomBorder = bottomBorder;
+ }
+
+ public float getTopBorder() {
+ return topBorder;
+ }
+
+ public void setTopBorder(float topBorder) {
+ this.topBorder = topBorder;
+ }
+
+ public float getRightBorder() {
+ return rightBorder;
+ }
+
+ public void setRightBorder(float rightBorder) {
+ this.rightBorder = rightBorder;
+ }
+
+ public String getLineColor() {
+ return lineColor;
+ }
+
+ public void setLineColor(String lineColor) {
+ this.lineColor = lineColor;
+ }
+
+ public String getLineStyle() {
+ return lineStyle;
+ }
+
+ public void setLineStyle(String lineStyle) {
+ this.lineStyle = lineStyle;
+ }
+
+ public int getLeftPadding() {
+ return leftPadding;
+ }
+
+ public void setLeftPadding(int leftPadding) {
+ this.leftPadding = leftPadding;
+ }
+
+ public int getRightPadding() {
+ return rightPadding;
+ }
+
+ public void setRightPadding(int rightPadding) {
+ this.rightPadding = rightPadding;
+ }
+
+ public int getTopPadding() {
+ return topPadding;
+ }
+
+ public void setTopPadding(int topPadding) {
+ this.topPadding = topPadding;
+ }
+
+ public int getBottomPadding() {
+ return bottomPadding;
+ }
+
+ public void setBottomPadding(int bottomPadding) {
+ this.bottomPadding = bottomPadding;
+ }
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/components/Component.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/components/Component.java
new file mode 100644
index 0000000..262cd1d
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/components/Component.java
@@ -0,0 +1,104 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.pojo.components;
+
+import com.megatim.dynamic.reports.pojo.DisplayCondition;
+
+/**
+ *
+ * @author ASUS
+ */
+public class Component {
+
+ protected int x;
+
+ protected int y;
+
+ protected int width = 200;
+
+ protected int height = 1;
+
+ protected String hAlign = "Center";
+
+ protected String vAlign = "Middle";
+
+ protected Border border = new Border();
+
+ protected String stretchType;
+
+ protected DisplayCondition displayCondition = new DisplayCondition();
+
+ public int getX() {
+ return x;
+ }
+
+ public void setX(int x) {
+ this.x = x;
+ }
+
+ public int getY() {
+ return y;
+ }
+
+ public void setY(int y) {
+ this.y = y;
+ }
+
+ public int getWidth() {
+ return width;
+ }
+
+ public void setWidth(int width) {
+ this.width = width;
+ }
+
+ public int getHeight() {
+ return height;
+ }
+
+ public void setHeight(int height) {
+ this.height = height;
+ }
+
+ public String gethAlign() {
+ return hAlign;
+ }
+
+ public void sethAlign(String hAlign) {
+ this.hAlign = hAlign;
+ }
+
+ public String getvAlign() {
+ return vAlign;
+ }
+
+ public void setvAlign(String vAlign) {
+ this.vAlign = vAlign;
+ }
+
+ public Border getBorder() {
+ return border;
+ }
+
+ public void setBorder(Border border) {
+ this.border = border;
+ }
+
+ public String getStretchType() {
+ return stretchType;
+ }
+
+ public void setStretchType(String stretchType) {
+ this.stretchType = stretchType;
+ }
+
+ public DisplayCondition getDisplayCondition() {
+ return displayCondition;
+ }
+
+ public void setDisplayCondition(DisplayCondition displayCondition) {
+ this.displayCondition = displayCondition;
+ }
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/components/Image.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/components/Image.java
new file mode 100644
index 0000000..84288a2
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/components/Image.java
@@ -0,0 +1,34 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.pojo.components;
+
+/**
+ *
+ * @author ASUS
+ */
+public class Image extends Component{
+
+ private ValueElement valueElement;
+
+ private String scaleImage = "RetainShape";
+
+ public ValueElement getValueElement() {
+ return valueElement;
+ }
+
+ public void setValueElement(ValueElement valueElement) {
+ this.valueElement = valueElement;
+ }
+
+ public String getScaleImage() {
+ return scaleImage;
+ }
+
+ public void setScaleImage(String scaleImage) {
+ this.scaleImage = scaleImage;
+ }
+
+
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/components/Label.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/components/Label.java
new file mode 100644
index 0000000..4df0fd5
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/components/Label.java
@@ -0,0 +1,23 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.pojo.components;
+
+/**
+ *
+ * @author ASUS
+ */
+public class Label extends TextComponent {
+
+ private String value = "";
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/components/Line.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/components/Line.java
new file mode 100644
index 0000000..b35b509
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/components/Line.java
@@ -0,0 +1,42 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.pojo.components;
+
+/**
+ *
+ * @author ASUS
+ */
+public class Line extends Component{
+
+ private float lineWidth = 2.5f;
+
+ private String lineStyle = "Solid";
+
+ private String foreColor = "#000000";
+
+ public float getLineWidth() {
+ return lineWidth;
+ }
+
+ public void setLineWidth(float lineWidth) {
+ this.lineWidth = lineWidth;
+ }
+
+ public String getLineStyle() {
+ return lineStyle;
+ }
+
+ public void setLineStyle(String lineStyle) {
+ this.lineStyle = lineStyle;
+ }
+
+ public String getForeColor() {
+ return foreColor;
+ }
+
+ public void setForeColor(String foreColor) {
+ this.foreColor = foreColor;
+ }
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/components/Paragraph.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/components/Paragraph.java
new file mode 100644
index 0000000..09cf13f
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/components/Paragraph.java
@@ -0,0 +1,83 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.pojo.components;
+
+/**
+ *
+ * @author ASUS
+ */
+public class Paragraph {
+
+ private int leftIndent;
+
+ private int rightIndent;
+
+ private int spacingBefore;
+
+ private int spacingAfter;
+
+ private int firstLineIndent;
+
+ private String lineSpacing;
+
+ private double lineSpacingSize;
+
+ public int getLeftIndent() {
+ return leftIndent;
+ }
+
+ public void setLeftIndent(int leftIndent) {
+ this.leftIndent = leftIndent;
+ }
+
+ public int getRightIndent() {
+ return rightIndent;
+ }
+
+ public void setRightIndent(int rightIndent) {
+ this.rightIndent = rightIndent;
+ }
+
+ public int getSpacingBefore() {
+ return spacingBefore;
+ }
+
+ public void setSpacingBefore(int spacingBefore) {
+ this.spacingBefore = spacingBefore;
+ }
+
+ public int getSpacingAfter() {
+ return spacingAfter;
+ }
+
+ public void setSpacingAfter(int spacingAfter) {
+ this.spacingAfter = spacingAfter;
+ }
+
+ public int getFirstLineIndent() {
+ return firstLineIndent;
+ }
+
+ public void setFirstLineIndent(int firstLineIndent) {
+ this.firstLineIndent = firstLineIndent;
+ }
+
+ public String getLineSpacing() {
+ return lineSpacing;
+ }
+
+ public void setLineSpacing(String lineSpacing) {
+ this.lineSpacing = lineSpacing;
+ }
+
+ public double getLineSpacingSize() {
+ return lineSpacingSize;
+ }
+
+ public void setLineSpacingSize(double lineSpacingSize) {
+ this.lineSpacingSize = lineSpacingSize;
+ }
+
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/components/TextComponent.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/components/TextComponent.java
new file mode 100644
index 0000000..bde13a7
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/components/TextComponent.java
@@ -0,0 +1,122 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.pojo.components;
+
+/**
+ *
+ * @author ASUS
+ */
+public class TextComponent extends Component {
+
+ protected String fontName = "Serif";
+
+ protected int size = 8;
+
+ protected boolean bold;
+
+ protected boolean underLine;
+
+ protected boolean blankWhenNull = true;
+
+ protected boolean printInFirtWholeBand = true;
+
+ protected boolean printWhenDetailOverflows = true;
+
+ protected String textAdjust = "CutText";
+
+ protected String foreColor = "#000000";
+
+ protected Paragraph paragraph = new Paragraph();
+
+ private boolean removeLineWhenBlank;
+
+ public String getFontName() {
+ return fontName;
+ }
+
+ public void setFontName(String fontName) {
+ this.fontName = fontName;
+ }
+
+ public int getSize() {
+ return size;
+ }
+
+ public void setSize(int size) {
+ this.size = size;
+ }
+
+ public boolean isBold() {
+ return bold;
+ }
+
+ public void setBold(boolean bold) {
+ this.bold = bold;
+ }
+
+ public boolean isBlankWhenNull() {
+ return blankWhenNull;
+ }
+
+ public void setBlankWhenNull(boolean blankWhenNull) {
+ this.blankWhenNull = blankWhenNull;
+ }
+
+ public String getTextAdjust() {
+ return textAdjust;
+ }
+
+ public void setTextAdjust(String textAdjust) {
+ this.textAdjust = textAdjust;
+ }
+
+ public boolean isPrintInFirtWholeBand() {
+ return printInFirtWholeBand;
+ }
+
+ public void setPrintInFirtWholeBand(boolean printInFirtWholeBand) {
+ this.printInFirtWholeBand = printInFirtWholeBand;
+ }
+
+ public boolean isPrintWhenDetailOverflows() {
+ return printWhenDetailOverflows;
+ }
+
+ public void setPrintWhenDetailOverflows(boolean printWhenDetailOverflows) {
+ this.printWhenDetailOverflows = printWhenDetailOverflows;
+ }
+
+ public String getForeColor() {
+ return foreColor;
+ }
+
+ public void setForeColor(String foreColor) {
+ this.foreColor = foreColor;
+ }
+
+ public Paragraph getParagraph() {
+ return paragraph;
+ }
+
+ public void setParagraph(Paragraph paragraph) {
+ this.paragraph = paragraph;
+ }
+
+ public boolean isUnderLine() {
+ return underLine;
+ }
+
+ public void setUnderLine(boolean underLine) {
+ this.underLine = underLine;
+ }
+
+ public boolean isRemoveLineWhenBlank() {
+ return removeLineWhenBlank;
+ }
+
+ public void setRemoveLineWhenBlank(boolean removeLineWhenBlank) {
+ this.removeLineWhenBlank = removeLineWhenBlank;
+ }
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/components/TextField.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/components/TextField.java
new file mode 100644
index 0000000..9338ac9
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/components/TextField.java
@@ -0,0 +1,53 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.pojo.components;
+
+/**
+ *
+ * @author ASUS
+ */
+public class TextField extends TextComponent{
+
+ private boolean lineNumber;
+
+ private boolean pageNumber;
+
+ private ValueElement valueElement;
+
+ private String pattern;
+
+ public ValueElement getValueElement() {
+ return valueElement;
+ }
+
+ public void setValueElement(ValueElement valueElement) {
+ this.valueElement = valueElement;
+ }
+
+ public boolean isLineNumber() {
+ return lineNumber;
+ }
+
+ public void setLineNumber(boolean lineNumber) {
+ this.lineNumber = lineNumber;
+ }
+
+ public boolean isPageNumber() {
+ return pageNumber;
+ }
+
+ public void setPageNumber(boolean pageNumber) {
+ this.pageNumber = pageNumber;
+ }
+
+ public String getPattern() {
+ return pattern;
+ }
+
+ public void setPattern(String pattern) {
+ this.pattern = pattern;
+ }
+
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/components/ValueElement.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/components/ValueElement.java
new file mode 100644
index 0000000..bc371b5
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/components/ValueElement.java
@@ -0,0 +1,85 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.pojo.components;
+
+import com.megatim.reporting.adhoc.pojo.enums.ValueElementType;
+
+/**
+ *
+ * @author ASUS
+ */
+public class ValueElement {
+
+ private String name; // Nom du champ ou du paramètre
+
+ private Class<?> classe = java.lang.String.class;
+
+ private String value; // Valeur par défaut du paramètre
+
+ private String pattern; // Pattern d'affichage
+
+ private ValueElementType valueElementType;
+
+ public ValueElement(String name, Class<?> classe, ValueElementType valueElementType) {
+ this.name = name;
+ this.classe = classe;
+ this.valueElementType = valueElementType;
+ }
+
+ public ValueElement(String value, ValueElementType valueElementType) {
+ this.value = value;
+ this.valueElementType = valueElementType;
+ }
+
+ public ValueElement(ValueElementType valueElementType) {
+ this.valueElementType = valueElementType;
+ }
+
+ @Override
+ public String toString() {
+ return "ReportElement{" + "name=" + name + ", classe=" + classe + ", reportElementType=" + valueElementType.name() + '}';
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Class<?> getClasse() {
+ return classe;
+ }
+
+ public void setClasse(Class<?> classe) {
+ this.classe = classe;
+ }
+
+ public ValueElementType getValueElementType() {
+ return valueElementType;
+ }
+
+ public void setValueElementType(ValueElementType valueElementType) {
+ this.valueElementType = valueElementType;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ public String getPattern() {
+ return pattern;
+ }
+
+ public void setPattern(String pattern) {
+ this.pattern = pattern;
+ }
+
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/enums/ComponentType.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/enums/ComponentType.java
new file mode 100644
index 0000000..9eb839c
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/enums/ComponentType.java
@@ -0,0 +1,12 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Enum.java to edit this template
+ */
+package com.megatim.reporting.adhoc.pojo.enums;
+/**
+ *
+ * @author ASUS
+ */
+public enum ComponentType {
+ TEXTFIELD, IMAGE, LABEL;
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/enums/ElementType.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/enums/ElementType.java
new file mode 100644
index 0000000..179183e
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/enums/ElementType.java
@@ -0,0 +1,39 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Enum.java to edit this template
+ */
+package com.megatim.reporting.adhoc.pojo.enums;
+
+import java.util.stream.Stream;
+
+/**
+ *
+ * @author ASUS
+ */
+public enum ElementType {
+ PARAMETRE("Paramètre"),
+ TEXTE_STATIQUE("Texte Statique"),
+ DATE_GENERE("Date générée");
+
+ private final String type;
+
+ private ElementType(String type) {
+ this.type = type;
+ }
+
+ public static ElementType of(String type) {
+ return Stream.of(ElementType.values())
+ .filter(e -> e.getType().equalsIgnoreCase(type) || e.name().equalsIgnoreCase(type))
+ .findFirst()
+ .orElseThrow(IllegalArgumentException::new);
+ }
+
+ @Override
+ public String toString() {
+ return this.type;
+ }
+
+ public String getType() {
+ return type;
+ }
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/enums/Position.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/enums/Position.java
new file mode 100644
index 0000000..34f59fa
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/enums/Position.java
@@ -0,0 +1,37 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Enum.java to edit this template
+ */
+package com.megatim.reporting.adhoc.pojo.enums;
+
+import java.util.stream.Stream;
+
+/**
+ *
+ * @author ASUS
+ */
+public enum Position {
+ LEFT("GAUCHE"), RIGHT("DROITE");
+
+ private final String position;
+
+ private Position(String pos) {
+ this.position = pos;
+ }
+
+ @Override
+ public String toString() {
+ return position ;
+ }
+
+ public static Position of(String position) {
+ return Stream.of(Position.values())
+ .filter(p -> p.getPosition().equalsIgnoreCase(position) || p.name().equalsIgnoreCase(position))
+ .findFirst()
+ .orElseThrow(IllegalArgumentException::new);
+ }
+
+ public String getPosition() {
+ return position;
+ }
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/enums/ReportOrientation.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/enums/ReportOrientation.java
new file mode 100644
index 0000000..0dd6f98
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/enums/ReportOrientation.java
@@ -0,0 +1,33 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Enum.java to edit this template
+ */
+package com.megatim.reporting.adhoc.pojo.enums;
+
+/**
+ *
+ * @author ASUS
+ */
+public enum ReportOrientation {
+ LANDSCAPE("Landscape"), PORTRAIT("Portrait");
+
+ private final String orientation;
+
+ private ReportOrientation(String orientation) {
+ this.orientation = orientation;
+ }
+
+ @Override
+ public String toString() {
+ return orientation;
+ }
+
+ public static ReportOrientation reportOrientation(String orientation) {
+
+ if (orientation.equalsIgnoreCase(ReportOrientation.LANDSCAPE.toString())) {
+ return ReportOrientation.LANDSCAPE;
+ } else {
+ return ReportOrientation.PORTRAIT;
+ }
+ }
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/enums/Section.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/enums/Section.java
new file mode 100644
index 0000000..e462cf5
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/enums/Section.java
@@ -0,0 +1,13 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Enum.java to edit this template
+ */
+package com.megatim.reporting.adhoc.pojo.enums;
+
+/**
+ *
+ * @author ASUS
+ */
+public enum Section {
+ TITLE, PAGE_HEADER, COLUMN_HEADER;
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/enums/ValueElementType.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/enums/ValueElementType.java
new file mode 100644
index 0000000..d15fd0f
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/enums/ValueElementType.java
@@ -0,0 +1,13 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Enum.java to edit this template
+ */
+package com.megatim.reporting.adhoc.pojo.enums;
+
+/**
+ *
+ * @author ASUS
+ */
+public enum ValueElementType {
+ PARAMETER, FIELD, TEXT, GENERATE;
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/layouts/ColumnData.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/layouts/ColumnData.java
new file mode 100644
index 0000000..e557792
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/layouts/ColumnData.java
@@ -0,0 +1,28 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.pojo.layouts;
+
+/**
+ *
+ * @author ASUS
+ */
+public class ColumnData extends Layout {
+
+ private String columnStyle;
+
+ public ColumnData() {
+ height = 19;
+ splitType = "Stretch";
+ }
+
+ public String getColumnStyle() {
+ return columnStyle;
+ }
+
+ public void setColumnStyle(String columnStyle) {
+ this.columnStyle = columnStyle;
+ }
+
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/layouts/ColumnHeader.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/layouts/ColumnHeader.java
new file mode 100644
index 0000000..6181a13
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/layouts/ColumnHeader.java
@@ -0,0 +1,27 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.pojo.layouts;
+
+/**
+ *
+ * @author ASUS
+ */
+public class ColumnHeader extends Layout {
+ private String columnStyle;
+
+ public ColumnHeader() {
+ height = 19;
+ splitType = "Stretch";
+ }
+
+ public String getColumnStyle() {
+ return columnStyle;
+ }
+
+ public void setColumnStyle(String columnStyle) {
+ this.columnStyle = columnStyle;
+ }
+
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/layouts/Layout.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/layouts/Layout.java
new file mode 100644
index 0000000..acb04d3
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/layouts/Layout.java
@@ -0,0 +1,47 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.pojo.layouts;
+
+import com.megatim.reporting.adhoc.pojo.components.Component;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Classe utilisée pour regrouper les attributs communs aux différentes sections d'un état
+ * @author ASUS
+ */
+public class Layout {
+
+ protected int height;
+
+ protected String splitType;
+
+ protected List<Component> components = new ArrayList<>();
+
+ public int getHeight() {
+ return height;
+ }
+
+ public void setHeight(int height) {
+ this.height = height;
+ }
+
+ public String getSplitType() {
+ return splitType;
+ }
+
+ public void setSplitType(String splitType) {
+ this.splitType = splitType;
+ }
+
+ public List<Component> getComponents() {
+ return components;
+ }
+
+ public void setComponents(List<Component> components) {
+ this.components = components;
+ }
+
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/layouts/MainReport.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/layouts/MainReport.java
new file mode 100644
index 0000000..5407540
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/layouts/MainReport.java
@@ -0,0 +1,208 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.pojo.layouts;
+
+import com.megatim.reporting.adhoc.pojo.components.ValueElement;
+import com.megatim.reporting.adhoc.pojo.enums.ReportOrientation;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ *
+ * @author ASUS
+ */
+public class MainReport {
+
+ protected String name;
+
+ protected int pageHeight;
+
+ protected int pageWidth;
+
+ protected int rightMargin;
+
+ protected int topMargin;
+
+ protected int leftMargin;
+
+ protected int bottomMargin;
+
+ protected ReportOrientation orientation = ReportOrientation.PORTRAIT;
+
+ protected Map<String, ValueElement> parameters = new HashMap<>();
+
+ protected Map<String, ValueElement> fields = new HashMap<>();
+
+ protected Title title;
+
+ protected PageHeader pageHeader;
+
+ protected ColumnHeader columnHeader;
+
+ protected ColumnData columnData;
+
+ protected PageFooter pageFooter;
+
+ protected String whenNoDataType = "NoDataSection";
+
+ protected String whenResourceMissingType = "Key";
+
+ protected int columnWidth = 814;
+
+ protected boolean detail;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public ReportOrientation getOrientation() {
+ return orientation;
+ }
+
+ public void setOrientation(ReportOrientation orientation) {
+ this.orientation = orientation;
+ }
+
+ public Map<String, ValueElement> getParameters() {
+ return parameters;
+ }
+
+ public void setParameters(Map<String, ValueElement> parameters) {
+ this.parameters = parameters;
+ }
+
+ public Map<String, ValueElement> getFields() {
+ return fields;
+ }
+
+ public void setFields(Map<String, ValueElement> fields) {
+ this.fields = fields;
+ }
+
+ public int getPageHeight() {
+ return pageHeight;
+ }
+
+ public void setPageHeight(int pageHeight) {
+ this.pageHeight = pageHeight;
+ }
+
+ public int getPageWidth() {
+ return pageWidth;
+ }
+
+ public void setPageWidth(int pageWidth) {
+ this.pageWidth = pageWidth;
+ }
+
+ public int getRightMargin() {
+ return rightMargin;
+ }
+
+ public void setRightMargin(int rightMargin) {
+ this.rightMargin = rightMargin;
+ }
+
+ public int getTopMargin() {
+ return topMargin;
+ }
+
+ public void setTopMargin(int topMargin) {
+ this.topMargin = topMargin;
+ }
+
+ public int getLeftMargin() {
+ return leftMargin;
+ }
+
+ public void setLeftMargin(int leftMargin) {
+ this.leftMargin = leftMargin;
+ }
+
+ public int getBottomMargin() {
+ return bottomMargin;
+ }
+
+ public void setBottomMargin(int bottomMargin) {
+ this.bottomMargin = bottomMargin;
+ }
+
+ public Title getTitle() {
+ return title;
+ }
+
+ public void setTitle(Title title) {
+ this.title = title;
+ }
+
+ public PageHeader getPageHeader() {
+ return pageHeader;
+ }
+
+ public void setPageHeader(PageHeader pageHeader) {
+ this.pageHeader = pageHeader;
+ }
+
+ public ColumnHeader getColumnHeader() {
+ return columnHeader;
+ }
+
+ public void setColumnHeader(ColumnHeader columnHeader) {
+ this.columnHeader = columnHeader;
+ }
+
+ public ColumnData getColumnData() {
+ return columnData;
+ }
+
+ public void setColumnData(ColumnData columnData) {
+ this.columnData = columnData;
+ }
+
+ public PageFooter getPageFooter() {
+ return pageFooter;
+ }
+
+ public void setPageFooter(PageFooter pageFooter) {
+ this.pageFooter = pageFooter;
+ }
+
+ public String getWhenNoDataType() {
+ return whenNoDataType;
+ }
+
+ public void setWhenNoDataType(String whenNoDataType) {
+ this.whenNoDataType = whenNoDataType;
+ }
+
+ public String getWhenResourceMissingType() {
+ return whenResourceMissingType;
+ }
+
+ public void setWhenResourceMissingType(String whenResourceMissingType) {
+ this.whenResourceMissingType = whenResourceMissingType;
+ }
+
+ public int getColumnWidth() {
+ return columnWidth;
+ }
+
+ public void setColumnWidth(int columnWidth) {
+ this.columnWidth = columnWidth;
+ }
+
+ public boolean isDetail() {
+ return detail;
+ }
+
+ public void setDetail(boolean detail) {
+ this.detail = detail;
+ }
+
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/layouts/PageFooter.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/layouts/PageFooter.java
new file mode 100644
index 0000000..418f3a3
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/layouts/PageFooter.java
@@ -0,0 +1,17 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.pojo.layouts;
+
+/**
+ *
+ * @author ASUS
+ */
+public class PageFooter extends Layout {
+
+ public PageFooter() {
+ height = 68;
+ splitType = "Stretch";
+ }
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/layouts/PageHeader.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/layouts/PageHeader.java
new file mode 100644
index 0000000..4e5c4d7
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/layouts/PageHeader.java
@@ -0,0 +1,19 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.pojo.layouts;
+
+/**
+ *
+ * @author ASUS
+ */
+public class PageHeader extends Layout {
+
+ public PageHeader() {
+
+ height = 30;
+ splitType = "Stretch";
+ }
+
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/layouts/Report.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/layouts/Report.java
new file mode 100644
index 0000000..0600f10
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/layouts/Report.java
@@ -0,0 +1,25 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.pojo.layouts;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ *
+ * @author ASUS
+ */
+public class Report extends MainReport {
+
+ private List<SubReport> subReports = new ArrayList<>();
+
+ public List<SubReport> getSubReports() {
+ return subReports;
+ }
+
+ public void setSubReports(List<SubReport> subReports) {
+ this.subReports = subReports;
+ }
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/layouts/SubReport.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/layouts/SubReport.java
new file mode 100644
index 0000000..a4c81ff
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/layouts/SubReport.java
@@ -0,0 +1,157 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.pojo.layouts;
+
+/**
+ *
+ * @author ASUS
+ */
+public class SubReport extends MainReport {
+
+ private String titleValue;
+
+ private String pageTitleStyle;
+
+ private int x;
+
+ private int y;
+
+ private int width = 722;
+
+ private int height = 38;
+
+ private String splitType = "Stretch";
+
+ private String stretchType = "ElementGroupHeight";
+
+ private String overflowType = "Stretch";
+
+ private boolean usingCache = true;
+
+ private boolean runToBottom = true;
+
+ //Nom du champ de l'entité qui va servir à peupler le sous-rapport, doit être de tytpe 'Liste'
+ private String dataSource;
+
+ private boolean printInFirtWholeBand = true;
+
+ private boolean printWhenDetailOverflows = true;
+
+ public SubReport() {
+ columnWidth = 600;
+ }
+
+ public int getX() {
+ return x;
+ }
+
+ public void setX(int x) {
+ this.x = x;
+ }
+
+ public int getY() {
+ return y;
+ }
+
+ public void setY(int y) {
+ this.y = y;
+ }
+
+ public int getWidth() {
+ return width;
+ }
+
+ public void setWidth(int width) {
+ this.width = width;
+ }
+
+ public int getHeight() {
+ return height;
+ }
+
+ public void setHeight(int height) {
+ this.height = height;
+ }
+
+ public String getSplitType() {
+ return splitType;
+ }
+
+ public void setSplitType(String splitType) {
+ this.splitType = splitType;
+ }
+
+ public String getStretchType() {
+ return stretchType;
+ }
+
+ public void setStretchType(String stretchType) {
+ this.stretchType = stretchType;
+ }
+
+ public boolean isUsingCache() {
+ return usingCache;
+ }
+
+ public void setUsingCache(boolean usingCache) {
+ this.usingCache = usingCache;
+ }
+
+ public boolean isRunToBottom() {
+ return runToBottom;
+ }
+
+ public void setRunToBottom(boolean runToBottom) {
+ this.runToBottom = runToBottom;
+ }
+
+ public String getDataSource() {
+ return dataSource;
+ }
+
+ public void setDataSource(String dataSource) {
+ this.dataSource = dataSource;
+ }
+
+ public boolean isPrintInFirtWholeBand() {
+ return printInFirtWholeBand;
+ }
+
+ public void setPrintInFirtWholeBand(boolean printInFirtWholeBand) {
+ this.printInFirtWholeBand = printInFirtWholeBand;
+ }
+
+ public boolean isPrintWhenDetailOverflows() {
+ return printWhenDetailOverflows;
+ }
+
+ public void setPrintWhenDetailOverflows(boolean printWhenDetailOverflows) {
+ this.printWhenDetailOverflows = printWhenDetailOverflows;
+ }
+
+ public String getOverflowType() {
+ return overflowType;
+ }
+
+ public void setOverflowType(String overflowType) {
+ this.overflowType = overflowType;
+ }
+
+ public String getTitleValue() {
+ return titleValue;
+ }
+
+ public void setTitleValue(String titleValue) {
+ this.titleValue = titleValue;
+ }
+
+ public String getPageTitleStyle() {
+ return pageTitleStyle;
+ }
+
+ public void setPageTitleStyle(String pageTitleStyle) {
+ this.pageTitleStyle = pageTitleStyle;
+ }
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/layouts/Title.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/layouts/Title.java
new file mode 100644
index 0000000..e3ca3f7
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/layouts/Title.java
@@ -0,0 +1,19 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.pojo.layouts;
+
+/**
+ *
+ * @author ASUS
+ */
+public class Title extends Layout {
+
+ public Title() {
+
+ height = 169;
+ splitType = "Stretch";
+ }
+
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/xml/ReportTag.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/xml/ReportTag.java
new file mode 100644
index 0000000..6ec6257
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/pojo/xml/ReportTag.java
@@ -0,0 +1,86 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.pojo.xml;
+
+import com.megatim.reporting.adhoc.pojo.components.ValueElement;
+import java.util.HashMap;
+import java.util.Map;
+import org.w3c.dom.Node;
+
+/**
+ *
+ * @author ASUS
+ */
+public class ReportTag {
+ protected Node title;
+
+ protected Node pageHeader;
+
+ protected Node columnHeader;
+
+ protected Node columnData;
+
+ protected Node pageFooter;
+
+ protected Map<String, ValueElement> parameters = new HashMap<>();
+
+ protected Map<String, ValueElement> fields = new HashMap<>();
+
+ public Node getTitle() {
+ return title;
+ }
+
+ public void setTitle(Node title) {
+ this.title = title;
+ }
+
+ public Node getPageHeader() {
+ return pageHeader;
+ }
+
+ public void setPageHeader(Node pageHeader) {
+ this.pageHeader = pageHeader;
+ }
+
+ public Node getColumnHeader() {
+ return columnHeader;
+ }
+
+ public void setColumnHeader(Node columnHeader) {
+ this.columnHeader = columnHeader;
+ }
+
+ public Node getColumnData() {
+ return columnData;
+ }
+
+ public void setColumnData(Node columnData) {
+ this.columnData = columnData;
+ }
+
+ public Node getPageFooter() {
+ return pageFooter;
+ }
+
+ public void setPageFooter(Node pageFooter) {
+ this.pageFooter = pageFooter;
+ }
+
+ public Map<String, ValueElement> getParameters() {
+ return parameters;
+ }
+
+ public void setParameters(Map<String, ValueElement> parameters) {
+ this.parameters = parameters;
+ }
+
+ public Map<String, ValueElement> getFields() {
+ return fields;
+ }
+
+ public void setFields(Map<String, ValueElement> fields) {
+ this.fields = fields;
+ }
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/process/GenerateJRXML.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/process/GenerateJRXML.java
new file mode 100644
index 0000000..c2e11b6
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/process/GenerateJRXML.java
@@ -0,0 +1,724 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.process;
+
+import com.megatim.dynamic.reports.pojo.DisplayCondition;
+import com.megatim.reporting.adhoc.pojo.Constantes;
+import com.megatim.reporting.adhoc.pojo.components.Border;
+import com.megatim.reporting.adhoc.pojo.components.Component;
+import com.megatim.reporting.adhoc.pojo.components.Image;
+import com.megatim.reporting.adhoc.pojo.components.Label;
+import com.megatim.reporting.adhoc.pojo.components.Line;
+import com.megatim.reporting.adhoc.pojo.components.Paragraph;
+import com.megatim.reporting.adhoc.pojo.components.TextField;
+import com.megatim.reporting.adhoc.pojo.components.ValueElement;
+import com.megatim.reporting.adhoc.pojo.enums.ReportOrientation;
+import static com.megatim.reporting.adhoc.pojo.enums.ValueElementType.FIELD;
+import static com.megatim.reporting.adhoc.pojo.enums.ValueElementType.GENERATE;
+import static com.megatim.reporting.adhoc.pojo.enums.ValueElementType.PARAMETER;
+import com.megatim.reporting.adhoc.pojo.layouts.ColumnData;
+import com.megatim.reporting.adhoc.pojo.layouts.ColumnHeader;
+import com.megatim.reporting.adhoc.pojo.layouts.MainReport;
+import com.megatim.reporting.adhoc.pojo.layouts.PageFooter;
+import com.megatim.reporting.adhoc.pojo.layouts.PageHeader;
+import com.megatim.reporting.adhoc.pojo.layouts.Report;
+import com.megatim.reporting.adhoc.pojo.layouts.SubReport;
+import com.megatim.reporting.adhoc.pojo.layouts.Title;
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.nio.file.StandardOpenOption;
+import java.util.List;
+import java.util.UUID;
+
+/**
+ *
+ * @author ASUS
+ */
+public class GenerateJRXML {
+
+// private final String JRXML_EXTENSION = "jrxml";
+ private final String REPORT_PARTS = "report-parts";
+
+ private final ClassLoader classLoader = GenerateJRXML.class.getClassLoader();
+
+ public void generateJrxml(Report report, String jrxmlFolder) throws Exception {
+ Path jrxmlPath = Paths.get(jrxmlFolder, report.getName() + ".jrxml");
+
+ generateReport(report, jrxmlPath);
+
+ for (SubReport sub : report.getSubReports()) {
+ jrxmlPath = Paths.get(jrxmlFolder, sub.getName() + ".jrxml");
+
+ generateReport(sub, jrxmlPath);
+ }
+
+ }
+
+ private void generateReport(MainReport report, Path reportPath) throws Exception {
+
+ try ( BufferedWriter bufferWriter = Files.newBufferedWriter(reportPath, StandardCharsets.UTF_8, StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING, StandardOpenOption.SYNC)) {
+
+ bufferWriter.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + System.lineSeparator());
+
+ bufferWriter.write("<jasperReport xmlns=\"http://jasperreports.sourceforge.net/jasperreports\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" "
+ + "xsi:schemaLocation=\"http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd\" "
+ + "name=\"" + report.getName() + "\" pageWidth=\"" + report.getPageWidth() + "\" pageHeight=\"" + report.getPageHeight() + "\"" + orientation(report.getOrientation())
+ + "columnWidth=\"" + report.getColumnWidth() + "\" leftMargin=\"" + report.getLeftMargin() + "\" rightMargin=\"" + report.getRightMargin() + "\" topMargin=\"" + report.getTopMargin() + "\" "
+ + "bottomMargin=\"" + report.getBottomMargin() + "\"" + setWhenResourceMissingType(report.getWhenResourceMissingType())
+ + setWhenNoDataType(report.getWhenNoDataType())
+ + "uuid=\"" + UUID.randomUUID() + "\">" + System.lineSeparator());
+
+ addPageProperties(bufferWriter);
+
+ addParameters(report, bufferWriter);
+
+ addFields(report, bufferWriter);
+
+ addVariables(bufferWriter);
+
+ addGroups(bufferWriter);
+
+ addtitle(report.getTitle(), bufferWriter);
+
+ addPageHeader(report.getPageHeader(), bufferWriter);
+
+ if (report.isDetail()) {
+ if (report instanceof Report) {
+ Report rep = (Report) report;
+ addDetailDetail(report.getColumnHeader(), report.getColumnData(), rep.getSubReports(), bufferWriter);
+
+ } else {
+ addDetailDetail(report.getColumnHeader(), report.getColumnData(), null, bufferWriter);
+ }
+
+ } else {
+ addListeColumnHeader(report.getColumnHeader(), bufferWriter);
+
+ if (report instanceof Report) {
+ Report rep = (Report) report;
+ addListeDetail(report.getColumnData(), rep.getSubReports(), bufferWriter);
+
+ } else {
+ addListeDetail(report.getColumnData(), null, bufferWriter);
+ }
+ }
+
+ addPageFooter(report.getPageFooter(), bufferWriter);
+
+ bufferWriter.write("</jasperReport>");
+
+ }
+ }
+
+ private void addPageProperties(BufferedWriter bufferWriter) throws IOException {
+ InputStream inputStream = classLoader.getResourceAsStream(REPORT_PARTS + "/page-properties.xml");
+ readFile(inputStream, bufferWriter);
+ }
+
+ /**
+ * Méthode qui ajoute les paramètres à l'état
+ *
+ * @param bufferWriter
+ * @throws IOException
+ */
+ private void addParameters(MainReport report, BufferedWriter bufferWriter) throws IOException {
+ InputStream inputStream = classLoader.getResourceAsStream(REPORT_PARTS + "/parameters.xml");
+ readFile(inputStream, bufferWriter);
+
+ for (ValueElement param : report.getParameters().values()) {
+ bufferWriter.write("\t<parameter name=\"" + param.getName() + setClasse(param.getClasse()) + " isForPrompting=\"false\"/>" + System.lineSeparator());
+ }
+
+ bufferWriter.write("" + System.lineSeparator());
+ }
+
+ /**
+ * Méthode qui ajoute les champs de l'entité à l'état
+ *
+ * @param bufferWriter
+ */
+ private void addFields(MainReport report, BufferedWriter bufferWriter) throws IOException {
+
+ for (ValueElement field : report.getFields().values()) {
+ bufferWriter.write("\t<field name=\"" + field.getName() + setClasse(field.getClasse()) + ">" + System.lineSeparator());
+ bufferWriter.write("\t\t<fieldDescription><![CDATA[" + field.getName() + "]]></fieldDescription>" + System.lineSeparator());
+ bufferWriter.write("\t</field>" + System.lineSeparator());
+ }
+
+ bufferWriter.write("\t" + System.lineSeparator());
+ }
+
+ /**
+ * Méthode qui ajoute les variables
+ *
+ * @param bufferWriter
+ * @throws IOException
+ */
+ private void addVariables(BufferedWriter bufferWriter) throws IOException {
+ InputStream inputStream = classLoader.getResourceAsStream(REPORT_PARTS + "/variables.xml");
+ readFile(inputStream, bufferWriter);
+ }
+
+ /**
+ * Méthode qui ajoute les groupes
+ *
+ * @param bufferWriter
+ * @throws IOException
+ */
+ private void addGroups(BufferedWriter bufferWriter) throws IOException {
+ InputStream inputStream = classLoader.getResourceAsStream(REPORT_PARTS + "/groups.xml");
+ readFile(inputStream, bufferWriter);
+ }
+
+ private void addtitle(Title title, BufferedWriter bufferWriter) throws Exception {
+
+ if (title != null) {
+ bufferWriter.write("\t <title>" + System.lineSeparator());
+ bufferWriter.write("\t\t <band height=\"" + title.getHeight() + setSplitType(title.getSplitType()) + " >" + System.lineSeparator());
+ bufferWriter.write("\t\t\t <property name=\"com.jaspersoft.studio.unit.height\" value=\"px\"/>" + System.lineSeparator());
+
+ addComponents(title.getComponents(), bufferWriter);
+
+ bufferWriter.write("\t\t </band>" + System.lineSeparator());
+ bufferWriter.write("\t </title>" + System.lineSeparator());
+ }
+
+ }
+
+ private void addPageHeader(PageHeader pageHeader, BufferedWriter bufferWriter) throws Exception {
+
+ if (pageHeader != null) {
+ bufferWriter.write("\t <pageHeader>" + System.lineSeparator());
+ bufferWriter.write("\t\t <band height=\"" + pageHeader.getHeight() + setSplitType(pageHeader.getSplitType()) + " >" + System.lineSeparator());
+ bufferWriter.write("\t\t <property name=\"com.jaspersoft.studio.unit.height\" value=\"px\"/>" + System.lineSeparator());
+
+ addComponents(pageHeader.getComponents(), bufferWriter);
+
+ bufferWriter.write("\t\t </band>" + System.lineSeparator());
+ bufferWriter.write("\t </pageHeader>" + System.lineSeparator());
+ }
+ }
+
+ private void addListeColumnHeader(ColumnHeader columnHeader, BufferedWriter bufferWriter) throws Exception {
+
+ if (columnHeader != null) {
+ bufferWriter.write("\t <columnHeader>" + System.lineSeparator());
+ bufferWriter.write("\t\t <band height=\"" + columnHeader.getHeight() + setSplitType(columnHeader.getSplitType()) + " >" + System.lineSeparator());
+ bufferWriter.write("\t\t <property name=\"com.jaspersoft.studio.unit.height\" value=\"px\"/>" + System.lineSeparator());
+
+ addComponents(columnHeader.getComponents(), bufferWriter);
+
+ bufferWriter.write("\t\t </band>" + System.lineSeparator());
+ bufferWriter.write("\t </columnHeader>" + System.lineSeparator());
+ }
+ }
+
+ private void addListeDetail(ColumnData columnData, List<SubReport> subReports, BufferedWriter bufferWriter) throws Exception {
+
+ if (columnData != null || (subReports != null && !subReports.isEmpty())) {
+
+ bufferWriter.write("\t <detail>" + System.lineSeparator());
+
+ addListeColumnData(columnData, bufferWriter);
+
+ addSubReports(subReports, bufferWriter);
+
+ bufferWriter.write("\t </detail>" + System.lineSeparator());
+ }
+ }
+
+ private void addDetailDetail(ColumnHeader columnHeader, ColumnData columnData, List<SubReport> subReports, BufferedWriter bufferWriter) throws Exception {
+ bufferWriter.write("\t <detail>" + System.lineSeparator());
+
+ if ((columnData != null && columnHeader != null)) {
+
+ bufferWriter.write("\t\t <band height=\"" + columnData.getHeight() + setSplitType(columnData.getSplitType()) + " >" + System.lineSeparator());
+ bufferWriter.write("\t\t <property name=\"com.jaspersoft.studio.unit.height\" value=\"px\"/>" + System.lineSeparator());
+
+ addComponents(columnData.getComponents(), bufferWriter);
+ addComponents(columnHeader.getComponents(), bufferWriter);
+
+ bufferWriter.write("\t\t </band>" + System.lineSeparator());
+
+ }
+ if (subReports != null && !subReports.isEmpty()) {
+ addSubReports(subReports, bufferWriter);
+ }
+ bufferWriter.write("\t </detail>" + System.lineSeparator());
+ }
+
+ private void addListeColumnData(ColumnData columnData, BufferedWriter bufferWriter) throws Exception {
+
+ if (columnData != null) {
+ bufferWriter.write("\t\t <band height=\"" + columnData.getHeight() + setSplitType(columnData.getSplitType()) + " >" + System.lineSeparator());
+ bufferWriter.write("\t\t <property name=\"com.jaspersoft.studio.unit.height\" value=\"px\"/>" + System.lineSeparator());
+
+ addComponents(columnData.getComponents(), bufferWriter);
+
+ bufferWriter.write("\t\t </band>" + System.lineSeparator());
+ }
+
+ }
+
+ private void addSubReports(List<SubReport> subReports, BufferedWriter bufferWriter) throws Exception {
+
+ if (subReports != null && !subReports.isEmpty()) {
+
+ for (SubReport sub : subReports) {
+ bufferWriter.write("\t\t <band height=\"" + sub.getHeight() + setSplitType(sub.getSplitType()) + " >" + System.lineSeparator());
+ bufferWriter.write("\t\t\t <property name=\"com.jaspersoft.studio.unit.height\" value=\"px\"/>" + System.lineSeparator());
+ bufferWriter.write("\t\t\t<subreport isUsingCache=\"" + sub.isUsingCache() + "\" runToBottom=\"" + sub.isRunToBottom() + "\""
+ + setOverflowType(sub.getOverflowType()) + ">" + System.lineSeparator());
+ bufferWriter.write("\t\t\t\t<reportElement stretchType=\"" + sub.getStretchType() + "\" x=\"" + sub.getX() + "\" y=\"" + sub.getY() + "\" width=\"" + sub.getWidth()
+ + "\" height=\"" + sub.getHeight() + "\" isPrintInFirstWholeBand=\"" + sub.isPrintInFirtWholeBand() + "\" isPrintWhenDetailOverflows=\"" + sub.isPrintWhenDetailOverflows()
+ + "\" uuid=\"" + UUID.randomUUID() + "\">" + System.lineSeparator());
+
+ writeUnits(bufferWriter);
+
+ bufferWriter.write("\t\t\t\t</reportElement>" + System.lineSeparator());
+
+ bufferWriter.write("\t\t\t\t<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{" + sub.getDataSource() + "})]]></dataSourceExpression>" + System.lineSeparator());
+ bufferWriter.write("\t\t\t\t<subreportExpression><![CDATA[$P{SUBREPORT_DIR} + \"" + sub.getName() + ".jasper\"]]></subreportExpression>" + System.lineSeparator());
+ bufferWriter.write("\t\t\t</subreport>" + System.lineSeparator());
+ bufferWriter.write("\t\t</band>" + System.lineSeparator());
+ }
+ }
+ }
+
+ private void addPageFooter(PageFooter pageFooter, BufferedWriter bufferWriter) throws Exception {
+
+ if (pageFooter != null) {
+ bufferWriter.write("\t <pageFooter>" + System.lineSeparator());
+ bufferWriter.write("\t\t <band height=\"" + pageFooter.getHeight() + setSplitType(pageFooter.getSplitType()) + ">" + System.lineSeparator());
+ bufferWriter.write("\t\t <property name=\"com.jaspersoft.studio.unit.height\" value=\"px\"/>" + System.lineSeparator());
+
+ addComponents(pageFooter.getComponents(), bufferWriter);
+
+ bufferWriter.write("\t\t </band>" + System.lineSeparator());
+ bufferWriter.write("\t </pageFooter>" + System.lineSeparator());
+ }
+ }
+
+ private void setComponentBorder(Border border, BufferedWriter bufferWriter) throws IOException {
+
+ if (border != null && (border.getLeftBorder() > 0 || border.getTopBorder() > 0 || border.getRightBorder() > 0 || border.getBottomBorder() > 0)) {
+
+ bufferWriter.write("\t\t\t\t<box ");
+
+ if (border.getLeftPadding() > 0) {
+ bufferWriter.write("leftPadding=\"" + border.getLeftPadding() + "\" ");
+ }
+ if (border.getRightPadding() > 0) {
+ bufferWriter.write("rightPadding=\"" + border.getRightPadding() + "\" ");
+ }
+ if (border.getTopPadding() > 0) {
+ bufferWriter.write("topPadding=\"" + border.getTopPadding() + "\"");
+ }
+ if (border.getBottomPadding() > 0) {
+ bufferWriter.write("bottomPadding=\"" + border.getBottomPadding() + "\"");
+ }
+ bufferWriter.write(" >" + System.lineSeparator());
+ bufferWriter.write("\t\t\t\t\t<pen");
+
+ bufferWriter.write(setLineStyle(border.getLineStyle()));
+ bufferWriter.write(setLineColor(border.getLineColor()));
+
+ bufferWriter.write("/>" + System.lineSeparator());
+
+ if (border.getTopBorder() > 0) {
+ bufferWriter.write("\t\t\t\t\t<topPen lineWidth=\"" + border.getTopBorder() + "\"/>" + System.lineSeparator());
+ }
+ if (border.getLeftBorder() > 0) {
+ bufferWriter.write("\t\t\t\t\t<leftPen lineWidth=\"" + border.getLeftBorder() + "\"/>" + System.lineSeparator());
+ }
+ if (border.getBottomBorder() > 0) {
+ bufferWriter.write("\t\t\t\t\t<bottomPen lineWidth=\"" + border.getBottomBorder() + "\"/>" + System.lineSeparator());
+ }
+ if (border.getRightBorder() > 0) {
+ bufferWriter.write("\t\t\t\t\t<rightPen lineWidth=\"" + border.getRightBorder() + "\"/>" + System.lineSeparator());
+ }
+
+ bufferWriter.write("\t\t\t\t</box>" + System.lineSeparator());
+ }
+ }
+
+ private String setSplitType(String splitType) {
+
+ if (splitType != null && !splitType.isEmpty()) {
+ return "\" splitType=\"" + splitType + "\" ";
+
+ } else {
+ return "";
+ }
+ }
+
+ private String setClasse(Class<?> classe) {
+
+ if (classe != null) {
+ return "\" class=\"" + classe.getName() + "\" ";
+
+ } else {
+ return "java.lang.String";
+ }
+ }
+
+ private String setForeColor(String color) {
+
+ if (color != null && !color.isEmpty()) {
+ return " forecolor=\"" + color + "\" ";
+
+ } else {
+ return "";
+ }
+
+ }
+
+ private String setLineColor(String color) {
+ StringBuilder colorMessage = new StringBuilder("");
+
+ if (color != null && !color.isEmpty()) {
+ colorMessage.append(" lineColor=\"").append(color).append("\" ");
+
+ } else {
+ colorMessage.append(" lineColor=\"#000000\" ");
+ }
+
+ return colorMessage.toString();
+ }
+
+ private String setLineStyle(String lineStyle) {
+ StringBuilder lineMessage = new StringBuilder(" lineWidth=\"1.0\" ");
+
+ if (lineStyle != null && !lineStyle.isEmpty()) {
+ lineMessage.append("lineStyle=\"").append(lineStyle).append("\" ");
+
+ } else {
+ lineMessage.append("lineStyle=\"Solid\" ");
+ }
+ return lineMessage.toString();
+ }
+
+ private void addComponents(List<Component> components, BufferedWriter bufferWriter) throws Exception {
+
+ for (Component c : components) {
+
+ if (c instanceof Image) {
+
+ Image image = (Image) c;
+ addImage(image, bufferWriter);
+
+ } else if (c instanceof TextField) {
+
+ TextField textField = (TextField) c;
+ addTextField(textField, bufferWriter);
+
+ } else if (c instanceof Label) {
+
+ Label label = (Label) c;
+ addLabel(label, bufferWriter);
+
+ } else if (c instanceof Line) {
+
+ Line line = (Line) c;
+ addLine(line, bufferWriter);
+
+ }
+ }
+ }
+
+ private void writeValueElement(BufferedWriter bufferWriter, ValueElement valueElt) throws IOException, InstantiationException, IllegalAccessException {
+
+ if (valueElt != null) {
+ switch (valueElt.getValueElementType()) {
+
+ case PARAMETER:
+ bufferWriter.write("$P{" + valueElt.getName() + "}");
+ break;
+
+ case FIELD:
+ bufferWriter.write("$F{" + valueElt.getName() + "}");
+ break;
+
+ case GENERATE:
+ bufferWriter.write(generateValue(valueElt));
+ break;
+
+ default:
+ bufferWriter.write(valueElt.getValue());
+ break;
+
+ }
+ } else {
+ bufferWriter.write("" + null);
+ }
+ }
+
+ //Génère une instance de la classe java.util.Date()
+ private String generateValue(ValueElement valueElt) throws InstantiationException, IllegalAccessException {
+ Class classe = valueElt.getClasse();
+
+ return "new " + classe.getName() + "()";
+
+ }
+
+ private void writeUnits(BufferedWriter bufferWriter) throws IOException {
+ bufferWriter.write("\t\t\t\t\t<property name=\"com.jaspersoft.studio.unit.x\" value=\"px\"/>" + System.lineSeparator());
+ bufferWriter.write("\t\t\t\t\t<property name=\"com.jaspersoft.studio.unit.width\" value=\"px\"/>" + System.lineSeparator());
+ bufferWriter.write("\t\t\t\t\t<property name=\"com.jaspersoft.studio.unit.y\" value=\"px\"/>" + System.lineSeparator());
+ bufferWriter.write("\t\t\t\t\t<property name=\"com.jaspersoft.studio.unit.height\" value=\"px\"/>" + System.lineSeparator());
+ }
+
+ private void readFile(InputStream inputStream, BufferedWriter bufferWriter) throws IOException {
+
+ try ( InputStreamReader isr = new InputStreamReader(inputStream, StandardCharsets.UTF_8); BufferedReader reader = new BufferedReader(isr)) {
+
+ String line = "";
+
+ while ((line = reader.readLine()) != null) {
+ bufferWriter.write(line + System.lineSeparator());
+ }
+ }
+ }
+
+ private void addImage(Image image, BufferedWriter bufferWriter) throws Exception {
+
+ if (image != null) {
+ bufferWriter.write("\t\t<image scaleImage=\"" + image.getScaleImage() + "\" hAlign=\"" + image.gethAlign() + "\" vAlign=\"" + image.getvAlign() + "\">" + System.lineSeparator());
+ bufferWriter.write("\t\t\t<reportElement x=\"" + image.getX() + "\" y=\"" + image.getY() + "\" width=\"" + image.getWidth() + "\" height=\"" + image.getHeight()
+ + setStretchType(image.getStretchType()) + "\" uuid=\"" + UUID.randomUUID() + "\">" + System.lineSeparator());
+
+ writeUnits(bufferWriter);
+
+ bufferWriter.write(setPrintWhenExpression(image.getDisplayCondition()) + System.lineSeparator());
+
+ bufferWriter.write("\t\t\t\t</reportElement>" + System.lineSeparator());
+
+ setComponentBorder(image.getBorder(), bufferWriter);
+
+ bufferWriter.write("\t\t\t<graphicElement fill=\"Solid\"/>" + System.lineSeparator());
+ bufferWriter.write("\t\t\t<imageExpression><![CDATA[");
+
+ ValueElement valueElt = image.getValueElement();
+
+ writeValueElement(bufferWriter, valueElt);
+
+ bufferWriter.write("]]></imageExpression>" + System.lineSeparator());
+ bufferWriter.write("\t\t</image>" + System.lineSeparator());
+ }
+ }
+
+ private void addTextField(TextField textField, BufferedWriter bufferWriter) throws Exception {
+
+ if (textField != null) {
+ bufferWriter.write("\t\t\t<textField " + addEvaluationTime(textField) + addPattern(textField.getPattern()) + " isBlankWhenNull=\"" + textField.isBlankWhenNull() + "\""
+ + " textAdjust=\"" + textField.getTextAdjust() + "\">" + System.lineSeparator());
+ bufferWriter.write("\t\t\t\t <reportElement x=\"" + textField.getX() + "\" y=\"" + textField.getY() + "\" width=\"" + textField.getWidth() + "\" height=\"" + textField.getHeight() + "\""
+ + " isRemoveLineWhenBlank=\"" + textField.isRemoveLineWhenBlank() + "\"" + setForeColor(textField.getForeColor()) + setStretchType(textField.getStretchType()) + " isPrintInFirstWholeBand=\"" + textField.isPrintInFirtWholeBand()
+ + "\" isPrintWhenDetailOverflows=\"" + textField.isPrintWhenDetailOverflows() + "\"" + " uuid=\"" + UUID.randomUUID() + "\">" + System.lineSeparator());
+
+ writeUnits(bufferWriter);
+
+ bufferWriter.write(setPrintWhenExpression(textField.getDisplayCondition()) + System.lineSeparator());
+
+ bufferWriter.write("\t\t\t\t</reportElement>" + System.lineSeparator());
+
+ setComponentBorder(textField.getBorder(), bufferWriter);
+
+ bufferWriter.write("\t\t\t\t<textElement textAlignment=\"" + textField.gethAlign() + "\" verticalAlignment=\"" + textField.getvAlign() + "\">" + System.lineSeparator());
+ bufferWriter.write("\t\t\t\t\t<font fontName=\"" + textField.getFontName() + "\" size=\"" + textField.getSize() + "\" isBold=\"" + textField.isBold() + "\" isUnderline=\"" + textField.isUnderLine() + "\""
+ + "/>" + System.lineSeparator());
+
+ bufferWriter.write(setParagraph(textField.getParagraph()) + System.lineSeparator());
+
+ bufferWriter.write("\t\t\t\t</textElement>" + System.lineSeparator());
+ bufferWriter.write("\t\t\t\t<textFieldExpression><![CDATA[");
+
+ if (textField.isLineNumber()) {
+ bufferWriter.write("String.valueOf($V{LINE_NUMBER})");
+
+ } else if (textField.isPageNumber()) {
+ bufferWriter.write("\" Page \"+String.valueOf($V{REPORT_PAGE})+\" / \"+String.valueOf($V{PAGE_NUMBER})");
+ } else {
+ ValueElement valueElt = textField.getValueElement();
+ writeValueElement(bufferWriter, valueElt);
+ }
+
+ bufferWriter.write("]]></textFieldExpression>" + System.lineSeparator());
+ bufferWriter.write("\t\t\t</textField>" + System.lineSeparator());
+ }
+
+ }
+
+ private String addEvaluationTime(TextField textField) {
+
+ if (textField.isPageNumber()) {
+ return " evaluationTime=\"Auto\" ";
+
+ } else {
+ return "";
+ }
+ }
+
+ private String addPattern(String pattern) {
+
+ if (pattern != null && !pattern.isEmpty()) {
+ return " pattern=\"" + pattern + "\" ";
+
+ } else {
+ return "";
+ }
+ }
+
+ private void addLabel(Label label, BufferedWriter bufferWriter) throws IOException {
+
+ if (label != null) {
+ bufferWriter.write("\t\t\t<staticText>" + System.lineSeparator());
+ bufferWriter.write("\t\t\t\t <reportElement x=\"" + label.getX() + "\" y=\"" + label.getY() + "\" width=\"" + label.getWidth() + "\" height=\"" + label.getHeight() + "\""
+ + setStretchType(label.getStretchType()) + setForeColor(label.getForeColor()) + " uuid=\"" + UUID.randomUUID() + "\">" + System.lineSeparator());
+
+ writeUnits(bufferWriter);
+
+ bufferWriter.write(setPrintWhenExpression(label.getDisplayCondition()) + System.lineSeparator());
+
+ bufferWriter.write("\t\t\t\t</reportElement>" + System.lineSeparator());
+
+ setComponentBorder(label.getBorder(), bufferWriter);
+
+ bufferWriter.write("\t\t\t\t<textElement textAlignment=\"" + label.gethAlign() + "\" verticalAlignment=\"" + label.getvAlign() + "\">" + System.lineSeparator());
+ bufferWriter.write("\t\t\t\t\t<font fontName=\"" + label.getFontName() + "\" size=\"" + label.getSize() + "\" isBold=\"" + label.isBold() + "\" isUnderline=\"" + label.isUnderLine() + "\""
+ + "/>" + System.lineSeparator());
+
+ bufferWriter.write(setParagraph(label.getParagraph()) + System.lineSeparator());
+
+ bufferWriter.write("\t\t\t\t</textElement>" + System.lineSeparator());
+
+ bufferWriter.write("\t\t\t\t<text><![CDATA[" + label.getValue() + "]]></text>" + System.lineSeparator());
+ bufferWriter.write("\t\t\t</staticText>" + System.lineSeparator());
+ }
+ }
+
+ private void addLine(Line line, BufferedWriter bufferWriter) throws IOException {
+
+ if (line != null) {
+ bufferWriter.write("\t\t\t<line>" + System.lineSeparator());
+ bufferWriter.write("\t\t\t\t <reportElement x=\"" + line.getX() + "\" y=\"" + line.getY() + "\" width=\"" + line.getWidth() + "\" height=\"" + line.getHeight()
+ + setStretchType(line.getStretchType()) + "\" isRemoveLineWhenBlank=\"true\"" + " forecolor=\"" + line.getForeColor() + "\" uuid=\"" + UUID.randomUUID() + "\">" + System.lineSeparator());
+
+ writeUnits(bufferWriter);
+
+ bufferWriter.write(setPrintWhenExpression(line.getDisplayCondition()) + System.lineSeparator());
+
+ bufferWriter.write("\t\t\t\t</reportElement>" + System.lineSeparator());
+
+ bufferWriter.write("\t\t\t\t<graphicElement>" + System.lineSeparator());
+ bufferWriter.write("\t\t\t\t\t<pen lineWidth=\"" + line.getLineWidth() + "\" lineStyle=\"" + line.getLineStyle()
+ + "\"/>" + System.lineSeparator());
+ bufferWriter.write("\t\t\t\t</graphicElement>" + System.lineSeparator());
+ bufferWriter.write("\t\t\t</line>" + System.lineSeparator());
+ }
+ }
+
+ private String setStretchType(String stretchType) {
+
+ if (stretchType != null && !stretchType.isEmpty()) {
+ return " stretchType=\"" + stretchType + "\"";
+
+ } else {
+ return "";
+ }
+
+ }
+
+ private String setWhenNoDataType(String whenNoDataType) {
+
+ if (whenNoDataType != null && !whenNoDataType.isEmpty()) {
+ return " whenNoDataType=\"" + whenNoDataType + "\" ";
+
+ } else {
+ return "";
+ }
+ }
+
+ private String setWhenResourceMissingType(String whenResourceMissingType) {
+
+ if (whenResourceMissingType != null && !whenResourceMissingType.isEmpty()) {
+ return " whenResourceMissingType=\"" + whenResourceMissingType + "\" ";
+
+ } else {
+ return "";
+ }
+ }
+
+ private String setOverflowType(String overflowType) {
+ if (overflowType != null && !overflowType.isEmpty()) {
+ return " overflowType=\"" + overflowType + "\" ";
+
+ } else {
+ return "";
+ }
+ }
+
+ private String setPrintWhenExpression(DisplayCondition condition) {
+ StringBuilder chaine = new StringBuilder();
+
+ if (condition != null && condition.getLeftOperand() != null && condition.getRightOperand() != null && condition.getOperator() != null && condition.getOperandType() != null
+ && !condition.getLeftOperand().isEmpty() && !condition.getRightOperand().isEmpty() && !condition.getOperator().isEmpty() && !condition.getOperandType().isEmpty()) {
+
+ chaine.append("<printWhenExpression><![CDATA[$");
+
+ if (condition.getOperandType().equalsIgnoreCase(Constantes.OPERAND_TYPE_VARIABLE)) {
+ chaine.append("V");
+
+ } else if (condition.getOperandType().equalsIgnoreCase(Constantes.OPERAND_TYPE_PARAMETER)) {
+ chaine.append("P");
+
+ } else if (condition.getOperandType().equalsIgnoreCase(Constantes.OPERAND_TYPE_FIELD)) {
+ chaine.append("F");
+ }
+ chaine.append("{").append(condition.getLeftOperand()).append("} ").append(condition.getOperator()).append(condition.getRightOperand());
+ chaine.append("]]></printWhenExpression>");
+
+ return chaine.toString();
+
+ } else {
+ return "";
+ }
+ }
+
+ private String setParagraph(Paragraph paragraph) {
+ StringBuilder chaine = new StringBuilder("");
+
+ if (paragraph != null) {
+ chaine.append("\t\t\t\t\t<paragraph ");
+
+ if (paragraph.getLineSpacing() != null && !paragraph.getLineSpacing().isEmpty()) {
+ chaine.append("lineSpacing=\"").append(paragraph.getLineSpacing()).append("\" ");
+ }
+ chaine.append("lineSpacingSize=\"").append(paragraph.getLineSpacingSize()).append("\" ");
+ chaine.append("firstLineIndent=\"").append(paragraph.getFirstLineIndent()).append("\" ");
+ chaine.append("leftIndent=\"").append(paragraph.getLeftIndent()).append("\" ");
+ chaine.append("rightIndent=\"").append(paragraph.getRightIndent()).append("\" ");
+ chaine.append("spacingBefore=\"").append(paragraph.getSpacingBefore()).append("\" ");
+ chaine.append("spacingAfter=\"").append(paragraph.getSpacingAfter()).append("\" ");
+ chaine.append("/>");
+ }
+ return chaine.toString();
+ }
+
+ private String orientation(ReportOrientation orientation) {
+ if (orientation != null && orientation.equals(ReportOrientation.LANDSCAPE)) {
+ return " orientation=\"" + ReportOrientation.LANDSCAPE.toString() + "\" ";
+ } else {
+ return " ";
+ }
+ }
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/process/ParseXMLTemplate.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/process/ParseXMLTemplate.java
new file mode 100644
index 0000000..bf2e74f
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/process/ParseXMLTemplate.java
@@ -0,0 +1,1027 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.process;
+
+import com.megatim.reporting.adhoc.pojo.Constantes;
+import com.megatim.reporting.adhoc.pojo.layouts.Report;
+import com.megatim.reporting.adhoc.pojo.xml.ReportTag;
+import com.megatim.reporting.adhoc.pojo.components.Component;
+import com.megatim.reporting.adhoc.pojo.components.Image;
+import com.megatim.reporting.adhoc.pojo.components.Label;
+import com.megatim.reporting.adhoc.pojo.components.Line;
+import com.megatim.reporting.adhoc.pojo.components.TextComponent;
+import com.megatim.reporting.adhoc.pojo.components.TextField;
+import com.megatim.reporting.adhoc.pojo.components.ValueElement;
+import com.megatim.reporting.adhoc.pojo.enums.ReportOrientation;
+import com.megatim.reporting.adhoc.pojo.enums.ValueElementType;
+import com.megatim.reporting.adhoc.pojo.layouts.ColumnData;
+import com.megatim.reporting.adhoc.pojo.layouts.ColumnHeader;
+import com.megatim.reporting.adhoc.pojo.layouts.Layout;
+import com.megatim.reporting.adhoc.pojo.layouts.MainReport;
+import com.megatim.reporting.adhoc.pojo.layouts.PageFooter;
+import com.megatim.reporting.adhoc.pojo.layouts.PageHeader;
+import com.megatim.reporting.adhoc.pojo.layouts.SubReport;
+import com.megatim.reporting.adhoc.pojo.layouts.Title;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import org.w3c.dom.Document;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+/**
+ *
+ * @author ASUS
+ */
+public class ParseXMLTemplate {
+
+ private ReportTag reportTag;
+
+ /**
+ * Méthode qui parse le fichier de xml de description de l'état
+ *
+ * @param file
+ * @return
+ * @throws Exception
+ */
+ public Report parse(File file) throws Exception {
+ reportTag = new ReportTag();
+ Report report = new Report();
+
+ Document doc = intialize(file);
+
+ //Liste des noeud <report>
+ NodeList reportList = doc.getElementsByTagName(Constantes.TAG_REPORT);
+
+ if (reportList.getLength() > 0) {
+
+ Node reportNode = reportList.item(0);
+
+ //Attributs de <report>
+ NamedNodeMap reportAttributes = reportNode.getAttributes();
+
+ setReportProperties(reportAttributes, report);
+
+ //Liste des balises enfant du 1er Noeud <report>
+ NodeList reportChildren = reportNode.getChildNodes();
+
+ getFieldsAndParameters(reportChildren);
+ report.setParameters(reportTag.getParameters());
+ report.setFields(reportTag.getFields());
+
+ if (reportTag.getTitle() != null) {
+ Title title = getTitle(reportTag.getTitle());
+ report.setTitle(title);
+ }
+
+ if (reportTag.getPageHeader() != null) {
+ PageHeader pHeader = getPageHeader(reportTag.getPageHeader());
+ report.setPageHeader(pHeader);
+ }
+
+ if (reportTag.getColumnHeader() != null) {
+ ColumnHeader cHeader = getColumnHeader(reportTag.getColumnHeader());
+ report.setColumnHeader(cHeader);
+ }
+
+ if (reportTag.getColumnData() != null) {
+ ColumnData cData = getColumnData(reportTag.getColumnData());
+ report.setColumnData(cData);
+ }
+
+ if (reportTag.getPageFooter() != null) {
+ PageFooter pageFooter = getPageFooter(reportTag.getPageFooter());
+ report.setPageFooter(pageFooter);
+ }
+
+ NodeList subReportList = doc.getElementsByTagName(Constantes.TAG_SUB_REPORT);
+
+ if (subReportList.getLength() > 0) {
+ List<SubReport> subReports = getAllSubReports(subReportList);
+
+ report.getSubReports().addAll(subReports);
+
+// for (SubReport sub : subReports) {
+// ValueElement valueElt = new ValueElement(sub.getDataSource(), java.util.List.class, ValueElementType.FIELD);
+// report.getFields().putIfAbsent(sub.getDataSource(), valueElt);
+// }
+ }
+
+ }
+
+ return report;
+ }
+
+ /**
+ * Méthode qui construit le composant 'Titre' du rapport à partir d'un noeud
+ *
+ * @param node : Noeud representant la balise 'title' extrait du fichier xml
+ * @return
+ * @throws ClassNotFoundException
+ */
+ private Title getTitle(Node node) throws ClassNotFoundException {
+ NamedNodeMap attributes = node.getAttributes();
+ Title title = new Title();
+
+ //Parcours des attributs de la balise <Title>
+ for (int i = 0; i < attributes.getLength(); i++) {
+ String nodeName = attributes.item(i).getNodeName();
+ String nodeValue = attributes.item(i).getNodeValue();
+
+ if (nodeName.equalsIgnoreCase(Constantes.ATTRIBUTE_STYLE)) {
+ title = (Title) getLayoutStyle(nodeValue, title);
+ }
+
+ }
+
+ List<Component> components = getComponents(node.getChildNodes());
+ title.setComponents(components);
+
+ return title;
+ }
+
+ /**
+ * Méthode qui construit le composant 'PageHeader' du rapport à partir d'un
+ * noeud
+ *
+ * @param node : Noeud representant la balise 'pageHeader' extrait du
+ * fichier xml
+ * @return
+ * @throws ClassNotFoundException
+ */
+ private PageHeader getPageHeader(Node node) throws Exception {
+ NamedNodeMap attributes = node.getAttributes();
+ PageHeader pageHeader = new PageHeader();
+
+ //Prcours des attributs de la balise <Title>
+ for (int i = 0; i < attributes.getLength(); i++) {
+ String nodeName = attributes.item(i).getNodeName();
+ String nodeValue = attributes.item(i).getNodeValue();
+
+ if (nodeName.equalsIgnoreCase(Constantes.ATTRIBUTE_STYLE)) {
+ pageHeader = (PageHeader) getLayoutStyle(nodeValue, pageHeader);
+ }
+
+ }
+
+ List<Component> components = getComponents(node.getChildNodes());
+ pageHeader.setComponents(components);
+
+ return pageHeader;
+ }
+
+ /**
+ * Méthode qui crée le composant 'ColumnHeader' du rapport à partir d'un
+ * noeud
+ *
+ * @param node : Noeud representant la balise 'columnHeader' extrait du
+ * fichier xml
+ * @return
+ * @throws ClassNotFoundException
+ */
+ private ColumnHeader getColumnHeader(Node node) throws Exception {
+ NamedNodeMap attributes = node.getAttributes();
+ ColumnHeader columnHeader = new ColumnHeader();
+
+ //Parcours des attributs de la balise <Title>
+ for (int i = 0; i < attributes.getLength(); i++) {
+ String nodeName = attributes.item(i).getNodeName();
+ String nodeValue = attributes.item(i).getNodeValue();
+
+ if (nodeName.equalsIgnoreCase(Constantes.ATTRIBUTE_STYLE)) {
+ columnHeader = (ColumnHeader) getLayoutStyle(nodeValue, columnHeader);
+
+ } else if (nodeName.equalsIgnoreCase(Constantes.ATTRIBUTE_COLUMN_STYLE)) {
+ columnHeader.setColumnStyle(nodeValue);
+ }
+
+ }
+
+ List<Component> components = getComponents(node.getChildNodes());
+ columnHeader.setComponents(components);
+
+ return columnHeader;
+ }
+
+ /**
+ * Méthode qui crée le composant 'ColumnData'(Detail) du rapport à partir
+ * d'un noeud
+ *
+ * @param node : Noeud representant la balise 'columnData' extrait du
+ * fichier xml
+ * @return
+ * @throws ClassNotFoundException
+ */
+ private ColumnData getColumnData(Node node) throws ClassNotFoundException {
+ ColumnData columnData = new ColumnData();
+ NamedNodeMap attributes = node.getAttributes();
+
+ //Parcours des attributs de la balise <ColumnData>
+ for (int i = 0; i < attributes.getLength(); i++) {
+ String nodeName = attributes.item(i).getNodeName();
+ String nodeValue = attributes.item(i).getNodeValue();
+
+ if (nodeName.equalsIgnoreCase(Constantes.ATTRIBUTE_STYLE)) {
+ columnData = (ColumnData) getLayoutStyle(nodeValue, columnData);
+
+ } else if (nodeName.equalsIgnoreCase(Constantes.ATTRIBUTE_COLUMN_STYLE)) {
+ columnData.setColumnStyle(nodeValue);
+ }
+
+ }
+
+ List<Component> components = getComponents(node.getChildNodes());
+ columnData.setComponents(components);
+
+ return columnData;
+
+ }
+
+ /**
+ * Méthode qui crée le composant 'PageFooter' du rapport à partir d'un noeud
+ *
+ * @param node : Noeud representant la balise 'pageFooter' extrait du
+ * fichier xml
+ * @return
+ * @throws ClassNotFoundException
+ */
+ private PageFooter getPageFooter(Node node) throws ClassNotFoundException {
+ PageFooter pageFooter = new PageFooter();
+ NamedNodeMap attributes = node.getAttributes();
+
+ //Parcours des attributs de la balise <ColumnData>
+ for (int i = 0; i < attributes.getLength(); i++) {
+ String nodeName = attributes.item(i).getNodeName();
+ String nodeValue = attributes.item(i).getNodeValue();
+
+ if (nodeName.equalsIgnoreCase(Constantes.ATTRIBUTE_STYLE)) {
+ pageFooter = (PageFooter) getLayoutStyle(nodeValue, pageFooter);
+ }
+
+ }
+
+ List<Component> components = getComponents(node.getChildNodes());
+ pageFooter.setComponents(components);
+
+ return pageFooter;
+
+ }
+
+ /**
+ *
+ * @param attributeValue
+ * @param layout
+ * @return
+ */
+ private Layout getLayoutStyle(String attributeValue, Layout layout) {
+ String[] styles = attributeValue.trim().split(";");
+
+ for (String style : styles) {
+
+ String[] tab = style.split(":");
+
+ if (tab.length == 2) {
+
+ if (tab[0].equals(Constantes.ATTRIBUTE_HEIGHT)) {
+ layout.setHeight(Integer.parseInt(tab[1]));
+
+ } else if (tab[0].equals(Constantes.ATTRIBUTE_SPLIT_TYPE)) {
+ layout.setSplitType(tab[1]);
+
+ }
+ }
+ }
+ return layout;
+ }
+
+ /**
+ * Méthode qui recupère tous les enfants d'une balise qui représente une
+ * section(Title, PageHeader, ColumnHeader,Detail, PageFooter) d'un état et
+ * construis
+ *
+ * @param childNodes : Balises enfant
+ * @return
+ * @throws ClassNotFoundException
+ */
+ private List<Component> getComponents(NodeList childNodes) throws ClassNotFoundException {
+ List<Component> components = new ArrayList<>();
+
+ for (int i = 0; i < childNodes.getLength(); i++) {
+
+ Node child = childNodes.item(i);
+
+ if (child.getNodeName().equalsIgnoreCase(Constantes.TAG_IMAGE)) {
+
+ Image image = getImageTag(child);
+ components.add(image);
+
+ } else if (child.getNodeName().equalsIgnoreCase(Constantes.TAG_TEXT_FIELD)) {
+
+ TextField textField = getTextFieldTag(child);
+ components.add(textField);
+
+ } else if (child.getNodeName().equalsIgnoreCase(Constantes.TAG_LABEL)) {
+
+ Label label = getLabelTag(child);
+ components.add(label);
+
+ } else if (child.getNodeName().equalsIgnoreCase(Constantes.TAG_LINE)) {
+
+ Line line = getLineTag(child);
+ components.add(line);
+
+ } else if (child.getNodeName().equalsIgnoreCase(Constantes.TAG_LINE_NUMBER)) {
+
+ TextField textField = getTextFieldTag(child);
+ textField.setLineNumber(true);
+ components.add(textField);
+
+ } else if (child.getNodeName().equalsIgnoreCase(Constantes.TAG_PAGE_NUMBER)) {
+
+ TextField textField = getTextFieldTag(child);
+ textField.setPageNumber(true);
+ components.add(textField);
+ }
+ }
+ return components;
+ }
+
+// private void get
+ /**
+ * Méthode qui extrait les attributs communs aux composants de type
+ * Text(Label,TextField)
+ *
+ * @param attributeValue : contenu de l'attribut 'style' de la balise parent
+ * @param textComponent : Objet auquel sera affecté les attributs extraits
+ */
+ public static void getTextComponentAttributes(String attributeValue, TextComponent textComponent) {
+ String[] styles = attributeValue.trim().split(";");
+
+ for (String style : styles) {
+ String[] tab = style.trim().split(":");
+
+ if (tab.length == 2 && tab[1] != null && !tab[1].isEmpty()) {
+
+ if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_FONT_NAME)) {
+ textComponent.setFontName(tab[1]);
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_BOLD)) {
+ textComponent.setBold(Boolean.parseBoolean(tab[1]));
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_UNDERLINE)) {
+ textComponent.setUnderLine(Boolean.parseBoolean(tab[1]));
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_TEXT_ADJUST)) {
+ textComponent.setTextAdjust(tab[1]);
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_IS_BLANK_WHEN_NULL)) {
+ textComponent.setBlankWhenNull(Boolean.parseBoolean(tab[1]));
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_IS_PRINT_IN_FIRST_WHOLE_BAND)) {
+ textComponent.setPrintInFirtWholeBand(Boolean.parseBoolean(tab[1]));
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_IS_PRINT_WHEN_DETAIL_OVER_FLOWS)) {
+ textComponent.setPrintWhenDetailOverflows(Boolean.parseBoolean(tab[1]));
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_SIZE)) {
+ textComponent.setSize(Integer.parseInt(tab[1]));
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_FORE_COLOR)) {
+ textComponent.setForeColor(tab[1]);
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_RIGHT_INDENT)) {
+ textComponent.getParagraph().setRightIndent(Integer.parseInt(tab[1]));
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_LEFT_INDENT)) {
+ textComponent.getParagraph().setLeftIndent(Integer.parseInt(tab[1]));
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_SPACING_AFTER)) {
+ textComponent.getParagraph().setSpacingAfter(Integer.parseInt(tab[1]));
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_SPACING_BEFORE)) {
+ textComponent.getParagraph().setSpacingBefore(Integer.parseInt(tab[1]));
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_FIRST_LINE_INDENT)) {
+ textComponent.getParagraph().setFirstLineIndent(Integer.parseInt(tab[1]));
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_LINE_SPACING_SIZE)) {
+ textComponent.getParagraph().setLineSpacingSize(Double.parseDouble(tab[1]));
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_LINE_SPACING)) {
+ textComponent.getParagraph().setLineSpacing(tab[1]);
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_REMOVE_LINE_WHEN_BLANK)) {
+ textComponent.setRemoveLineWhenBlank(Boolean.parseBoolean(tab[1]));
+
+ }
+
+ }
+ }
+ }
+
+ /**
+ * Méthode qui extrait les attributs communs à tous les composants
+ *
+ * @param attributeValue : contenu de l'attribut 'style' de la balise parent
+ * @param component : Objet auquel sera affecté les attributs extraits
+ */
+ public static void getComponentAttributes(String attributeValue, Component component) {
+
+ String[] styles = attributeValue.trim().split(";");
+
+ for (String style : styles) {
+
+ String[] tab = style.trim().split(":");
+
+ if (tab.length == 2 && tab[1] != null && !tab[1].isEmpty()) {
+
+ if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_HEIGHT)) {
+ component.setHeight(Integer.parseInt(tab[1]));
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_X)) {
+ component.setX(Integer.parseInt(tab[1]));
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_Y)) {
+ component.setY(Integer.parseInt(tab[1]));
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_WIDTH)) {
+ component.setWidth(Integer.parseInt(tab[1]));
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_H_ALIGN)) {
+ component.sethAlign(tab[1]);
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_V_ALIGN)) {
+ component.setvAlign(tab[1]);
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_LEFT_BORDER)) {
+ component.getBorder().setLeftBorder(Float.parseFloat(tab[1]));
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_TOP_BORDER)) {
+ component.getBorder().setTopBorder(Float.parseFloat(tab[1]));
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_BOTTOM_BORDER)) {
+ component.getBorder().setBottomBorder(Float.parseFloat(tab[1]));
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_RIGHT_BORDER)) {
+ component.getBorder().setRightBorder(Float.parseFloat(tab[1]));
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_RIGHT_PADDING)) {
+ component.getBorder().setRightPadding(Integer.parseInt(tab[1]));
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_LEFT_PADDING)) {
+ component.getBorder().setLeftPadding(Integer.parseInt(tab[1]));
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_TOP_PADDING)) {
+ component.getBorder().setTopPadding(Integer.parseInt(tab[1]));
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_BOTTOM_PADDING)) {
+ component.getBorder().setBottomPadding(Integer.parseInt(tab[1]));
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_LINE_STYLE)) {
+ component.getBorder().setLineStyle(tab[1]);
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_LINE_COLOR)) {
+ component.getBorder().setLineColor(tab[1]);
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_OPERAND_TYPE)) {
+ component.getDisplayCondition().setOperandType(tab[1]);
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_LEFT_OPERAND)) {
+ component.getDisplayCondition().setLeftOperand(tab[1]);
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_RIGHT_OPERAND)) {
+ component.getDisplayCondition().setRightOperand(tab[1]);
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_OPERATOR)) {
+ component.getDisplayCondition().setOperator(tab[1]);
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_STRETCH_TYPE)) {
+ component.setStretchType(tab[1]);
+
+ }
+ }
+ }
+ }
+
+ /**
+ * Méthode qui parse une balise <image> et construis l'objet Image
+ * correspondant
+ *
+ * @param node
+ * @return
+ */
+ private Image getImageTag(Node node) throws ClassNotFoundException {
+ Image image = new Image();
+ NamedNodeMap attributes = node.getAttributes();
+
+ for (int i = 0; i < attributes.getLength(); i++) {
+
+ String attributeName = attributes.item(i).getNodeName();
+ String attributeValue = attributes.item(i).getNodeValue();
+
+ if (attributeName.equalsIgnoreCase(Constantes.ATTRIBUTE_STYLE) || attributeName.equalsIgnoreCase(Constantes.ATTRIBUTE_DISPLAY_CONDITION)) {
+
+ //Récupérer les attributs communs à tous les 'Component'
+ getComponentAttributes(attributeValue, image);
+
+ } else if (attributeName.equalsIgnoreCase(Constantes.ATTRIBUTE_SCALE_IMAGE)) {
+ image.setScaleImage(attributeValue);
+ }
+ }
+
+ NodeList imageChildren = node.getChildNodes();
+
+ ValueElement valueElt = getValueElement(imageChildren);
+ image.setValueElement(valueElt);
+
+ return image;
+ }
+
+ /**
+ * Méthode qui parse une balise <textField> et construis l'objet textField
+ * correspondant
+ *
+ * @param node
+ * @return
+ */
+ private TextField getTextFieldTag(Node node) throws ClassNotFoundException {
+ NamedNodeMap attributes = node.getAttributes();
+ TextField textField = new TextField();
+
+ //Parcours des attributs de la balise <textField>
+ for (int i = 0; i < attributes.getLength(); i++) {
+
+ String attributeName = attributes.item(i).getNodeName();
+ String attributeValue = attributes.item(i).getNodeValue();
+
+ if (attributeName.equalsIgnoreCase(Constantes.ATTRIBUTE_STYLE)) {
+
+ //Recuperer la valeur des attributs communs à tous les 'Component'
+ getComponentAttributes(attributeValue, textField);
+
+ //Recuperer la valeur des attributs communs à tous 'TextComponent'
+ getTextComponentAttributes(attributeValue, textField);
+
+ //Recupérer les attibuts spécifiques à 'TextField'
+ } else if (attributeName.equalsIgnoreCase(Constantes.ATTRIBUTE_PATTERN) && attributeValue != null && !attributeValue.isEmpty()) {
+ textField.setPattern(attributeValue.trim());
+
+ } else if (attributeName.equalsIgnoreCase(Constantes.ATTRIBUTE_DISPLAY_CONDITION)) {
+ getComponentAttributes(attributeValue, textField);
+ }
+ }
+ NodeList textFieldChildren = node.getChildNodes();
+
+ ValueElement valueElt = getValueElement(textFieldChildren);
+ textField.setValueElement(valueElt);
+
+ return textField;
+ }
+
+ /**
+ *
+ * @param node
+ * @throws Exception
+ */
+ private List<SubReport> getAllSubReports(NodeList subReportList) throws Exception {
+ List<SubReport> subReports = new ArrayList<>();
+
+ for (int i = 0; i < subReportList.getLength(); i++) {
+ Node subReportTag = subReportList.item(i);
+
+ subReports.add(getSubReportTag(subReportTag));
+
+ }
+
+ return subReports;
+ }
+
+ private SubReport getSubReportTag(Node subReportTag) throws Exception {
+ NamedNodeMap attributes = subReportTag.getAttributes();
+ SubReport subReport = new SubReport();
+
+ //Parcours des attributs de la balise <subReport>
+ for (int j = 0; j < attributes.getLength(); j++) {
+
+ String attributeName = attributes.item(j).getNodeName();
+ String attributeValue = attributes.item(j).getNodeValue();
+
+ if (attributeName.equalsIgnoreCase(Constantes.ATTRIBUTE_STYLE)) {
+ setReportStyle(attributeValue, subReport);
+
+ } else if (attributeName.equalsIgnoreCase(Constantes.ATTRIBUTE_NAME)) {
+ subReport.setName(attributeValue);
+
+ } else if (attributeName.equalsIgnoreCase(Constantes.ATTRIBUTE_DATASOURCE)) {
+ subReport.setDataSource(attributeValue);
+
+ } else if (attributeName.equalsIgnoreCase(Constantes.ATTRIBUTE_BAND_STYLE)) {
+ String[] styles = attributeValue.split(";");
+
+ for (String style : styles) {
+ String[] tab = style.trim().split(":");
+
+ if (tab.length == 2 && tab[1] != null && !tab[1].isEmpty()) {
+
+ if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_IS_PRINT_IN_FIRST_WHOLE_BAND)) {
+ subReport.setPrintInFirtWholeBand(Boolean.parseBoolean(tab[1]));
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_IS_PRINT_WHEN_DETAIL_OVER_FLOWS)) {
+ subReport.setPrintWhenDetailOverflows(Boolean.parseBoolean(tab[1]));
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_HEIGHT)) {
+ subReport.setHeight(Integer.parseInt(tab[1]));
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_X)) {
+ subReport.setX(Integer.parseInt(tab[1]));
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_Y)) {
+ subReport.setY(Integer.parseInt(tab[1]));
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_WIDTH)) {
+ subReport.setWidth(Integer.parseInt(tab[1]));
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_SPLIT_TYPE)) {
+ subReport.setSplitType(tab[1]);
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_STRETCH_TYPE)) {
+ subReport.setStretchType(tab[1]);
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_RUN_TO_BOTTOM)) {
+ subReport.setRunToBottom(Boolean.parseBoolean(tab[1]));
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_USING_CACHE)) {
+ subReport.setUsingCache(Boolean.parseBoolean(tab[1]));
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_OVERFLOW_TYPE)) {
+ subReport.setOverflowType(tab[1]);
+
+ }
+ }
+ }
+ } else if (attributeName.equalsIgnoreCase(Constantes.ATTRIBUTE_PAGE_TITLE_STYLE)) {
+ subReport.setPageTitleStyle(attributeValue);
+ }
+ }
+
+ reportTag = new ReportTag();
+ getFieldsAndParameters(subReportTag.getChildNodes());
+
+ subReport.setParameters(reportTag.getParameters());
+ subReport.setFields(reportTag.getFields());
+
+ if (reportTag.getTitle() != null) {
+ Title title = getTitle(reportTag.getTitle());
+ subReport.setTitle(title);
+ }
+
+ if (reportTag.getPageHeader() != null) {
+ PageHeader pHeader = getPageHeader(reportTag.getPageHeader());
+ subReport.setPageHeader(pHeader);
+ }
+
+ if (reportTag.getColumnHeader() != null) {
+ ColumnHeader cHeader = getColumnHeader(reportTag.getColumnHeader());
+ subReport.setColumnHeader(cHeader);
+ }
+
+ if (reportTag.getColumnData() != null) {
+ ColumnData cData = getColumnData(reportTag.getColumnData());
+ subReport.setColumnData(cData);
+ }
+
+ if (reportTag.getPageFooter() != null) {
+ PageFooter pageFooter = getPageFooter(reportTag.getPageFooter());
+ subReport.setPageFooter(pageFooter);
+ }
+
+ return subReport;
+ }
+
+ private ValueElement getValueElement(NodeList children) throws ClassNotFoundException {
+ ValueElement valueElt = null;
+
+ for (int i = 0; i < children.getLength(); i++) {
+ Node child = children.item(i);
+
+ if (child.getNodeName().equalsIgnoreCase(Constantes.TAG_PARAMETER) || child.getNodeName().equalsIgnoreCase(Constantes.TAG_FIELD)) {
+ NamedNodeMap textFieldChildAttributes = child.getAttributes();
+ String classe = "java.lang.String";
+ String name = null;
+
+ for (int j = 0; j < textFieldChildAttributes.getLength(); j++) {
+ Node attNode = textFieldChildAttributes.item(j);
+ String attributeValue = attNode.getNodeValue();
+ String attributeName = attNode.getNodeName();
+
+ if (attributeName.equalsIgnoreCase(Constantes.ATTRIBUTE_CLASSE)) {
+ classe = attributeValue;
+
+ } else if (attributeName.equalsIgnoreCase(Constantes.ATTRIBUTE_NAME)) {
+ name = attributeValue;
+ }
+
+ }
+ Class<?> clazz = Class.forName(classe);
+
+ if (child.getNodeName().equalsIgnoreCase(Constantes.TAG_PARAMETER)) {
+ valueElt = new ValueElement(name, clazz, ValueElementType.PARAMETER);
+
+ } else if (child.getNodeName().equalsIgnoreCase(Constantes.TAG_FIELD)) {
+ valueElt = new ValueElement(name, clazz, ValueElementType.FIELD);
+ }
+
+ } else if (child.getNodeName().equalsIgnoreCase(Constantes.TAG_TEXT)) {
+ NamedNodeMap textFieldChildAttributes = child.getAttributes();
+ valueElt = new ValueElement(ValueElementType.TEXT);
+
+ for (int j = 0; j < textFieldChildAttributes.getLength(); j++) {
+ Node attNode = textFieldChildAttributes.item(j);
+ String attributeValue = attNode.getNodeValue();
+ String attributeName = attNode.getNodeName();
+
+ if (attributeName.equalsIgnoreCase(Constantes.ATTRIBUTE_VALUE)) {
+ valueElt.setValue(attributeValue);
+ }
+
+ }
+
+ } else if (child.getNodeName().equalsIgnoreCase(Constantes.TAG_GENERATE)) {
+ NamedNodeMap textFieldChildAttributes = child.getAttributes();
+ valueElt = new ValueElement(ValueElementType.GENERATE);
+
+ for (int j = 0; j < textFieldChildAttributes.getLength(); j++) {
+ Node attNode = textFieldChildAttributes.item(j);
+ String attributeValue = attNode.getNodeValue();
+ String attributeName = attNode.getNodeName();
+
+ if (attributeName.equalsIgnoreCase(Constantes.ATTRIBUTE_PATTERN)) {
+ valueElt.setPattern(attributeValue);
+
+ } else if (attributeName.equalsIgnoreCase(Constantes.ATTRIBUTE_CLASSE)) {
+ valueElt.setClasse(Class.forName(attributeValue));
+ }
+
+ }
+
+ }
+ }
+ return valueElt;
+ }
+
+ /**
+ * Méthode qui parse une balise <label> et construis l'objet label
+ * correspondant
+ *
+ * @param node
+ * @return
+ */
+ private Label getLabelTag(Node node) {
+ NamedNodeMap attributes = node.getAttributes();
+ Label label = new Label();
+
+ //Parcours des attributs de la balise <label>
+ for (int i = 0; i < attributes.getLength(); i++) {
+
+ String attributeName = attributes.item(i).getNodeName();
+ String attributeValue = attributes.item(i).getNodeValue();
+
+ if (attributeName.equalsIgnoreCase(Constantes.ATTRIBUTE_STYLE)) {
+
+ //Récuperer la valeur des attributs communs à tous les 'Component'
+ getComponentAttributes(attributeValue, label);
+
+ //Récuperer la valeur des attributs communs à tous les 'TextComponent'
+ getTextComponentAttributes(attributeValue, label);
+
+ } else if (attributeName.equalsIgnoreCase(Constantes.ATTRIBUTE_VALUE)) { //Recupérer les attibuts spécifiques à 'Label'
+ label.setValue(attributeValue);
+
+ } else if (attributeName.equalsIgnoreCase(Constantes.ATTRIBUTE_DISPLAY_CONDITION)) {
+ getComponentAttributes(attributeValue, label);
+ }
+ }
+ return label;
+ }
+
+ /**
+ * Méthode qui parse une balise <line> et construis l'objet line
+ * correspondant
+ *
+ * @param node
+ * @return
+ */
+ private Line getLineTag(Node node) {
+ NamedNodeMap attributes = node.getAttributes();
+ Line line = new Line();
+
+ //Parcours des attributs de la balise <line>
+ for (int i = 0; i < attributes.getLength(); i++) {
+
+ String attributeName = attributes.item(i).getNodeName();
+ String attributeValue = attributes.item(i).getNodeValue();
+
+ if (attributeName.equals(Constantes.ATTRIBUTE_STYLE)) {
+
+ //Recupérer la valeur des attributs commun à 'Component'
+ getComponentAttributes(attributeValue, line);
+
+ //Recupérer les attibuts spécifiques à 'Line'
+ String[] styles = attributeValue.trim().split(";");
+
+ for (String style : styles) {
+
+ String[] tab = style.trim().split(":");
+
+ if (tab.length == 2 && tab[1] != null && !tab[1].isEmpty()) {
+
+ if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_LINE_STYLE)) {
+ line.setLineStyle(tab[1]);
+
+ } else if (tab[0].equalsIgnoreCase(Constantes.ATTRIBUTE_LINE_WIDTH)) {
+ line.setLineWidth(Float.parseFloat(tab[1]));
+
+ }
+
+ }
+ }
+ } else if (attributeName.equals(Constantes.ATTRIBUTE_DISPLAY_CONDITION)) {
+ getComponentAttributes(attributeValue, line);
+ }
+ }
+ return line;
+ }
+
+ /**
+ * Méthode qui recupère tous les champs et paramètres trouvés dans le
+ * fichier xml de template
+ *
+ * @param reportChildren
+ * @throws ClassNotFoundException
+ */
+ private void getFieldsAndParameters(NodeList reportChildren) throws ClassNotFoundException {
+
+ for (int i = 0; i < reportChildren.getLength(); i++) {
+ Node child = reportChildren.item(i);
+
+ if (child.getNodeName().equalsIgnoreCase(Constantes.TAG_TITLE)) {
+ reportTag.setTitle(child);
+
+ } else if (child.getNodeName().equalsIgnoreCase(Constantes.TAG_PAGE_HEADER)) {
+ reportTag.setPageHeader(child);
+
+ } else if (child.getNodeName().equalsIgnoreCase(Constantes.TAG_COLUMN_HEADER)) {
+ reportTag.setColumnHeader(child);
+
+ } else if (child.getNodeName().equalsIgnoreCase(Constantes.TAG_COLUMN_DATA)) {
+ reportTag.setColumnData(child);
+
+ } else if (child.getNodeName().equalsIgnoreCase(Constantes.TAG_PAGE_FOOTER)) {
+ reportTag.setPageFooter(child);
+
+ }
+
+ if (child.getNodeName().equals(Constantes.TAG_PARAMETER) || child.getNodeName().equals(Constantes.TAG_FIELD)) {
+ NamedNodeMap valueElementeterAttributes = child.getAttributes();
+ String classe = "java.lang.String";
+ String name = null;
+ String defaultValue = null;
+
+ for (int j = 0; j < valueElementeterAttributes.getLength(); j++) {
+ String nodeName = valueElementeterAttributes.item(j).getNodeName();
+ String nodeValue = valueElementeterAttributes.item(j).getNodeValue();
+
+ if (nodeName.equalsIgnoreCase(Constantes.ATTRIBUTE_CLASSE)) {
+ classe = nodeValue;
+
+ } else if (nodeName.equalsIgnoreCase(Constantes.ATTRIBUTE_NAME)) {
+ name = nodeValue;
+
+ } else if (nodeName.equalsIgnoreCase(Constantes.ATTRIBUTE_DEFAULT_VALUE)) {
+ defaultValue = nodeValue;
+ }
+ }
+ ValueElement valueElement = null;
+ final Class<?> clazz = Class.forName(classe);
+
+ if (child.getNodeName().equals(Constantes.TAG_PARAMETER)) {
+ valueElement = new ValueElement(name, clazz, ValueElementType.PARAMETER);
+
+ if (defaultValue != null) {
+ valueElement.setValue(defaultValue);
+ }
+
+ reportTag.getParameters().merge(valueElement.getName(), valueElement, (v1, v2) -> v1.getValue() != null ? v2 : v1);
+
+ } else if (child.getNodeName().equals(Constantes.TAG_FIELD)) {
+ valueElement = new ValueElement(name, clazz, ValueElementType.FIELD);
+
+ reportTag.getFields().putIfAbsent(valueElement.getName(), valueElement);
+
+ }
+ } else {
+ if (child.getChildNodes().getLength() > 0 && !child.getNodeName().equalsIgnoreCase(Constantes.TAG_SUB_REPORT)) {
+ getFieldsAndParameters(child.getChildNodes());
+ }
+ }
+ }
+
+ }
+
+ /**
+ * Méthode qui recherche les attributs de la balise <report>
+ *
+ * @param reportAttributes
+ * @return
+ * @throws Exception
+ */
+ private Report setReportProperties(NamedNodeMap reportAttributes, Report report) throws Exception {
+
+ for (int i = 0; i < reportAttributes.getLength(); i++) {
+ String nodeName = reportAttributes.item(i).getNodeName();
+ String nodeValue = reportAttributes.item(i).getNodeValue();
+
+ if (nodeName.equalsIgnoreCase(Constantes.ATTRIBUTE_NAME)) {
+ report.setName(nodeValue);
+
+ } else if (nodeName.equalsIgnoreCase(Constantes.ATTRIBUTE_STYLE)) {
+ setReportStyle(nodeValue, report);
+ }
+ }
+ return report;
+ }
+
+ private MainReport setReportStyle(String styles, MainReport report) {
+
+ if (styles != null && !styles.isEmpty()) {
+ String[] tab = styles.split(";");
+
+ for (String str : tab) {
+ String[] style = str.split(":");
+
+ if (style.length == 2 && style[1] != null && !style[1].isEmpty()) {
+
+ if (style[0].equalsIgnoreCase(Constantes.ATTRIBUTE_BOTTOM_MARGIN)) {
+ report.setBottomMargin(Integer.parseInt(style[1]));
+
+ } else if (style[0].equalsIgnoreCase(Constantes.ATTRIBUTE_TOP_MARGIN)) {
+ report.setTopMargin(Integer.parseInt(style[1]));
+
+ } else if (style[0].equalsIgnoreCase(Constantes.ATTRIBUTE_LEFT_MARGIN)) {
+ report.setLeftMargin(Integer.parseInt(style[1]));
+
+ } else if (style[0].equalsIgnoreCase(Constantes.ATTRIBUTE_RIGHT_MARGIN)) {
+ report.setRightMargin(Integer.parseInt(style[1]));
+
+ } else if (style[0].equalsIgnoreCase(Constantes.ATTRIBUTE_ORIENTATION)) {
+ report.setOrientation(ReportOrientation.reportOrientation(style[1]));
+
+ } else if (style[0].equalsIgnoreCase(Constantes.ATTRIBUTE_PAGE_HEIGHT)) {
+ report.setPageHeight(Integer.parseInt(style[1]));
+
+ } else if (style[0].equalsIgnoreCase(Constantes.ATTRIBUTE_PAGE_WIDTH)) {
+ report.setPageWidth(Integer.parseInt(style[1]));
+
+ } else if (style[0].equalsIgnoreCase(Constantes.ATTRIBUTE_COLUMN_WIDTH)) {
+ report.setColumnWidth(Integer.parseInt(style[1]));
+
+ }
+ }
+
+ }
+ }
+ return report;
+ }
+
+ /**
+ * Méthode utilitaire pour extraire les données dans un fichier xml
+ *
+ * @valueElement array
+ * @return
+ * @throws Exception
+ */
+ private Document intialize(File file) throws Exception {
+
+ /**
+ * Défini un factory qui aide à obtenir un parseur qui produit un arbre
+ * d'objets DOM à partir d'un docuent XML.
+ */
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+
+ /**
+ * création d'un objet du builder pour parser le fichier XML.
+ */
+ DocumentBuilder db = dbf.newDocumentBuilder();
+
+ Document doc = db.parse(file);
+
+ doc.getDocumentElement().normalize();
+
+ return doc;
+ }
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/process/Processor.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/process/Processor.java
new file mode 100644
index 0000000..323c9b7
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/process/Processor.java
@@ -0,0 +1,92 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.process;
+
+import com.megatim.reporting.adhoc.pojo.DescriptionEtat;
+import com.megatim.reporting.adhoc.pojo.DescriptionSousEtat;
+import com.megatim.reporting.adhoc.pojo.ElementToDisplay;
+import com.megatim.reporting.adhoc.pojo.ProcessorElements;
+import com.megatim.reporting.adhoc.pojo.ReportDefinition;
+import com.megatim.reporting.adhoc.pojo.SubReportDefinition;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ *
+ * @author ASUS
+ */
+public class Processor {
+
+ /**
+ * Point d'entrée dans le moteur de reporting
+ * @param desc : objet contenant l'ensemble des éléments de l'état(liste des colonnes à imprimer, liste des sous-rapports,
+ * liste des éléments d'entête, etc)
+ * @return
+ * @throws Exception
+ */
+ public String process(DescriptionEtat desc) throws Exception {
+ ProcessorElements elements = constructReportElements(desc);
+
+ return new SecondProcessor().generateJasperFile(elements);
+ }
+
+ private ProcessorElements constructReportElements(DescriptionEtat desc) {
+ ReportDefinition repDef = reportDefinition(desc);
+ List<SubReportDefinition> liste = new ArrayList<>();
+
+ for (DescriptionSousEtat ds : desc.getSubReportDescriptions()) {
+ SubReportDefinition subRepDef = subReportDefinition(ds);
+ liste.add(subRepDef);
+ }
+ repDef.getSubReportDefs().addAll(liste);
+
+ ProcessorElements elements = new ProcessorElements(desc.getTemplateFile(),
+ desc.getRepositoryFolder(), desc.getRepositoryFolder(), repDef);
+
+ return elements;
+ }
+
+ private SubReportDefinition subReportDefinition(DescriptionSousEtat ds) {
+ SubReportDefinition subRepDef = new SubReportDefinition(ds.getSubReportName(), ds.getDataField().getName(), ds.getReportTitle(), ds.getRangSousEtat());
+
+ subRepDef.setHaveLineNumber(ds.isHaveLineNumber());
+ List<ElementToDisplay> subEltToDisplay = new ArrayList<>();
+
+ for (ElementToDisplay e : ds.getElementsToDisplay()) {
+ ElementToDisplay elt = new ElementToDisplay(
+ e.getLibelle(), e.getValue());
+ elt.setPosition(e.getPosition());
+ elt.setElementType(e.getElementType());
+
+ subEltToDisplay.add(elt);
+ }
+
+ subRepDef.getElementsToDisplay().addAll(subEltToDisplay);
+ subRepDef.getCustomFields().addAll(ds.getFieldsToDisplay());
+
+ return subRepDef;
+ }
+
+ private ReportDefinition reportDefinition(DescriptionEtat desc) {
+ ReportDefinition repDef = new ReportDefinition(desc.getReportName());
+ repDef.setDetail(desc.isDetail());
+ List<ElementToDisplay> eltToDisplay = new ArrayList<>();
+
+ repDef.setHaveLineNumber(desc.isHaveLineNumber());
+
+ for (ElementToDisplay e : desc.getElementsToDisplay()) {
+ ElementToDisplay elt = new ElementToDisplay(e.getLibelle(), e.getValue());
+ elt.setPosition(e.getPosition());
+ elt.setElementType(e.getElementType());
+
+ eltToDisplay.add(elt);
+ }
+ repDef.getElementsToDisplay().addAll(eltToDisplay);
+
+ repDef.getCustomFields().addAll(desc.getFieldsToDisplay());
+
+ return repDef;
+ }
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/process/SecondProcessor.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/process/SecondProcessor.java
new file mode 100644
index 0000000..98b98d7
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/process/SecondProcessor.java
@@ -0,0 +1,501 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.process;
+
+import com.megatim.dynamic.reports.pojo.LargestWidth;
+import com.megatim.reporting.adhoc.pojo.Constantes;
+import com.megatim.reporting.adhoc.pojo.components.Component;
+import com.megatim.reporting.adhoc.pojo.CustomField;
+import com.megatim.reporting.adhoc.pojo.ProcessorElements;
+import com.megatim.reporting.adhoc.pojo.components.Label;
+import com.megatim.reporting.adhoc.pojo.components.TextComponent;
+import com.megatim.reporting.adhoc.pojo.components.TextField;
+import com.megatim.reporting.adhoc.pojo.components.ValueElement;
+import com.megatim.reporting.adhoc.pojo.enums.ElementType;
+import com.megatim.reporting.adhoc.pojo.enums.Position;
+import com.megatim.reporting.adhoc.pojo.enums.Section;
+import com.megatim.reporting.adhoc.pojo.enums.ValueElementType;
+import com.megatim.reporting.adhoc.pojo.ElementToDisplay;
+import com.megatim.reporting.adhoc.pojo.MainReportDefinition;
+import com.megatim.reporting.adhoc.pojo.ReportDefinition;
+import com.megatim.reporting.adhoc.pojo.SubReportDefinition;
+import com.megatim.reporting.adhoc.pojo.layouts.MainReport;
+import com.megatim.reporting.adhoc.pojo.layouts.Report;
+import com.megatim.reporting.adhoc.pojo.layouts.SubReport;
+import com.megatim.reporting.adhoc.pojo.layouts.Title;
+import java.nio.file.Paths;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
+import java.util.stream.Collectors;
+import net.sf.jasperreports.engine.JRException;
+import net.sf.jasperreports.engine.JasperCompileManager;
+
+/**
+ *
+ * @author ASUS
+ */
+public class SecondProcessor {
+
+ /**
+ * Point de de début des traitements en vue de générer le .jrxml et le
+ * .jasper
+ *
+ * @param elements
+ * @return : retourne le chemin absolu du fichier .jasper
+ * @throws Exception
+ */
+ public String generateJasperFile(ProcessorElements elements) throws Exception {
+ //Parcours du template .xml afin d'extraire certaines propriétés de l'état
+ Report report = (new ParseXMLTemplate()).parse(elements.getTemplateFile());
+
+ //Ajout des éléments provenant de l'interface
+ addReportElements(report, elements.getReportDefinition());
+
+ (new GenerateJRXML()).generateJrxml(report, elements.getJrxmlFolder());
+
+ //Compilation des sous-rapports
+ for (SubReport sub : report.getSubReports()) {
+ compileJrxmlToJasper(Paths.get(elements.getJrxmlFolder(), sub.getName() + ".jrxml").toString(),
+ Paths.get(elements.getJasperFolder(), sub.getName() + ".jasper").toString());
+ }
+
+ //Compilation du rapport parent
+ compileJrxmlToJasper(Paths.get(elements.getJrxmlFolder(), report.getName() + ".jrxml").toString(),
+ Paths.get(elements.getJasperFolder(), report.getName() + ".jasper").toString());
+
+ return Paths.get(elements.getJasperFolder(), report.getName() + ".jasper").toString();
+ }
+
+ /**
+ * Méthode qui compile le .jrxml en . jasper
+ *
+ * @param jrxmlPath
+ * @param jasperPath
+ * @throws JRException
+ */
+ private void compileJrxmlToJasper(String jrxmlPath, String jasperPath) throws JRException {
+
+ JasperCompileManager.compileReportToFile(jrxmlPath, jasperPath);
+ }
+
+ /**
+ * Méthode qui ajoute les éléments provenant de la vue
+ *
+ * @param report
+ * @param reportDefinition
+ */
+ private void addReportElements(MainReport report, MainReportDefinition reportDefinition) {
+ report.setDetail(reportDefinition.isDetail());
+
+ //Ajout des colonnes de données et leurs entêtes
+ addColumnsHeaderAndColumnsData(report, reportDefinition);
+
+ //Ajout des labels de l'entête
+ addElementsToDisplayToHeader(report, reportDefinition.getElementsToDisplay());
+
+ if (reportDefinition.getReportName() != null && !reportDefinition.getReportName().isEmpty()) {
+ report.setName(reportDefinition.getReportName());
+ }
+
+ for (CustomField f : reportDefinition.getCustomFields()) {
+ ValueElement valueElt = new ValueElement(f.getName(), f.getClasse(), ValueElementType.FIELD);
+ report.getFields().putIfAbsent(valueElt.getName(), valueElt);
+ }
+
+ //Ajout des sous-états
+ if ((report instanceof Report) && (reportDefinition instanceof ReportDefinition)) {
+ Report rep = (Report) report;
+ ReportDefinition repDef = (ReportDefinition) reportDefinition;
+
+ if (!repDef.getSubReportDefs().isEmpty() && !rep.getSubReports().isEmpty()) {
+ addSubReportsElelements(rep, repDef.getSubReportDefs());
+
+ } else {
+ //Retirer la description de subReport provenant du xml, afin de ne pas l'afficher car il n'ya pas de sous-rapport
+ //provenant de l'interface
+ rep.getSubReports().clear();
+ }
+ }
+
+ }
+
+ /**
+ * .
+ * @param report
+ * @param reportDefinition
+ */
+ private void addColumnsHeaderAndColumnsData(MainReport report, MainReportDefinition reportDefinition) {
+ //Filter afin de ne garder que les champs qui sont des nombres, chaines de caractères, date ou booleen
+ List<CustomField> fields = reportDefinition.getCustomFields().stream()
+ .filter(f -> String.class.isAssignableFrom(f.getClasse())
+ || Number.class.isAssignableFrom(f.getClasse())
+ || Boolean.class.isAssignableFrom(f.getClasse())
+ || java.util.Date.class.isAssignableFrom(f.getClasse())
+ || java.time.temporal.Temporal.class.isAssignableFrom(f.getClasse())
+ ).collect(Collectors.toList());
+
+ Collections.sort(fields, (CustomField f1, CustomField f2) -> Integer.valueOf(f1.getRang()).compareTo(f2.getRang()));
+
+ if (report.isDetail()) {
+ addDetailColumnsHeaderAndColumnsData(report, fields);
+
+ } else {
+ addListeColumnsHeaderAndColumnsData(report, reportDefinition.isHaveLineNumber(), fields);
+ }
+
+ }
+
+ private void addListeColumnsHeaderAndColumnsData(MainReport report, boolean isHaveLineNumber, List<CustomField> fields) {
+ int x = 0;
+ int i = 1;
+
+ String columnDataStyle = report.getColumnData().getColumnStyle();
+ String columnHeaderStyle = report.getColumnHeader().getColumnStyle();
+
+ if (isHaveLineNumber) {
+ x = 38;
+
+ TextField textField = new TextField();
+ textField.setLineNumber(true);
+
+ Label label = new Label();
+ label.setValue("N°");
+
+ setTextComponentStyle(textField, columnDataStyle);
+ setTextComponentStyle(label, columnHeaderStyle);
+
+ textField.setX(0);
+ label.setX(0);
+
+ textField.setWidth(x);
+ label.setWidth(x);
+
+ report.getColumnData().getComponents().add(textField);
+ report.getColumnHeader().getComponents().add(label);
+
+ }
+ int totalWidth = report.getPageWidth() - report.getRightMargin() - report.getLeftMargin() - x - 10;
+ int nbFieldsWithoutWidth = fields.size();
+
+ for (CustomField f : fields) {
+ if (f.getWidth() > 0) {
+ totalWidth -= f.getWidth();
+ nbFieldsWithoutWidth--;
+ }
+ }
+
+ for (CustomField f : fields) {
+ int width = f.getWidth() > 0 ? f.getWidth() : totalWidth / nbFieldsWithoutWidth;
+ f.setWidth(width);
+
+ TextField textField = new TextField();
+ Label label = new Label();
+
+ setTextComponentStyle(textField, columnDataStyle);
+ setTextComponentStyle(label, columnHeaderStyle);
+
+ ValueElement valueElement = new ValueElement(f.getName(), f.getClasse(), ValueElementType.FIELD);
+
+ textField.setValueElement(valueElement);
+ label.setValue(f.getLibelle());
+
+ textField.setX(x);
+ label.setX(x);
+
+ textField.setWidth(f.getWidth());
+ label.setWidth(f.getWidth());
+
+ textField.setPattern(f.getPattern());
+
+ report.getColumnData().getComponents().add(textField);
+ report.getColumnHeader().getComponents().add(label);
+
+ x = x + f.getWidth();
+
+ i++;
+ }
+
+ }
+
+ private void addDetailColumnsHeaderAndColumnsData(MainReport report, List<CustomField> fields) {
+ final int xColumnHeader = 10;
+
+ String columnDataStyle = report.getColumnData().getColumnStyle();
+ String columnHeaderStyle = report.getColumnHeader().getColumnStyle();
+
+ int totalWidth = report.getPageWidth() - report.getRightMargin() - report.getLeftMargin() - xColumnHeader - 20;
+
+ //Recherche du champ ayant le libellé le plus long
+ Optional<CustomField> optionalCustomField = fields.stream().max((c1, c2) -> Integer.valueOf(c1.getLibelle().length()).compareTo(c2.getLibelle().length()));
+ final int columnHeaderLength = (optionalCustomField.isPresent() ? optionalCustomField.get().getLibelle().length() : 0) * 7;
+ final int columnDataLength = totalWidth - columnHeaderLength;
+
+ final int xColumnData = xColumnHeader + columnHeaderLength;
+
+ int y = 10;
+ int columnDataHeight = y;
+
+ for (CustomField f : fields) {
+
+ TextField textField = new TextField();
+ Label label = new Label();
+
+ setTextComponentStyle(textField, columnDataStyle);
+ setTextComponentStyle(label, columnHeaderStyle);
+
+ ValueElement valueElement = new ValueElement(f.getName(), f.getClasse(), ValueElementType.FIELD);
+
+ textField.setValueElement(valueElement);
+ label.setValue(f.getLibelle());
+
+ label.setX(xColumnHeader);
+ textField.setX(xColumnData);
+ textField.setY(y);
+ label.setY(y);
+
+ textField.setWidth(columnDataLength);
+ label.setWidth(columnHeaderLength);
+
+ textField.setPattern(f.getPattern());
+
+ columnDataHeight += textField.getHeight();
+ y += textField.getHeight();
+
+ report.getColumnData().getComponents().add(textField);
+ report.getColumnHeader().getComponents().add(label);
+
+ }
+
+ report.getColumnData().setHeight(columnDataHeight);
+ report.getColumnHeader().setHeight(columnDataHeight);
+ }
+
+ /**
+ * Méthode qui applique la mise en forme sur les composants
+ *
+ * @param component
+ * @param attributeValue
+ */
+ private void setTextComponentStyle(TextComponent component, String attributeValue) {
+
+ if (attributeValue != null && !attributeValue.isEmpty()) {
+
+ ParseXMLTemplate.getComponentAttributes(attributeValue, component);
+ ParseXMLTemplate.getTextComponentAttributes(attributeValue, component);
+ }
+
+ }
+
+ private void addSubReportsElelements(Report report, List<SubReportDefinition> subReportDefs) {
+ List<SubReport> subReports = new ArrayList<>();
+
+ for (SubReportDefinition subReportDef : subReportDefs) {
+ SubReport subReport = report.getSubReports().get(0);
+ String pageTitleStyle = subReport.getPageTitleStyle();
+
+ Label label = new Label();
+ label.setValue(subReportDef.getTitle());
+
+ ParseXMLTemplate.getComponentAttributes(pageTitleStyle, label);
+ ParseXMLTemplate.getTextComponentAttributes(pageTitleStyle, label);
+
+ subReport.getPageHeader().getComponents().add(label);
+ subReport.setDataSource(subReportDef.getDataSource());
+
+ addReportElements(subReport, subReportDef);
+
+ subReports.add(subReport);
+
+ }
+ report.getSubReports().clear();
+ report.getSubReports().addAll(subReports);
+ }
+
+ private void addElementsToDisplayToHeader(MainReport report, List<ElementToDisplay> elementsToDisplay) {
+ List<ElementToDisplay> liste = elementsToDisplay.stream().filter(e -> e.getSection().equals(Section.TITLE))
+ .collect(Collectors.toList());
+
+ if (!liste.isEmpty()) {
+
+ if (report.getTitle() == null) {
+ report.setTitle(new Title());
+ }
+ List<Component> components = new ArrayList<>();
+ int y = 0;
+
+ for (Component c : report.getTitle().getComponents()) {
+ if (c != null) {
+ y += c.getY();
+ }
+ }
+ //Ajouter un espace avant les labels à ajouter
+ y += y > 0 ? 50 : 10;
+
+ LargestWidth largestWidth = getLargestWidth(elementsToDisplay);
+
+ int yLeft = y;
+ int yRight = y;
+
+ for (ElementToDisplay e : elementsToDisplay) {
+ int xLeft = 0;
+ int xRight = 0;
+
+ if (report.isDetail()) {
+ Component columnData = !report.getColumnData().getComponents().isEmpty() ? report.getColumnData().getComponents().get(0) : null;
+
+ xRight = report.getRightMargin() + report.getLeftMargin() + (columnData != null ? columnData.getWidth() + columnData.getX() : 0) + 10;
+ } else {
+ xRight = report.getRightMargin() + report.getLeftMargin() + report.getColumnData().getComponents().stream().mapToInt(c -> c.getWidth()).sum() + 10;
+ }
+
+ Label keyLabel = new Label();
+ Component labelValue = new Component();
+ Label deuxPointsLabel = new Label();
+
+ keyLabel.setValue(e.getLibelle());
+ deuxPointsLabel.setValue(":");
+
+ switch (e.getElementType()) {
+
+ case PARAMETRE:
+ ValueElement valueElt = new ValueElement(e.getValue(), java.lang.String.class, ValueElementType.PARAMETER);
+ try {
+ report.getParameters().put(e.getValue(), valueElt);
+ } catch (Exception ex) {
+ }
+ TextField textField = new TextField();
+ textField.setValueElement(valueElt);
+ textField.setSize(10);
+ labelValue = textField;
+ break;
+
+ case DATE_GENERE:
+ valueElt = new ValueElement(e.getValue(), java.util.Date.class, ValueElementType.GENERATE);
+ textField = new TextField();
+ textField.setValueElement(valueElt);
+ textField.setSize(10);
+ textField.setPattern("dd/MM/yyyy HH:mm:ss");
+ labelValue = textField;
+ break;
+
+ default:
+ Label label = new Label();
+ label.setValue(e.getValue());
+ label.setSize(10);
+ labelValue = label;
+ break;
+ }
+
+ keyLabel.setSize(10);
+ deuxPointsLabel.setSize(10);
+
+ keyLabel.setHeight(Constantes.LABEL_HEIGHT);
+ labelValue.setHeight(Constantes.LABEL_HEIGHT);
+ deuxPointsLabel.setHeight(Constantes.LABEL_HEIGHT);
+
+ deuxPointsLabel.setWidth(Constantes.DEUX_POINTS_WIDTH);
+
+ keyLabel.setvAlign(Constantes.V_ALIGN_MIDDLE);
+ labelValue.setvAlign(Constantes.V_ALIGN_MIDDLE);
+ deuxPointsLabel.setvAlign(Constantes.V_ALIGN_MIDDLE);
+
+ keyLabel.setBold(true);
+ deuxPointsLabel.setBold(true);
+
+ keyLabel.sethAlign(Constantes.H_ALIGN_LEFT);
+ labelValue.sethAlign(Constantes.H_ALIGN_LEFT);
+ deuxPointsLabel.sethAlign(Constantes.H_ALIGN_CENTER);
+
+ if (e.getPosition() == null) {
+ e.setPosition(Position.LEFT);
+ }
+
+ switch (e.getPosition()) {
+
+ case LEFT:
+ keyLabel.setY(yLeft);
+ labelValue.setY(yLeft);
+ deuxPointsLabel.setY(yLeft);
+
+ keyLabel.setX(xLeft);
+ deuxPointsLabel.setX(xLeft + largestWidth.getLeftLargestKey());
+ labelValue.setX(xLeft + largestWidth.getLeftLargestKey() + 2 * Constantes.DEUX_POINTS_WIDTH);
+
+ keyLabel.setWidth(largestWidth.getLeftLargestKey());
+ labelValue.setWidth(largestWidth.getLeftLargestValue());
+
+ keyLabel.setX(0);
+
+ yLeft += Constantes.LABEL_HEIGHT;
+
+ break;
+
+ case RIGHT:
+ keyLabel.setY(yRight);
+ labelValue.setY(yRight);
+ deuxPointsLabel.setY(yRight);
+
+ labelValue.setX(xRight - largestWidth.getRightLargestValue() - Constantes.DEUX_POINTS_WIDTH);
+ deuxPointsLabel.setX(xRight - largestWidth.getRightLargestValue() - Constantes.DEUX_POINTS_WIDTH * 3);
+ keyLabel.setX(xRight - largestWidth.getRightLargestValue() - Constantes.DEUX_POINTS_WIDTH * 3 - largestWidth.getRightLargestKey());
+
+ keyLabel.setWidth(largestWidth.getRightLargestKey());
+ labelValue.setWidth(largestWidth.getRightLargestValue());
+
+ yRight += Constantes.LABEL_HEIGHT;
+
+ break;
+ }
+ components.add(keyLabel);
+ components.add(labelValue);
+ components.add(deuxPointsLabel);
+
+ }
+ y = yLeft > yRight ? yLeft : yRight;
+
+ report.getTitle().getComponents().addAll(components);
+ report.getTitle().setHeight(y);
+ }
+ }
+
+ private LargestWidth getLargestWidth(List<ElementToDisplay> elementsToDisplay) {
+ DateTimeFormatter dtf = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss");
+ Integer leftLargestKey = 0;
+ Integer leftLargestValue = 0;
+ Integer rightLargestKey = 0;
+ Integer rightLargestValue = 0;
+
+ for (ElementToDisplay e : elementsToDisplay) {
+ //Fixer des valeurs qui permettront de calculer la longueur de chaque label
+ if (e.getElementType().equals(ElementType.DATE_GENERE)) {
+ e.setValue(dtf.format(LocalDateTime.now()));
+ }
+
+ if (e.getPosition() != null) {
+
+ if (e.getPosition().equals(Position.RIGHT)) {
+ rightLargestValue = e.getValue() != null && e.getValue().length() > rightLargestValue ? e.getValue().length() : rightLargestValue;
+ rightLargestKey = e.getLibelle() != null && e.getLibelle().length() > rightLargestKey ? e.getLibelle().length() : rightLargestKey;
+
+ } else if (e.getPosition().equals(Position.LEFT)) {
+ leftLargestValue = e.getValue() != null && e.getValue().length() > leftLargestValue ? e.getValue().length() : leftLargestValue;
+ leftLargestKey = e.getLibelle() != null && e.getLibelle().length() > leftLargestKey ? e.getLibelle().length() : leftLargestKey;
+ }
+ }
+
+ }
+
+ leftLargestKey = leftLargestKey * 6;
+ leftLargestValue = leftLargestValue * 6;
+ rightLargestValue = rightLargestValue * 6;
+ rightLargestKey = rightLargestKey * 6;
+
+ return new LargestWidth(leftLargestKey, leftLargestValue, rightLargestKey, rightLargestValue);
+ }
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/test/CategorieConstruct.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/test/CategorieConstruct.java
new file mode 100644
index 0000000..f77921e
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/test/CategorieConstruct.java
@@ -0,0 +1,98 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.test;
+
+import com.megatim.reporting.adhoc.App;
+import com.megatim.reporting.adhoc.process.Processor;
+import com.megatim.reporting.adhoc.pojo.DescriptionEtat;
+import com.megatim.reporting.adhoc.pojo.enums.ElementType;
+import com.megatim.reporting.adhoc.pojo.enums.Position;
+import com.megatim.reporting.adhoc.pojo.CustomField;
+import com.megatim.reporting.adhoc.pojo.ElementToDisplay;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ *
+ * @author ASUS
+ *
+ */
+public class CategorieConstruct {
+
+ public DescriptionEtat construct(String repositoryPath) {
+ DescriptionEtat desc = new DescriptionEtat();
+ desc.setHaveLineNumber(true);
+ desc.setReportName("CategorieRapport");
+ desc.setTemplateFile(App.templateListe);
+
+ ArrayList<CustomField> fields = new ArrayList<>();
+ CustomField customField = new CustomField("Libellé", "libelle");
+ customField.setClasse(java.lang.String.class);
+ customField.setRang(1);
+ fields.add(customField);
+
+ customField = new CustomField("Description", "description");
+ customField.setClasse(java.lang.String.class);
+ customField.setRang(2);
+ fields.add(customField);
+
+ customField = new CustomField("Crée par", "utilisateurCreation");
+ customField.setClasse(java.lang.String.class);
+ customField.setRang(3);
+ fields.add(customField);
+
+ customField = new CustomField("Crée le", "dateCreation");
+ customField.setClasse(java.util.Date.class);
+ customField.setPattern("dd/MM/yyyy");
+ customField.setRang(4);
+ fields.add(customField);
+
+ customField = new CustomField("Modifié par", "utilisateurModification");
+ customField.setClasse(java.lang.String.class);
+ customField.setRang(5);
+ fields.add(customField);
+
+ customField = new CustomField("Modifié le", "dateDerniereModification");
+ customField.setClasse(java.util.Date.class);
+ customField.setPattern("dd/MM/yyyy");
+ customField.setRang(6);
+ fields.add(customField);
+
+ desc.getFieldsToDisplay().addAll(fields);
+ desc.setRepositoryFolder(repositoryPath);
+ desc.getElementsToDisplay().addAll(setElementToDisplay());
+
+ return desc;
+ }
+
+ public String construct(File templateFile, String repositoryPath) throws Exception {
+ DescriptionEtat desc = construct(repositoryPath);
+
+ Processor processor = new Processor();
+
+ return processor.process(desc);
+ }
+
+ private List<ElementToDisplay> setElementToDisplay() {
+ List<ElementToDisplay> labels = new ArrayList<>();
+ ElementToDisplay label = new ElementToDisplay("Edité le", "");
+ label.setElementType(ElementType.DATE_GENERE);
+ label.setPosition(Position.RIGHT);
+ labels.add(label);
+
+ label = new ElementToDisplay("Edité par", "LOGIN_UTILISATEUR");
+ label.setElementType(ElementType.PARAMETRE);
+ label.setPosition(Position.RIGHT);
+ labels.add(label);
+
+ label = new ElementToDisplay("Nombre Total", "NOMBRE_TOTAL");
+ label.setElementType(ElementType.PARAMETRE);
+ label.setPosition(Position.LEFT);
+ labels.add(label);
+
+ return labels;
+ }
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/test/CategorieDetailConstruct.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/test/CategorieDetailConstruct.java
new file mode 100644
index 0000000..cd6808a
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/test/CategorieDetailConstruct.java
@@ -0,0 +1,93 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.test;
+
+import com.megatim.reporting.adhoc.App;
+import com.megatim.reporting.adhoc.process.Processor;
+import com.megatim.reporting.adhoc.pojo.DescriptionEtat;
+import com.megatim.reporting.adhoc.pojo.enums.ElementType;
+import com.megatim.reporting.adhoc.pojo.enums.Position;
+import com.megatim.reporting.adhoc.pojo.CustomField;
+import com.megatim.reporting.adhoc.pojo.ElementToDisplay;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ *
+ * @author ASUS
+ */
+public class CategorieDetailConstruct {
+
+ public DescriptionEtat construct(String repositoryPath) {
+ DescriptionEtat desc = new DescriptionEtat();
+ desc.setHaveLineNumber(true);
+ desc.setReportName("CategorieDetailRapport");
+ desc.setRepositoryFolder(repositoryPath);
+ desc.setDetail(true);
+ desc.setTemplateFile(App.templateDetail);
+
+ ArrayList<CustomField> fields = new ArrayList<>();
+ CustomField customField = new CustomField("Libellé", "libelle");
+ customField.setClasse(java.lang.String.class);
+ customField.setRang(1);
+ fields.add(customField);
+
+ customField = new CustomField("Description", "description");
+ customField.setClasse(java.lang.String.class);
+ customField.setRang(2);
+ fields.add(customField);
+
+ customField = new CustomField("Crée par", "utilisateurCreation");
+ customField.setClasse(java.lang.String.class);
+ customField.setRang(3);
+ fields.add(customField);
+
+ customField = new CustomField("Crée le", "dateCreation");
+ customField.setClasse(java.util.Date.class);
+ customField.setPattern("dd/MM/yyyy");
+ customField.setRang(4);
+ fields.add(customField);
+
+ customField = new CustomField("Modifié par", "utilisateurModification");
+ customField.setClasse(String.class);
+ customField.setRang(5);
+ fields.add(customField);
+
+ customField = new CustomField("Modifié le", "dateCreation");
+ customField.setClasse(java.util.Date.class);
+ customField.setPattern("dd/MM/yyyy");
+ customField.setRang(6);
+ fields.add(customField);
+
+ desc.getFieldsToDisplay().addAll(fields);
+ desc.getElementsToDisplay().addAll(setElementToDisplay());
+
+ return desc;
+ }
+
+ public String construct(File templateFile, String repositoryPath) throws Exception {
+ DescriptionEtat desc = construct(repositoryPath);
+ Processor processor = new Processor();
+
+ return processor.process(desc);
+ }
+
+ private List<ElementToDisplay> setElementToDisplay() {
+ List<ElementToDisplay> labels = new ArrayList<>();
+
+ ElementToDisplay label = new ElementToDisplay("Edité le", "");
+ label.setElementType(ElementType.DATE_GENERE);
+ label.setPosition(Position.RIGHT);
+ labels.add(label);
+
+ label = new ElementToDisplay("Edité par", "LOGIN_UTILISATEUR");
+ label.setElementType(ElementType.PARAMETRE);
+ label.setPosition(Position.RIGHT);
+ labels.add(label);
+
+ return labels;
+ }
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/test/EntrepriseConstruct.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/test/EntrepriseConstruct.java
new file mode 100644
index 0000000..03d42be
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/test/EntrepriseConstruct.java
@@ -0,0 +1,118 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.test;
+
+import com.megatim.reporting.adhoc.App;
+import com.megatim.reporting.adhoc.process.Processor;
+import com.megatim.reporting.adhoc.pojo.DescriptionEtat;
+import com.megatim.reporting.adhoc.pojo.enums.ElementType;
+import com.megatim.reporting.adhoc.pojo.enums.Position;
+import com.megatim.reporting.adhoc.pojo.CustomField;
+import com.megatim.reporting.adhoc.pojo.ElementToDisplay;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ *
+ * @author ASUS
+ */
+public class EntrepriseConstruct {
+
+ public DescriptionEtat construct(String repositoryPath) {
+ DescriptionEtat desc = new DescriptionEtat();
+ desc.setHaveLineNumber(true);
+ desc.setRepositoryFolder(repositoryPath);
+ desc.setReportName("EntrepriseRapport");
+ desc.setTemplateFile(App.templateListe);
+
+ ArrayList<CustomField> fields = new ArrayList<>();
+ CustomField customField = new CustomField("Sigle", "sigle");
+ customField.setClasse(java.lang.String.class);
+ customField.setRang(1);
+ fields.add(customField);
+
+ customField = new CustomField("Catégorie", "categorie");
+ customField.setClasse(java.lang.String.class);
+ customField.setRang(2);
+ fields.add(customField);
+
+ customField = new CustomField("Tutelle", "tutelle");
+ customField.setClasse(java.lang.String.class);
+ customField.setRang(2);
+ fields.add(customField);
+
+ customField = new CustomField("Secteur activité", "secteurActivite");
+ customField.setClasse(java.lang.String.class);
+ customField.setRang(3);
+ fields.add(customField);
+
+ customField = new CustomField("StatutEntreprise", "statutEntreprise");
+ customField.setClasse(java.lang.String.class);
+ customField.setRang(4);
+ fields.add(customField);
+
+ customField = new CustomField("StatutEntreprise", "statutEntreprise");
+ customField.setClasse(java.lang.String.class);
+ customField.setRang(5);
+ fields.add(customField);
+
+ customField = new CustomField("Crée par", "utilisateurCreation");
+ customField.setClasse(String.class);
+ customField.setRang(6);
+ fields.add(customField);
+
+ customField = new CustomField("Crée le", "dateCreation");
+ customField.setClasse(java.util.Date.class);
+ customField.setPattern("dd/MM/yyyy");
+ customField.setRang(7);
+ fields.add(customField);
+
+ customField = new CustomField("Modifié par", "utilisateurModification");
+ customField.setClasse(String.class);
+ customField.setRang(8);
+ fields.add(customField);
+
+ customField = new CustomField("Modifié le", "dateCreation");
+ customField.setClasse(java.util.Date.class);
+ customField.setPattern("dd/MM/yyyy");
+ customField.setRang(9);
+ fields.add(customField);
+
+ desc.getFieldsToDisplay().addAll(fields);
+ desc.getElementsToDisplay().addAll(setElementToDisplay());
+
+ return desc;
+ }
+
+ public String construct(File templateFile, String repositoryPath) throws Exception {
+ DescriptionEtat desc = construct(repositoryPath);
+
+ Processor processor = new Processor();
+
+ return processor.process(desc);
+
+ }
+
+ private List<ElementToDisplay> setElementToDisplay() {
+ List<ElementToDisplay> labels = new ArrayList<>();
+ ElementToDisplay label = new ElementToDisplay("Edité le", "");
+ label.setElementType(ElementType.DATE_GENERE);
+ label.setPosition(Position.RIGHT);
+ labels.add(label);
+
+ label = new ElementToDisplay("Edité par", "LOGIN_UTILISATEUR");
+ label.setElementType(ElementType.PARAMETRE);
+ label.setPosition(Position.RIGHT);
+ labels.add(label);
+
+ label = new ElementToDisplay("Nombre Total", "NOMBRE_TOTAL");
+ label.setElementType(ElementType.PARAMETRE);
+ label.setPosition(Position.LEFT);
+ labels.add(label);
+
+ return labels;
+ }
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/util/PdfUtil.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/util/PdfUtil.java
new file mode 100644
index 0000000..48e404e
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/util/PdfUtil.java
@@ -0,0 +1,55 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
+ */
+package com.megatim.reporting.adhoc.util;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.OutputStream;
+import java.util.List;
+import java.util.Map;
+import net.sf.jasperreports.engine.JasperExportManager;
+import net.sf.jasperreports.engine.JasperFillManager;
+import net.sf.jasperreports.engine.JasperPrint;
+import net.sf.jasperreports.engine.JasperReport;
+import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
+import net.sf.jasperreports.engine.util.JRLoader;
+
+/**
+ *
+ * @author ASUS
+ */
+public class PdfUtil {
+
+ public static File generatePdfFile(List<?> datas, String pdfFile, String jasperFilePath, Map params) throws Exception {
+
+ // Creation d'un File sur le fichier
+ File jasperFile = new File(jasperFilePath);
+ File fichierGenerer = new File(pdfFile);
+
+ //On cree le fichier s'ile n'existe pas
+ if (!fichierGenerer.exists()) {
+
+ //On cree le fichier
+ fichierGenerer.createNewFile();
+
+ }
+
+ // Chargement du Rapport
+ JasperReport report = null;
+
+ // Etat rempli
+ JasperPrint jasperPrint = null;
+
+ // Chargement du report
+ report = (JasperReport) JRLoader.loadObject(jasperFile);
+ jasperPrint = JasperFillManager.fillReport(report, params, new JRBeanCollectionDataSource(datas, false));
+
+ OutputStream output = new FileOutputStream(fichierGenerer);
+ JasperExportManager.exportReportToPdfStream(jasperPrint, output);
+ output.close();
+
+ return fichierGenerer;
+ }
+}
diff --git a/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/util/PrintableColumnExtractor.java b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/util/PrintableColumnExtractor.java
new file mode 100644
index 0000000..fa2e05e
--- /dev/null
+++ b/reporting-adhoc/src/main/java/com/megatim/reporting/adhoc/util/PrintableColumnExtractor.java
@@ -0,0 +1,115 @@
+/*
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
+ * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Interface.java to edit this template
+ */
+package com.megatim.reporting.adhoc.util;
+
+import com.megatim.reporting.adhoc.annotations.PrintColumn;
+import com.megatim.reporting.adhoc.annotations.PrintList;
+import com.megatim.reporting.adhoc.pojo.CustomField;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Comparator;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ *
+ * @author ASUS
+ */
+public class PrintableColumnExtractor {
+
+ private PrintableColumnExtractor() {
+ }
+
+ public static List<CustomField> extract(Class<?> clazz) {
+ List<CustomField> customFields = new ArrayList<>();
+ customFields.addAll(extractFromFields(clazz));
+ customFields.addAll(extractFromMethods(clazz));
+ List<CustomField> sortedFields = customFields.stream()
+ .sorted(Comparator.comparingInt(CustomField::getRang))
+ .collect(Collectors.toList());
+ return sortedFields;
+ }
+
+ public static List<CustomField> extractListFields(Class<?> clazz, CustomField printableListField) {
+ List<CustomField> customFields = new ArrayList<>();
+ List<Field> fields = Arrays.asList(clazz.getDeclaredFields());
+ fields.stream()
+ .filter(f -> {
+ PrintList printList = f.getAnnotation(PrintList.class);
+ return printList != null && printList.titre().equals(printableListField.getLibelle());
+ })
+ .findFirst()
+ .ifPresent(c -> {
+ PrintList printList = c.getAnnotation(PrintList.class);
+ customFields.addAll(extract(printList.classe()));
+ });
+
+ return customFields;
+ }
+
+ private static List<CustomField> extractFromFields(Class<?> clazz) {
+ List<CustomField> customFields = new ArrayList<>();
+ Field[] fields = clazz.getDeclaredFields();
+
+ for (Field f : fields) {
+ PrintColumn printColumn = f.getAnnotation(PrintColumn.class);
+ PrintList printList = f.getAnnotation(PrintList.class);
+
+ if (printColumn != null) {
+
+ CustomField customField = new CustomField(printColumn.libelle(), f.getName());
+ customField.setClasse(f.getType());
+ customField.setRang(printColumn.rang());
+ customField.setWidth(printColumn.width());
+
+ customFields.add(customField);
+ } else {
+ if (printList != null
+ && (java.util.List.class.isAssignableFrom(f.getType()) || java.util.Set.class.isAssignableFrom(f.getType()))) {
+ CustomField customField = new CustomField(printList.titre(), f.getName());
+ customField.setClasse(f.getType());
+ customFields.add(customField);
+ }
+ }
+ }
+
+ return customFields;
+ }
+
+ private static List<CustomField> extractFromMethods(Class<?> clazz) {
+ List<CustomField> customFields = new ArrayList<>();
+ Method[] methods = clazz.getDeclaredMethods();
+
+ for (Method m : methods) {
+ PrintColumn printColumn = m.getAnnotation(PrintColumn.class);
+ String fieldName = extractFieldNameFromMethod(m);
+
+ if (printColumn != null && fieldName != null) {
+
+ CustomField customField = new CustomField(printColumn.libelle(), fieldName);
+ customField.setClasse(m.getReturnType());
+ customField.setRang(printColumn.rang());
+
+ customFields.add(customField);
+ }
+ }
+
+ return customFields;
+ }
+
+ private static String extractFieldNameFromMethod(Method method) {
+ String methodName = method.getName();
+
+ if (methodName.length() > 4 && methodName.startsWith("get")
+ && ((int) methodName.charAt(3) >= 65 && (int) methodName.charAt(3) <= 90)) {
+ String firstChar = methodName.charAt(3) + "";
+
+ return firstChar.toLowerCase() + methodName.substring(4);
+ }
+ return null;
+ }
+}
diff --git a/reporting-adhoc/src/main/resources/report-parts/groups.xml b/reporting-adhoc/src/main/resources/report-parts/groups.xml
new file mode 100644
index 0000000..f2987ff
--- /dev/null
+++ b/reporting-adhoc/src/main/resources/report-parts/groups.xml
@@ -0,0 +1,12 @@
+ <group name="Groupe1" isStartNewPage="true" minHeightToStartNewPage="60">
+ <groupHeader>
+ <band splitType="Immediate">
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+ </band>
+ </groupHeader>
+ <groupFooter>
+ <band splitType="Immediate">
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+ </band>
+ </groupFooter>
+ </group>
\ No newline at end of file
diff --git a/reporting-adhoc/src/main/resources/report-parts/page-properties.xml b/reporting-adhoc/src/main/resources/report-parts/page-properties.xml
new file mode 100644
index 0000000..2a7932b
--- /dev/null
+++ b/reporting-adhoc/src/main/resources/report-parts/page-properties.xml
@@ -0,0 +1,10 @@
+ <property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
+ <property name="com.jaspersoft.studio.unit." value="pixel"/>
+ <property name="com.jaspersoft.studio.unit.pageHeight" value="pixel"/>
+ <property name="com.jaspersoft.studio.unit.pageWidth" value="pixel"/>
+ <property name="com.jaspersoft.studio.unit.topMargin" value="pixel"/>
+ <property name="com.jaspersoft.studio.unit.bottomMargin" value="pixel"/>
+ <property name="com.jaspersoft.studio.unit.leftMargin" value="pixel"/>
+ <property name="com.jaspersoft.studio.unit.rightMargin" value="pixel"/>
+ <property name="com.jaspersoft.studio.unit.columnWidth" value="pixel"/>
+ <property name="com.jaspersoft.studio.unit.columnSpacing" value="pixel"/>
\ No newline at end of file
diff --git a/reporting-adhoc/src/main/resources/report-parts/parameters.xml b/reporting-adhoc/src/main/resources/report-parts/parameters.xml
new file mode 100644
index 0000000..a6d110d
--- /dev/null
+++ b/reporting-adhoc/src/main/resources/report-parts/parameters.xml
@@ -0,0 +1 @@
+ <parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="true"/>
\ No newline at end of file
diff --git a/reporting-adhoc/src/main/resources/report-parts/variables.xml b/reporting-adhoc/src/main/resources/report-parts/variables.xml
new file mode 100644
index 0000000..0fbeae7
--- /dev/null
+++ b/reporting-adhoc/src/main/resources/report-parts/variables.xml
@@ -0,0 +1,7 @@
+ <variable name="REPORT_PAGE" class="java.lang.Integer" resetType="None" incrementType="Page">
+ <variableExpression><![CDATA[$V{PAGE_NUMBER}]]></variableExpression>
+ </variable>
+ <variable name="LINE_NUMBER" class="java.lang.Long" resetType="Group" resetGroup="Groupe1" calculation="Count">
+ <variableExpression><![CDATA[Boolean.TRUE]]></variableExpression>
+ <initialValueExpression><![CDATA[new Long(1)]]></initialValueExpression>
+ </variable>
\ No newline at end of file
diff --git a/reporting-adhoc/target/classes/.netbeans_automatic_build b/reporting-adhoc/target/classes/.netbeans_automatic_build
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/reporting-adhoc/target/classes/.netbeans_automatic_build
diff --git a/reporting-adhoc/target/classes/report-parts/groups.xml b/reporting-adhoc/target/classes/report-parts/groups.xml
new file mode 100644
index 0000000..f2987ff
--- /dev/null
+++ b/reporting-adhoc/target/classes/report-parts/groups.xml
@@ -0,0 +1,12 @@
+ <group name="Groupe1" isStartNewPage="true" minHeightToStartNewPage="60">
+ <groupHeader>
+ <band splitType="Immediate">
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+ </band>
+ </groupHeader>
+ <groupFooter>
+ <band splitType="Immediate">
+ <property name="com.jaspersoft.studio.unit.height" value="px"/>
+ </band>
+ </groupFooter>
+ </group>
\ No newline at end of file
diff --git a/reporting-adhoc/target/classes/report-parts/page-properties.xml b/reporting-adhoc/target/classes/report-parts/page-properties.xml
new file mode 100644
index 0000000..2a7932b
--- /dev/null
+++ b/reporting-adhoc/target/classes/report-parts/page-properties.xml
@@ -0,0 +1,10 @@
+ <property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
+ <property name="com.jaspersoft.studio.unit." value="pixel"/>
+ <property name="com.jaspersoft.studio.unit.pageHeight" value="pixel"/>
+ <property name="com.jaspersoft.studio.unit.pageWidth" value="pixel"/>
+ <property name="com.jaspersoft.studio.unit.topMargin" value="pixel"/>
+ <property name="com.jaspersoft.studio.unit.bottomMargin" value="pixel"/>
+ <property name="com.jaspersoft.studio.unit.leftMargin" value="pixel"/>
+ <property name="com.jaspersoft.studio.unit.rightMargin" value="pixel"/>
+ <property name="com.jaspersoft.studio.unit.columnWidth" value="pixel"/>
+ <property name="com.jaspersoft.studio.unit.columnSpacing" value="pixel"/>
\ No newline at end of file
diff --git a/reporting-adhoc/target/classes/report-parts/parameters.xml b/reporting-adhoc/target/classes/report-parts/parameters.xml
new file mode 100644
index 0000000..a6d110d
--- /dev/null
+++ b/reporting-adhoc/target/classes/report-parts/parameters.xml
@@ -0,0 +1 @@
+ <parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="true"/>
\ No newline at end of file
diff --git a/reporting-adhoc/target/classes/report-parts/variables.xml b/reporting-adhoc/target/classes/report-parts/variables.xml
new file mode 100644
index 0000000..0fbeae7
--- /dev/null
+++ b/reporting-adhoc/target/classes/report-parts/variables.xml
@@ -0,0 +1,7 @@
+ <variable name="REPORT_PAGE" class="java.lang.Integer" resetType="None" incrementType="Page">
+ <variableExpression><![CDATA[$V{PAGE_NUMBER}]]></variableExpression>
+ </variable>
+ <variable name="LINE_NUMBER" class="java.lang.Long" resetType="Group" resetGroup="Groupe1" calculation="Count">
+ <variableExpression><![CDATA[Boolean.TRUE]]></variableExpression>
+ <initialValueExpression><![CDATA[new Long(1)]]></initialValueExpression>
+ </variable>
\ No newline at end of file
diff --git a/reporting-adhoc/target/maven-archiver/pom.properties b/reporting-adhoc/target/maven-archiver/pom.properties
new file mode 100644
index 0000000..b193d0c
--- /dev/null
+++ b/reporting-adhoc/target/maven-archiver/pom.properties
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Wed Oct 22 11:55:14 WAT 2025
+version=1.0
+groupId=com.megatim
+artifactId=reporting-adhoc
diff --git a/reporting-adhoc/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/reporting-adhoc/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..2b1c8c2
--- /dev/null
+++ b/reporting-adhoc/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,54 @@
+com\megatim\reporting\adhoc\pojo\layouts\ColumnHeader.class
+com\megatim\reporting\adhoc\pojo\enums\ElementType.class
+com\megatim\reporting\adhoc\pojo\enums\Section.class
+com\megatim\reporting\adhoc\pojo\Constantes.class
+com\megatim\reporting\adhoc\dto\Column.class
+com\megatim\reporting\adhoc\pojo\ElementToDisplay.class
+com\megatim\reporting\adhoc\pojo\DescriptionSousEtat.class
+com\megatim\reporting\adhoc\pojo\components\Component.class
+com\megatim\reporting\adhoc\test\CategorieConstruct.class
+com\megatim\reporting\adhoc\pojo\DescriptionEtat.class
+com\megatim\reporting\adhoc\annotations\PrintColumn.class
+com\megatim\reporting\adhoc\pojo\ProcessorElements.class
+com\megatim\reporting\adhoc\dto\HeaderData.class
+com\megatim\reporting\adhoc\pojo\components\ValueElement.class
+com\megatim\reporting\adhoc\pojo\enums\Position.class
+com\megatim\reporting\adhoc\process\ParseXMLTemplate.class
+com\megatim\reporting\adhoc\pojo\enums\ValueElementType.class
+com\megatim\reporting\adhoc\pojo\layouts\Report.class
+com\megatim\reporting\adhoc\pojo\enums\ComponentType.class
+com\megatim\reporting\adhoc\pojo\SubReportDefinition.class
+com\megatim\reporting\adhoc\pojo\layouts\ColumnData.class
+com\megatim\reporting\adhoc\dto\ReportConfiguration.class
+com\megatim\reporting\adhoc\pojo\MainReportDefinition.class
+com\megatim\reporting\adhoc\util\PdfUtil.class
+com\megatim\reporting\adhoc\test\CategorieDetailConstruct.class
+com\megatim\dynamic\reports\pojo\LargestWidth.class
+com\megatim\reporting\adhoc\process\SecondProcessor.class
+com\megatim\reporting\adhoc\pojo\components\Border.class
+com\megatim\reporting\adhoc\pojo\layouts\Layout.class
+com\megatim\reporting\adhoc\pojo\components\Label.class
+com\megatim\reporting\adhoc\pojo\components\TextField.class
+com\megatim\reporting\adhoc\pojo\CustomField.class
+com\megatim\dynamic\reports\pojo\DisplayCondition.class
+com\megatim\reporting\adhoc\pojo\layouts\MainReport.class
+com\megatim\reporting\adhoc\pojo\components\Line.class
+com\megatim\reporting\adhoc\pojo\layouts\SubReport.class
+com\megatim\reporting\adhoc\pojo\layouts\PageFooter.class
+com\megatim\reporting\adhoc\pojo\enums\ReportOrientation.class
+com\megatim\reporting\adhoc\pojo\xml\ReportTag.class
+com\megatim\reporting\adhoc\dto\PrintableColumn.class
+com\megatim\reporting\adhoc\pojo\components\Paragraph.class
+com\megatim\reporting\adhoc\pojo\layouts\PageHeader.class
+com\megatim\reporting\adhoc\pojo\layouts\Title.class
+com\megatim\reporting\adhoc\pojo\components\Image.class
+com\megatim\reporting\adhoc\App.class
+com\megatim\reporting\adhoc\process\GenerateJRXML$1.class
+com\megatim\reporting\adhoc\process\GenerateJRXML.class
+com\megatim\reporting\adhoc\annotations\PrintList.class
+com\megatim\reporting\adhoc\pojo\components\TextComponent.class
+com\megatim\reporting\adhoc\process\Processor.class
+com\megatim\reporting\adhoc\test\EntrepriseConstruct.class
+com\megatim\reporting\adhoc\util\PrintableColumnExtractor.class
+com\megatim\reporting\adhoc\process\SecondProcessor$1.class
+com\megatim\reporting\adhoc\pojo\ReportDefinition.class
diff --git a/reporting-adhoc/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/reporting-adhoc/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
new file mode 100644
index 0000000..b251e38
--- /dev/null
+++ b/reporting-adhoc/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,52 @@
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\pojo\layouts\PageFooter.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\pojo\layouts\ColumnHeader.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\dto\ReportConfiguration.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\pojo\MainReportDefinition.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\dto\PrintableColumn.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\pojo\Constantes.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\pojo\layouts\Report.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\pojo\layouts\MainReport.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\pojo\ProcessorElements.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\pojo\components\Border.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\annotations\PrintColumn.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\dto\Column.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\pojo\enums\ElementType.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\pojo\enums\ComponentType.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\pojo\LargestWidth.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\App.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\pojo\enums\Section.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\pojo\components\ValueElement.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\pojo\CustomField.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\pojo\layouts\Layout.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\pojo\components\TextComponent.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\test\CategorieConstruct.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\pojo\DescriptionEtat.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\util\PdfUtil.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\pojo\layouts\Title.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\pojo\xml\ReportTag.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\test\CategorieDetailConstruct.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\process\GenerateJRXML.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\dto\HeaderData.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\process\Processor.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\pojo\components\Image.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\pojo\SubReportDefinition.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\pojo\layouts\PageHeader.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\pojo\ReportDefinition.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\pojo\components\Component.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\pojo\DescriptionSousEtat.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\pojo\DisplayCondition.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\pojo\ElementToDisplay.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\pojo\layouts\ColumnData.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\process\ParseXMLTemplate.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\process\SecondProcessor.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\annotations\PrintList.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\pojo\components\Line.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\pojo\components\Paragraph.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\pojo\enums\ValueElementType.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\pojo\enums\Position.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\pojo\layouts\SubReport.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\pojo\enums\ReportOrientation.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\test\EntrepriseConstruct.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\util\PrintableColumnExtractor.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\pojo\components\Label.java
+C:\Users\ASUS\Documents\NetBeansProjects\share_sources\dynamic-reports\src\main\java\com\megatim\reporting\adhoc\pojo\components\TextField.java
diff --git a/reporting-adhoc/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/reporting-adhoc/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/reporting-adhoc/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
diff --git a/reporting-adhoc/target/test-classes/.netbeans_automatic_build b/reporting-adhoc/target/test-classes/.netbeans_automatic_build
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/reporting-adhoc/target/test-classes/.netbeans_automatic_build
--
Gitblit v1.10.0