public function __construct()
 {
     parent::__construct();
     $dados[] = array(1, 'Maria da Silva', 'http://www.maria.com.br', 1200);
     $dados[] = array(2, 'Pedro Cardoso', 'http://www.pedro.com.br', 800);
     $dados[] = array(3, 'João de Barro', 'http://www.joao.com.br', 1500);
     $dados[] = array(3, 'Joana Pereira', 'http://www.joana.com.br', 700);
     $dados[] = array(3, 'Erasmo Carlos', 'http://www.erasmo.com.br', 2500);
     $tabela = new Table();
     $tabela->width = 600;
     $tabela->style = 'margin: 20px';
     $cabecalho = $tabela->addRow();
     $cabecalho->style = 'background: #a0a0a0';
     $cabecalho->addCell('Código');
     $cabecalho->addCell('Nome');
     $cabecalho->addCell('Site');
     $cabecalho->addCell('Salário');
     $i = 0;
     $total = 0;
     foreach ($dados as $pessoa) {
         $bgcolor = $i % 2 == 0 ? '#d0d0d0' : '#ffffff';
         $linha = $tabela->addRow();
         $linha->style = "background: {$bgcolor}";
         $linha->addCell($pessoa[0]);
         $linha->addCell($pessoa[1]);
         $linha->addCell($pessoa[2]);
         $x = $linha->addCell($pessoa[3]);
         $x->align = 'right';
         $total += $pessoa[3];
         $i++;
     }
     $linha = $tabela->addRow();
     $celula = $linha->addCell('Total');
     $celula->style = 'background: whiteSmoke';
     $celula->colspan = 3;
     $celula = $linha->addCell($total);
     $celula->style = 'background: #FFF08C; text-align: right';
     $tabela->show();
 }
예제 #2
0
 /**
  * Adiciona um objeto na grid
  * @param $object = Objeto que contém os dados
  */
 public function addItem($object)
 {
     // adiciona uma linha na Datagrid
     $row = parent::addRow();
     // verifica se a listagem possui ações
     if ($this->actions) {
         // percorre as ações
         foreach ($this->actions as $action) {
             // obtém as propriedades da ação
             $url = $action->serialize();
             $label = $action->getLabel();
             $image = $action->getImage();
             $field = $action->getField();
             // obtém o campo do objeto que será passado adiante
             $key = $object->{$field};
             // cria um link
             $link = new Element('a');
             $link->href = "{$url}&key={$key}&{$field}={$key}";
             // verifica se o link será com imagem ou com texto
             if ($image) {
                 // adiciona a imagem ao link
                 $img = new Element('img');
                 $img->src = "App/Images/{$image}";
                 $img->title = $label;
                 $link->add($img);
             } else {
                 // adiciona o rótulo de texto ao link
                 $link->add($label);
             }
             // adiciona a célula à linha
             $row->addCell($link);
         }
     }
     if ($this->columns) {
         // percorre as colunas da Datagrid
         foreach ($this->columns as $column) {
             // obtém as propriedades da coluna
             $name = $column->getName();
             $align = $column->getAlign();
             $width = $column->getWidth();
             $function = $column->getTransformer();
             $data = $object->{$name};
             // verifica se há função para transformar os dados
             if ($function) {
                 // aplica a função sobre os dados
                 $data = call_user_func($function, $data);
             }
             // adiciona a célula na linha
             $celula = $row->addCell($data);
             $celula->align = $align;
             $celula->width = $width;
         }
     }
     // incrementa o contador de linhas
     $this->rowcount++;
 }