# Jasper Service PPSDM ## How to Use Make sure you have defined these attributes in **environment file (.env)** : * **JASPER_USERNAME** : JasperServer username * **JASPER_PASSWORD** : JasperServer password * **JASPER_HOST** : Path to reports folder ### Make URL This function helps you to **make an url to JasperReport**. #### Params * **name** : JasperReport name * **params** : JasperReport parameter * **ext** : Extension for the response **(default : html)** #### Lets Code ``` use App\Services\JasperServerService as Jasper; ... Jasper::makeURL('jumlah_jenjang', ['id' => 12], 'pdf'); ``` ### Get HTML This function helps you **convert JasperServer response to HTML** (**default : html**). #### Params * **name** : JasperReport name * **params** : JasperReport parameter #### Lets Code ``` use App\Services\JasperServerService as Jasper; ... Jasper::getHTML('jumlah_jenjang', ['id' => 12]); ``` ### Get Response This function helps you to **get response from JasperServer**. The response depends on the extension that you have defined in **makeUrl** function (**default : html**). #### Params * **name** : JasperReport name * **params** : JasperReport parameter #### Lets Code ``` use App\Services\JasperServerService as Jasper; ... Jasper::getResponse('jumlah_jenjang', ['id' => 12]); ``` ### Get File This function helps you to **convert JasperServer response to file** (**default : pdf**). #### Params * **name** : JasperReport name * **filename** : JasperReport file name * **params** : JasperReport parameter #### Lets Code ``` use App\Services\JasperServerService as Jasper; ... Jasper::getFile('jumlah_jenjang', 'statistics', ['id' => 12], 'pdf'); ``` ### Embed HTML This function helps you to **embed JasperReport in laravel blade**. #### Params * **name** : JasperReport name #### Lets Code ``` ... // count_terverifikasi is an example of JasperReport name @includeJasperHTML(count_terverifikasi) ... ``` ### Embed File This function helps you to **embed JasperReport file in laravel blade**. #### Lets Code Add this code in your controller ``` use App\Services\JasperServerService as Jasper; ... public function jasper($id) { $download = Jasper::getFile( 'Evaluation_Report', 'Evaluasi ', ['id' => $id] ); return $download; } ``` Defined the path in your **web.php** ``` ... Route::get('jasper/{id}','Controller@jasper') ->name('jasperfile'); ... ``` Use the path you have defined in **iframe tag** ``` ... <div class="ui segment full-width"> <iframe style="height: 65vh;width: 100%" src="{{ route('jasperfile', $id) }}"></iframe> </div> ... ``` #### Download File You can use the embed path to download file, just **defined the url in href attribute**. ``` <a class="ui right floated button red" href="{{ route('jasperfile', $id) }}"><i class="icon print"></i> Print</a> ``` ### Embed JasperReport Table This function helps you to **embed JasperReport table in laravel blade**. #### Params * **name** : JasperReport name * **params** : JasperReport parameters * **maxCol** : Table column (**default : 30**) **Note** : defined **maxCol** to **remove the unused row**. **Unused Row : Row with 0px and 30px (default) height.** #### Lets Code ``` ... // jumlah_jenjang is an example of JasperReport name <h1>Jumlah Pejabat JF PPBJ berdasarkan Jenjang</h1> @includeJasperTable(['name' => 'jumlah_jenjang', 'params' => []]) </div> ... @push('script') <script src="{{ asset('js/jasper/script.js') }}" type="text/javascript"></script> @endpush ```