Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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);