drsoft / laraveljasper
一个Laravel报告生成器
v1.0
2022-06-04 11:26 UTC
Requires
- php: ^7.4|^8.0
Requires (Dev)
- php-coveralls/php-coveralls: ^2.2
- phpstan/phpstan: ^0.12.5
- phpunit/phpunit: ^8.4|^9.4
- squizlabs/php_codesniffer: *
README
A Laravel Report Generator
此包从https://github.com/PHPJasper/phpjasper复制而来
安装
如果您没有安装Composer,请安装它:Composer
composer require drsoft/laraveljasper
php artisan vendor:publish --tag=laravel-jasper-config
如果Java 8不是默认版本,您可以更改path_executable和jre_bin
示例
《Hello World》示例。
前往存储库根目录下的示例目录(vendor/drsoft/laraveljasper/examples)。使用Jaspersoft Studio或您喜欢的文本编辑器打开hello_world.jrxml文件,查看源代码。
编译
首先,我们需要将我们的JRXML文件编译成一个JASPER二进制文件。我们只需要做一次。
注意1:如果您使用的是Jaspersoft Studio,则无需执行此步骤。您可以直接在程序中编译。注意2:如果$path_reports为null,则命令将在jasperstart处执行,否则将在报告处执行,这将知道同一目录中的子报告以及资源。
use LaravelJasper; $path_reports = null $input = __DIR__ . '/vendor/drsoft/laraveljasper/examples/hello_world.jrxml'; OR $input = 'hello_world.jrxml'; $path_reports = __DIR__ . '/vendor/drsoft/laraveljasper/examples/'; LaravelJasper::compile($input,'',$path_reports)->execute();
此命令将编译hello_world.jrxml源文件为hello_world.jasper文件。
处理
现在让我们处理我们之前编译的报告
use LaravelJasper; $path_reports = null $input = __DIR__ . '/vendor/drsoft/laraveljasper/examples/hello_world.jasper'; OR $input = 'hello_world.jasper'; $path_reports = __DIR__ . '/vendor/drsoft/laraveljasper/examples/'; $output = __DIR__ . '/vendor/drsoft/laraveljasper/examples'; $options = [ 'format' => ['pdf', 'rtf'] ]; LaravelJasper::process( $input, $output, $options, $path_reports )->execute();
现在查看示例文件夹! :) 很棒,对吧?您现在有2个文件,hello_world.pdf和hello_world.rtf。
请查看src/LaravelJasper.php中的methods compile和process以获取更多详细信息
列出参数
查询jasper文件以检查给定jasper报告文件中可用的参数
use LaravelJasper; $path_reports = null $input = __DIR__ . '/vendor/drsoft/laraveljasper/examples/hello_world.jrxml'; OR $input = 'hello_world.jrxml'; $path_reports = __DIR__ . '/vendor/drsoft/laraveljasper/examples/'; $output = LaravelJasper::listParameters($input,$path_reports)->execute(); foreach($output as $parameter_description) print $parameter_description . '<pre>';
使用数据库生成报告
我们还可以指定用于连接数据库的参数
use LaravelJasper; $path_reports = null $input = '/your_input_path/your_report.jasper'; OR $path_reports = 'your_input_path' $input = 'your_report.jasper'; $output = '/your_output_path'; $connection= config('database.default'); $databaseName = config('database.connections.'.$connection); $options = [ 'format' => ['pdf'], 'locale' => 'en', 'params' => [ "RECORD_ID"=>1, ], 'db_connection' => [ 'driver' => $connection, //mysql, .... 'username' => $databaseName['username'], 'password' => $databaseName['password'], 'host' => $databaseName['host'], 'database' => $databaseName['database'], 'port' => $databaseName['port'] ] ]; LaravelJasper::process( $input, $output, $options, $path_reports )->execute();
感谢
Geekcom为PHPJasper。
有问题吗?
打开一个新的问题或查找已关闭的问题
许可证
MIT