pour ceux que ça intéresse je viens de trouver un bout de code qui permet de lancer un report sans passer par la page d’accueil de jasperserver
du coup vous pouvez générer un pdf avec votre report directement depuis une page php de dolibarr:
par exemple je lance un report en passant en paramètre le num commande d'une commande client. pour cet exemple j'ai ajouté un bouton action dans la fiche commande client....
///code
set_time_limit(120); // sets max_execution_time
ini_set("memory_limit", "16M");
header('Content-type: application/pdf');
header("Content-Disposition: attachment; filename=bon_prepa.pdf");
$wsdl = "HOSTNAME:8080/jasperserver/services/repository?wsdl";
$username = "jasperadmin"; // I'm just using the default here
$password = "XXXXXXX"; // I'm just using the default here
$format = "PDF"; // Could be HTML, RTF, etc (but remember to update the Content-Type header above)
$report = "/reports/Bon_de_preparation"; // Get this from Jasper Server Web Admin
$num_commande=$ref;
$client = new SoapClient($wsdl, array('login' => $username, 'password' => $password, "trace" => 1, "exceptions" => 0));
$request = "<request operationName=\"runReport\" locale=\"en\">
<argument name=\"RUN_OUTPUT_FORMAT\">$format</argument>
<resourceDescriptor name=\"\" wsType=\"\"
uriString=\"$report\"
isNew=\"false\">
<parameter name='num_commande' isListItem='false'>$num_commande</parameter>
<label>null</label>
</resourceDescriptor>
</request>";
$client->runReport($request);
echo $client->__getLastResponse();
///code ...
du coup vous pouvez générer un pdf avec votre report directement depuis une page php de dolibarr:
par exemple je lance un report en passant en paramètre le num commande d'une commande client. pour cet exemple j'ai ajouté un bouton action dans la fiche commande client....
///code
set_time_limit(120); // sets max_execution_time
ini_set("memory_limit", "16M");
header('Content-type: application/pdf');
header("Content-Disposition: attachment; filename=bon_prepa.pdf");
$wsdl = "HOSTNAME:8080/jasperserver/services/repository?wsdl";
$username = "jasperadmin"; // I'm just using the default here
$password = "XXXXXXX"; // I'm just using the default here
$format = "PDF"; // Could be HTML, RTF, etc (but remember to update the Content-Type header above)
$report = "/reports/Bon_de_preparation"; // Get this from Jasper Server Web Admin
$num_commande=$ref;
$client = new SoapClient($wsdl, array('login' => $username, 'password' => $password, "trace" => 1, "exceptions" => 0));
$request = "<request operationName=\"runReport\" locale=\"en\">
<argument name=\"RUN_OUTPUT_FORMAT\">$format</argument>
<resourceDescriptor name=\"\" wsType=\"\"
uriString=\"$report\"
isNew=\"false\">
<parameter name='num_commande' isListItem='false'>$num_commande</parameter>
<label>null</label>
</resourceDescriptor>
</request>";
$client->runReport($request);
echo $client->__getLastResponse();
///code ...