Bonjour, désolé de ma réponse tardive mais j'ai trouvé la solution il y a quelques jours, j'ai remplacé dans le fichier genReport.bat la ligne
1 2
| set BIRTCLASSPATH=
for %%i in (%BIRT_HOME%\ReportEngine\lib\*.jar) do set BIRTCLASSPATH=%%i;!BIRTCLASSPATH! |
par ceci :
set BIRTCLASSPATH=%BIRT_HOME%\ReportEngine\lib\*
Par contre je rencontre un autre problème que je n'arrive pas à régler. En effet afin d'améliorer l'outil final j'ai créer une petite interface dans un fichier .bat qui utilise le genReport.bat. Voici un extrait du code de cette interface :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| rem CHEMIN D'ACCES AU RUNTIME BIRT
Set BIRT_HOME=C:\ExportBIRT\birt-runtime-4_2_1\
echo off
cls
rem CHOIX DE L'OPERATION A EFFECTUER
echo Quelle operation souhaitez vous effectuer ?
echo 1. Extraire toutes les unites
echo 2. Extraire une ou plusieurs unites
echo.
set choix=
set /p choix=Veuillez indiquer votre choix (1 ou 2) :
echo.
rem CHOIX 1: EXTRACTION DE L'ENSEMBLE DES UNITES PAR BOUCLE (LECTURE DES UNITES DANS LE FICHIER unite.csv)
rem CHOIX 2: L'UTILISATEUR TAPPE LUI MEME LE NOM DE L'UNITE SOUHAITEE (ATTENTION AUX MAJ/ESPACES!)
if %choix%==1 goto choix1
if %choix%==2 goto choix2
rem CHOIX 1: EXTRACTION DE L'ENSEMBLE DES UNITES PAR BOUCLE (LECTURE DES UNITES DANS LE FICHIER unite.csv)
:choix1
for /f "tokens=2 delims=," %%i in ('type "C:\ExportBIRT\unites.csv"') do (
echo Unite : %%i en cours d'extraction...
C:\ExportBIRT\birt-runtime-4_2_1\ReportEngine\genReport.bat -m runrender -o "C:\ExportBIRT\birt-runtime-4_2_1\ReportEngine\samples\output\%%i.pdf" -p "nomunite=%%i" -f pdf "C:\ExportBIRT\birt-runtime-4_2_1\ReportEngine\samples\BDDAccess_RapportFinal.rptdesign"
echo off
echo Extraction de l'unite OK!
echo -----------------------------------------------------------------------------
)
goto Fin |
J'appelle donc le genReport.bat dans le FOR afin d'extraire les rapports de l'ensemble des unité :
1 2 3 4 5 6 7
| for /f "tokens=2 delims=," %%i in ('type "C:\ExportBIRT\unites.csv"') do (
echo Unite : %%i en cours d'extraction...
C:\ExportBIRT\birt-runtime-4_2_1\ReportEngine\genReport.bat -m runrender -o "C:\ExportBIRT\birt-runtime-4_2_1\ReportEngine\samples\output\%%i.pdf" -p "nomunite=%%i" -f pdf "C:\ExportBIRT\birt-runtime-4_2_1\ReportEngine\samples\BDDAccess_RapportFinal.rptdesign"
echo off
echo Extraction de l'unite OK!
echo -----------------------------------------------------------------------------
) |
Jusque là tout va bien, l'ensemble des fichiers pdf sont créés. Mais à la fin du FOR (après le DO) la fenêtre de commande DOS se ferme automatiquement. Or je souhaiterai pouvoir continuer l’exécution de mon code une fois les rapports créés (aller sur le goto Fin). Je pense que le problème vient du genReport.bat car si je met seulement un "echo Test" dans le DO la fenêtre DOS ne se ferme pas et l’exécution continue sur la suite du code.
J'ai regardé un peu le code contenu dans le fichier genReport.bat mais rien ne semble indiquer une fermeture automatique de la fenêtre DOS une fois les instructions du fichier terminées :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
| ECHO off
REM org.eclipse.birt.report.engine.impl.ReportRunner Usage:
REM --mode/-m [ run | render | runrender] the default is runrender
REM for runrender mode:
REM we should add it in the end <design file>
REM --format/-f [ HTML \| PDF ]
REM --output/-o <target file>
REM --htmlType/-t < HTML \| ReportletNoCSS >
REM --locale /-l <locale>
REM --parameter/-p <"parameterName=parameterValue">
REM --file/-F <parameter file>
REM --encoding/-e <target encoding>
REM
REM Locale: default is english
REM parameters in command line will overide parameters in parameter file
REM parameter name cant include characters such as \ ', '=', ':'
REM
REM For RUN mode:
REM we should add it in the end<design file>
REM --output/-o <target file>
REM --locale /-l <locale>
REM --parameter/-p <parameterName=parameterValue>
REM --file/-F <parameter file>
REM
REM Locale: default is english
REM parameters in command line will overide parameters in parameter file
REM parameter name cant include characters such as \ ', '=', ':'
REM
REM For RENDER mode:
REM we should add it in the end<design file>
REM --output/-o <target file>
REM --page/-p <pageNumber>
REM --locale /-l <locale>
REM
REM Locale: default is english
IF not "%BIRT_HOME%" == "" GOTO runBirt
ECHO "Please set BIRT_HOME first."
GOTO end
:runBirt
SET java.io.tmpdir=%BIRT_HOME%\ReportEngine\tmpdir
SET org.eclipse.datatools_workspacepath=%java.io.tmpdir%\workspace_dtp
IF not exist %java.io.tmpdir% mkdir %java.io.tmpdir%
IF not exist %org.eclipse.datatools_workspacepath% mkdir %org.eclipse.datatools_workspacepath%
REM set the birt class path.
setlocal enabledelayedexpansion
set BIRTCLASSPATH=%BIRT_HOME%\ReportEngine\lib\*
REM set command
SET JAVACMD=java
set p1=%1
set p2=%2
set p3=%3
set p4=%4
set p5=%5
set p6=%6
set p7=%7
set p8=%8
set p9=%9
shift
set p10=%9
shift
set p11=%9
shift
set p12=%9
shift
set p13=%9
shift
set p14=%9
shift
set p15=%9
shift
set p16=%9
shift
set p17=%9
shift
set p18=%9
shift
set p19=%9
%JAVACMD% -cp "%BIRTCLASSPATH%" -DBIRT_HOME="%BIRT_HOME%\ReportEngine" org.eclipse.birt.report.engine.api.ReportRunner %p1% %p2% %p3% %p4% %p5% %p6% %p7% %p8% %p9% %p10% %p11% %p12% %p13% %p14% %p15% %p16% %p17% %p18% %p19%
:end |
Auriez vous une idée du paramètre à modifier afin que la fenêtre DOS ne se ferme pas une fois l’exécution du genReport.bat terminée?
Merci d'avance pour vos réponse.
Partager