Usar nome do item ao invés de ID no mestre detalhe TQuickGrid Olá pessoal, Tenho esse trecho de código: Gostaria de usar assim: ...
EB
Usar nome do item ao invés de ID no mestre detalhe TQuickGrid  
Olá pessoal,
Tenho esse trecho de código:

 
  1. <?php
  2. $this->detail_list = new BootstrapDatagridWrapper(new TQuickGrid);
  3. $this->detail_list->style = "min-width: 700px; width:100%;margin-bottom: 10px";
  4. $this->detail_list->setId('Frequencia_list');
  5. $this->detail_list->addQuickColumn('Turma', 'turma_id', 'left', 100);
  6. ?>


Gostaria de usar assim:
 
  1. <?php
  2. $this->detail_list->addQuickColumn('Turma', 'turma->nome', 'left', 100);
  3. ?>


Mas o TQuickGrid não aceita.

Alguém pode me dar esse apoio por favor?
Agradeço.

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework Quero me inscrever agora!

Comentários (2)


NR

Edimar, no master/detail isso funciona um pouco diferente.

Quando usamos uma grid em uma listagem normal, você está trabalhando com objetos do tipo do seu modelo, com isso a associação pode ser usada corretamente.

No caso de grids usadas nos forms master/detail, os dados utilizados pela grid são inicialmente arrays, convertidos na onReload para objetos genéricos do php. Dessa forma não é possível acessar a associação diretamente na criação da coluna.

Aconselho a criar uma coluna "turma_nome" por exemplo e preparar as demais funções para preenchimento desse campo:
 
  1. <?php
  2. $this->detail_list->addQuickColumn('Turma', 'turma_nome', 'left', 100);
  3. // onEdit
  4. foreach( $items as $item )
  5. {
  6. ...
  7. $session_items[$item_key]['turma_nome'] = $item->turma->nome;
  8. // onSaveDetail
  9. $turma = new Turma($data->turma_id); // supondo que Turma seja o model utilizado
  10. $items[ $key ]['value'] = $turma->nome;
  11. TSession::setValue(__CLASS__.'_items', $items);
  12. ?>

O exemplo que passei considera uma classe master/detail criada pelo Studio. Pode ser que seu código tenha algumas diferenças, mas a ideia é por aí, gravar a informação da turma no item que fica salvo na sessão.
EB

Entendi @Nataniel.
Vou tentar aqui.

Muito obrigado!