EXCEL, PDF, CSV e XML são os formatos suportados. O conteúdo das colunas da tabela será justificado como alinhado à esquerda, alinhado ao centro e alinhado à direita com base no tipo de conteúdo. Se um estilo ou styleClass contiver a palavra "direita", a célula será alinhada à direita na saída Excel/PDF.
$render=explode(" ",$_POST['partial_render']);
$_SESSION['inicio']=$_POST['tbl_first'];
$_SESSION['paginas']=$_POST['tbl_rows'];
if(isset($_SESSION['inicio'])){
//valor normal
}else{
$_SESSION['inicio']='0';
}
if(isset($_SESSION['paginas'])){
//valor normal
}else{
$_SESSION['paginas']='5';
}
$result = "SELECT * FROM treetable";
if($_POST['partial_render']=='tbl'){
$result.= " WHERE sub_id='0' LIMIT ".$_SESSION['inicio'].','.$_SESSION['paginas'];
}
$result = $pdo->query($result);
if($_POST['partial_render']=='tbl'){
$resposta='';
while ($linha = $result->fetch(PDO::FETCH_ASSOC)){
$resposta.='
<tr id="tbl_node_'.$linha['id'].'" class="ui-widget-content default ui-node-level-1" aria-expanded="false" data-rk="'.$linha['id'].'" data-prk="root">
<td role="gridcell"><span class="ui-treetable-toggler ui-icon ui-icon-triangle-1-e ui-c"></span>'.$linha['nome'].'</td>
<td role="gridcell">'.$linha['tamanho'].'</td>
<td role="gridcell">'.$linha['tipo'].'</td>
</tr>
';
}
}
if(isset($_POST['tbl_expand'])){
$expandir = explode('_',$_POST['tbl_expand']);
$cont_expandir = count($expandir);
if($cont_expandir=='1'){
$selecionar=$_POST['tbl_expand'];
$node='';
$level='2';
}
if($cont_expandir=='2'){
$selecionar=$expandir[1];
$node=$expandir[0].'_';
$level='3';
}
$resposta='';
$result = "SELECT * FROM treetable WHERE sub_id='".$selecionar."'";
//echo $result;
$result = $pdo->query($result);
while ($linha = $result->fetch(PDO::FETCH_ASSOC)){
$resposta.='
<tr id="tbl_node_'.$node.$linha['sub_id'].'_'.$linha['id'].'" class="ui-widget-content default ui-node-level-'.$level.'" role="row" aria-expanded="false" data-rk="'.$node.$linha['sub_id'].'_'.$linha['id'].'" data-prk="'.$node.$linha['sub_id'].'">
<td role="gridcell"><span class="ui-treetable-indent"></span>';
if($linha['tipo']=='Pasta'){$resposta.='<span class="ui-treetable-toggler ui-icon ui-icon-triangle-1-e ui-c"></span>';}else{$resposta.='<span class="ui-treetable-indent"></span><span class="ui-treetable-toggler ui-icon ui-icon-triangle-1-e ui-c" style="visibility:hidden"></span>';}
$resposta.=$linha['nome'].'</td>
<td role="gridcell">'.$linha['tamanho'].'</td>
<td role="gridcell">'.$linha['tipo'].'</td>
</tr>
';
}
}
if(isset($_POST['tbl_collapse'])){
$resposta='';
}
if($_POST['source']=='xls'){
$render[0]='vazio';
$resposta='vazio';
$tasks = array();
while ($row = $result->fetch(PDO::FETCH_ASSOC)){
$tasks[]=$row;
}
$conteudo='';
$heading = false;
if(!empty($tasks))
foreach($tasks as $row) {
if(!$heading) {
$conteudo.= implode("\t", array_keys($row)) . "\n";
$heading = true;
}
$conteudo.= implode("\t", array_values($row)) . "\n";
}
$eval='DinarteCoelho.download(\'data:application/vnd.ms-excel;base64,'.base64_encode($conteudo).'\', \'application/vnd.ms-excel\', \'treetable.xls\', \'dinartecoelho.download_ui_data_treetable.php\')';
}
if($_POST['source']=='xlsx'){
$render[0]='vazio';
$resposta='vazio';
$tasks = array();
while ($row = $result->fetch(PDO::FETCH_ASSOC)){
$tasks[]=$row;
}
$conteudo='';
$heading = false;
if(!empty($tasks))
foreach($tasks as $row) {
if(!$heading) {
$conteudo.= implode("\t", array_keys($row)) . "\n";
$heading = true;
}
$conteudo.= implode("\t", array_values($row)) . "\n";
}
$eval='DinarteCoelho.download(\'data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,'.base64_encode($conteudo).'\', \'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\', \'treetable.xlsx\', \'dinartecoelho.download_ui_data_treeetable.php\')';
}
if($_POST['source']=='pdf'){
$render[0]='vazio';
$resposta='vazio';
include_once '../../../pdf-php-master/src/Cezpdf.php';
$pdf = new CezPDF('a4');
$pdf->selectFont('Helvetica');
$data = array();
while ($row = $result->fetch(PDO::FETCH_ASSOC)){
$data[]=$row;
}
$pdf->ezText("\n<b>Tabela de Produtos</b>", 12);
$pdf->ezText("<b>Dados da consulta</b>", 10);
$pdf->ezTable($data, $cols, '', ['showHeadings' => 1, 'shaded' => 1, 'gridlines' => 31, 'cols' => 1, 'innerLineThickness' => 1, 'outerLineThickness' => 1]);
$eval='DinarteCoelho.download(\'data:application/pdf;base64,'.base64_encode($pdf->output()).'\', \'application/pdf\', \'treetable.pdf\', \'dinartecoelho.download_ui_data_treetable.php\')';
}
if($_POST['source']=='csv'){
$render[0]='vazio';
$resposta='vazio';
$tasks = array();
while ($row = $result->fetch(PDO::FETCH_ASSOC)){
$tasks[]=$row;
}
$conteudo='';
$heading = false;
if(!empty($tasks))
foreach($tasks as $row) {
if(!$heading) {
$conteudo.= implode("\t", array_keys($row)) . "\n";
$heading = true;
}
$conteudo.= implode("\t", array_values($row)) . "\n";
}
$conteudo = str_replace(' ',';',$conteudo);
$eval='DinarteCoelho.download(\'data:text/csv; charset=UTF-8;base64,'.base64_encode($conteudo).'\', \'text/csv; charset=UTF-8\', \'treetable.csv\', \'dinartecoelho.download_ui_data_treetable.php\')';
}
if($_POST['source']=='xml'){
$render[0]='vazio';
$resposta='vazio';
while ($row = $result->fetch(PDO::FETCH_ASSOC)){
$tabelasArray[]=$row;
}
$doc = new DOMDocument('1.0');
$doc->formatOutput = true;
$root = $doc->createElement('tabela');
$root = $doc->appendChild($root);
for($i=0; $i<count($tabelasArray); $i++){
$tabelaId = $tabelasArray[$i]['id'];
$tabelaName = $tabelasArray[$i]['nome'];
$tabelaTamanho = $tabelasArray[$i]['tamanho'];
$tabelaTipo = $tabelasArray[$i]['tipo'];
$tabela = $doc->createElement('tabela');
$tabela->setAttribute('id', $tabelaId);
$tabela = $root->appendChild($tabela);
$name = $doc->createElement('nome', $tabelaName);
$tabela->appendChild($name);
$tamanho = $doc->createElement('tamanho', $tabelaTamanho);
$tabela->appendChild($tamanho);
$tipo = $doc->createElement('tipo', $tabelaTipo);
$tabela->appendChild($tipo);
}
$eval='DinarteCoelho.download(\'data:text/xml; charset=UTF-8;base64,'.base64_encode($doc->saveXML()).'\', \'text/xml; charset=UTF-8\', \'treetable.xml\', \'dinartecoelho.download_ui_data_treetable.php\')';
}
if($_POST['source']=='txt'){
$render[0]='vazio';
$resposta='vazio';
$tasks = array();
while ($row = $result->fetch(PDO::FETCH_ASSOC)){
$tasks[]=$row;
}
$conteudo='';
$heading = false;
if(!empty($tasks))
foreach($tasks as $row) {
if(!$heading) {
$conteudo.= implode("\t", array_keys($row)) . "\n";
$heading = true;
}
$conteudo.= implode("\t", array_values($row)) . "\n";
}
$conteudo = str_replace(' ','|',$conteudo);
$eval='DinarteCoelho.download(\'data:text/plain; charset=UTF-8;base64,'.base64_encode($conteudo).'\', \'text/plain; charset=UTF-8\', \'treetable.txt\', \'dinartecoelho.download_ui_data_treetable.php\')';
}
dc.cw("TreeTable", "widget_tbl", {
id: "tbl"
, paginator: {
id: ['paginacao_topo', 'paginacao_base']
, rows: <?php echo $num_pag;?>
, rowCount: <?php echo $total_rgtr;?>
, page: 0
, currentPageTemplate: '({currentPage} of {totalPages})'
}
});