Obter Html Relatório
É possível obter o html de um relatório para ser enviado por e-mail, ou qualquer que seja objetivo.
Para isso é necessário no entry realizar o uso do método getHtmlReport do ReportService:
Descrição do Método
/**
* Obtem HTML do relatório no formato de texto ou array($html , $queryData) caso $returnQueryData = true.
*
* @param string $reportName Nome do Relatório
* @param array $params Parametros que o relatório utiliza
* @param mixed $useDefaultCss Se deve usar estilos padrão ou não
* @param mixed $returnQueryData Se retorna html e dados ou somente html
* @param array $recipients Lista de destinatários
*
* @return array|bool|string
*/
public function getHtmlReport(?string $reportName, ?array $params = [], ?bool $useDefaultCss = true, ?bool $returnQueryData = false, ?array $recipients = [])
Exemplo de Uso
// instanciar a classe ReportService
$reportService = new ReportService();
// Nome do Relatório
$reportName = 'name_of_my_awesome_report';
// Parâmetros do relatório, todos os parametros ilustrados nesse exemplo são fictícios
$params = ['os_offline' => $osOfflineSeqDb,
'incluir_fotos' => true,
'incluir_anotacoes' => $hasAnnotation,
'incluir_horas_trabalhadas' => $hasHoursWorked,
'incluir_checklist' => $hasChecklist
];
// Usa o CSS padrão, sempre true porque é para usar o nosso CSS, há casos dentro do core que essa flag pode mudar,
// para o uso do método getHtmlReport
$defaulCss = true;
// Parâmetro que permite obter os dados do relatório ao invés do HTML, logo como queremos o HTML ele é false.
$queryData = false;
// Caso tenhamos a intenção de obter o idioma do destinário, ao invés do Local, estou descrevendo ele mas vc não precisa passar
$recipientes = []; // Se eu quiser obter o idioma de um email de usuário cadastrado no nfs: ['my.awesome@email.com']
$html = $reportService->getHtmlReport($reportName, $params, $defaulCss, $queryData, $recipients);
Nesse exemplo passei todos os parâmetros para todas saberem as propriedades possíveis, mas na maioria dos casos você vai querer passar somente o $reportName e $params:
$html = $reportService->getHtmlReport($reportName, $params, $defaulCss, $queryData, $recipients);