Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Link para download em datagrid? Olá pessoal, fiz algumas buscas aqui no fórum mas não encontrei como eu posso em um datagrid disponibilizar um link para download de um arquivo, alguma dica?...
IV
Link para download em datagrid?  
Fechado
Olá pessoal, fiz algumas buscas aqui no fórum mas não encontrei como eu posso em um datagrid disponibilizar um link para download de um arquivo, alguma dica?

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (5)


NC

Criando um Action não funciona?
IV

Olá Nilson, não encontrei como usar o "Action" para fazer download do arquivo. Você teria um exemplo?
IV

Conseguir usando o "parent::openFile($file);" mas ao fazer o download e tentar abrir o arquivo é exibida a seguinte mensagem "File type plain text document (text/plain) is not supported"
IF

Olá Iran, o nome do arquivo para download está gravado em uma tabela?
HL

Boa noite!

Estava um pouco afastado aqui do forum, pois estou em uma trabalho com redes.

Porem ja fiz dentro de um projeto o que voce quer, fiz um link dentro de uma datagrid, abaixo segue o codigo, porem claro voce deve ter um tabela com o nome dos arquivos e um diretorio que guarde os arquivos.

Codigo:

  1. <?php  
  1. <?php
  2. /**
  3.  * ChamadoList Listing
  4.  * @author  <your name here>
  5.  */
  6. class ChamadoList extends TStandardList
  7. {
  8.     protected $form;     // registration form
  9.     protected $datagrid// listing
  10.     protected $pageNavigation;
  11.     
  12.     /**
  13.      * Class constructor
  14.      * Creates the page, the form and the listing
  15.      */
  16.     public function __construct()
  17.     {
  18.         parent::__construct();
  19.         
  20.         parent::setDatabase('chamado');            // defines the database
  21.         parent::setActiveRecord('Chamado');   // defines the active record
  22.         parent::setDefaultOrder('id_situacao''asc');
  23.       
  24.       //  parent::setDefaultOrder('id_prioridade', 'asc'); 
  25.              
  26.         parent::addFilterField('id''like'); // add a filter field
  27.         parent::addFilterField('titulo''like'); // add a filter field
  28.         parent::addFilterField('descricao''like'); // add a filter field
  29.         parent::addFilterField('data_chamado''like'); // add a filter field
  30.         parent::addFilterField('id_situacao''like'); // add a filter field
  31.         parent::addFilterField('id_prioridade''like'); // add a filter field
  32.         parent::addFilterField('id_categoria''like'); // add a filter field
  33.         parent::addFilterField('id_unidade''like'); // add a filter field
  34.         parent::addFilterField('id_sistema''like'); // add a filter field
  35.         parent::addFilterField('id_segmento''like'); // add a filter field
  36.         parent::addFilterField('id_usuario''like'); // add a filter field
  37.         
  38.         // creates the form, with a table inside
  39.         $this->form = new TQuickForm('form_search_Chamado');
  40.         $this->form->class 'tform'// CSS class
  41.         $this->form->setFormTitle('Pesquisar Chamado');
  42.         
  43.         // create the form fields
  44.         $id                             = new TEntry('id');
  45.         $titulo                         = new TEntry('titulo');
  46.         $data_chamado                   = new TDate('data_chamado');
  47.         $id_situacao                    = new TDBCombo('id_situacao''chamado''situacao''id''situacao');
  48.         $id_prioridade                  = new TDBCombo('id_prioridade''chamado''prioridade''id''prioridade');
  49.         $id_categoria                   = new TDBCombo('id_categoria''chamado''categoria''id''categoria');
  50.         $id_unidade                     = new TDBCombo('id_unidade''chamado''unidade''id''unidade');
  51.         $id_sistema                     = new TDBCombo ('id_sistema','chamado''sistema''id''sistema');
  52.         $id_segmento                    = new TDBCombo('id_segmento','chamado''segmento''id''segmento');
  53.         $id_system_user                 = new TEntry('id_system_user');
  54.         
  55.         $data_chamado->setMask('dd/mm/yyyy'); 
  56.         
  57.         // add the fields
  58.         
  59.         $this->form->addQuickField('Título'$titulo,  300);
  60.      //   $this->form->addQuickField('Data', $data_chamado,  280);
  61.         $this->form->addQuickField('Status'$id_situacao,  300);
  62.         $this->form->addQuickField('Prioridade'$id_prioridade,  300);
  63.         $this->form->addQuickField('Categoria'$id_categoria,  300);
  64.         $this->form->addQuickField('Unidade'$id_unidade,  300);
  65.         $this->form->addQuickField('Sistema'$id_sistema,  300);
  66.         $this->form->addQuickField('Segmento'$id_segmento,  300);
  67.       //  $this->form->addQuickField('Usuário', $id_system_user,  300);
  68.         
  69.         
  70.         
  71.         // keep the form filled during navigation with session data
  72.         $this->form->setDataTSession::getValue('Chamado_filter_data') );
  73.         
  74.         // add the search form actions
  75.         $this->form->addQuickAction(('Buscar'), new TAction(array($this'onSearch')), 'ico_find.png');
  76.         
  77.         $this->form->addQuickAction(('Novo'),  new TAction(array('ChamadoForm''onEdit')), 'ico_new.png');
  78.         
  79.         
  80.         // creates a DataGrid
  81.         $this->datagrid = new TQuickGrid;
  82.         $this->datagrid->setHeight(320);
  83.         
  84.         // creates the datagrid columns
  85.         $data_chamado $this->datagrid->addQuickColumn('Data''data_chamado''center'80);
  86.         $data_chamado->setTransformer(array($this'formatDate'));
  87.         $id_usuario $this->datagrid->addQuickColumn('Usuário''usuario_usuario''center'80);
  88.         $titulo $this->datagrid->addQuickColumn('Título''titulo''left'360);
  89.         $id_unidade $this->datagrid->addQuickColumn('Unidade''unidade_unidade''center'80);
  90.         $id_segmento $this->datagrid->addQuickColumn('Segmento''segmento_segmento''center'80);
  91.         $id_sistema $this->datagrid->addQuickColumn('Sistema''sistema_sistema''center'80);
  92.         $id_categoria $this->datagrid->addQuickColumn('Categoria''categoria_categoria''center'80);
  93.         $id_prioridade $this->datagrid->addQuickColumn('Prioridade''prioridade_prioridade''center'80);
  94.         $id_situacao $this->datagrid->addQuickColumn('Status''situacao_situacao''center'80);
  95.         $this->datagrid->addQuickAction('Visualizar Descrição', new TDataGridAction(array($this'onShowDetail')), 'id',  'ico_view.png');
  96.         
  97.         // create the datagrid actions
  98.         $edit_action   = new TDataGridAction(array('AcompanhamentoFormList''onView'));
  99.         
  100.         $this->datagrid->addQuickAction(('Acompanhar Chamado'), $edit_action'id''ico_add.png');
  101.         
  102.         
  103.         // create the datagrid model
  104.         $this->datagrid->createModel();
  105.         
  106.         // create the page navigation
  107.         $this->pageNavigation = new TPageNavigation;
  108.         $this->pageNavigation->setAction(new TAction(array($this'onReload')));
  109.         $this->pageNavigation->setWidth($this->datagrid->getWidth());
  110.         
  111.         // create the page container
  112.        // $container = TVBox::pack( $this->form, $this->datagrid, $this->pageNavigation);
  113.         
  114.         $container = new TTable;
  115.         $container->style 'width: auto';
  116.         $container->addRow()->addCell(new TXMLBreadCrumb('menu.xml''ChamadoList'));
  117.         $container->addRow()->addCell($this->form);
  118.         $container->addRow()->addCell($this->datagrid);
  119.         $container->addRow()->addCell($this->pageNavigation);
  120.         parent::add($container);
  121.         
  122.        
  123.         
  124.       
  125.     }
  126.     
  127.     public function onShowDetail$param ){
  128.         // get row position
  129.         $pos $this->datagrid->getRowIndex('id'$param['key']);
  130.                
  131.         // get row by position
  132.         $current_row $this->datagrid->getRow($pos);
  133.    
  134.         
  135.         TTransaction::open('Chamado');
  136.         $chamado = new Chamado($param['key']);
  137.         
  138.         // create a new row
  139.         $row = new TTableRow;
  140.         $documento null;
  141.         if (!empty($chamado->documento)) {
  142.             if (file_exists('./documento_chamado/'.$chamado->id.'/'.$chamado->documento)) {
  143.                 $documento '<br><a href="/documento_chamado/'.$chamado->id.'/'.$chamado->documento.'" target="fora">Download</a>';
  144.             }
  145.         }
  146.         $row->addCell('<b>Descrição:</b></br></br></br></br>');
  147.         $cell $row->addCell$chamado->descricao '<br>'$documento);
  148.         $cell->colspan 13;
  149.         $cell->style='padding:10px;';
  150.         
  151.         // insert the new row
  152.         $this->datagrid->insert($pos +1$row);
  153.         TTransaction::close();
  154.     }
  155.     
  156.    
  157.     
  158.     public function formatDate($data_chamado$object)
  159.     {
  160.         $data_chamado = new DateTime($data_chamado);
  161.         return $data_chamado->format('d/m/Y');
  162.     }
  163.     
  164.     public function verificaPrioridade($id_prioridade)
  165.     {
  166.     
  167.         
  168.        
  169.             
  170. //              if ($id_prioridade == 'ALTA')
  171. //              {
  172. //                  
  173. //                  return "<span style='color:red'>$id_prioridade</span>";
  174. //              }
  175. //              if ($id_prioridade == 'MÉDIA')
  176. //              {
  177. //                  
  178. //                  return "<span style='color:orange'>$id_prioridade</span>";
  179. //              }
  180. //              if ($id_prioridade == 'BAIXA')
  181. //              {
  182. //                  
  183. //                  return "<span style='color:green'>$id_prioridade</span>";
  184. //              }
  185.        
  186.         
  187.         
  188.     }
  189.     
  190.     function show()
  191.     {
  192.         $this->onReload();
  193.         $this->form->clear();
  194.         parent::show();
  195.     }
  196.     
  197.     
  198.     
  199. }
  200. ?>
</your>