Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Capturar dados de TCheckGroup Galera, Estou criando um sistema para gerenciamento de restaurante e gostaria fazer um controle de perfil de usuário usando TCheckGroup para marcar os dados do perfil desejado. Não estou conseguindo pegar estes dados na função onSave. Eles são passados através do getData()?...
TF
Capturar dados de TCheckGroup  
Fechado
Galera,
Estou criando um sistema para gerenciamento de restaurante e gostaria fazer um controle de perfil de usuário usando TCheckGroup para marcar os dados do perfil desejado. Não estou conseguindo pegar estes dados na função onSave. Eles são passados através do getData()?

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)


PD

Tiago,

Alguns cuidados que você deve ter:
1) Caso tenha usado a classe TForm, lembrar de passar o objeto no setFields(). Se usar a classe TQuickForm isso não é necessário;
2) Dê um var_dump() no retorno do $this->form->getData() para ver se o dado está vindo.

Se o dado está vindo no onSave(), você precisará convertê-lo em string, dado que o resultado de um TCheckGroup é um vetor. Por exemplo, se o campo chama-se "check", o seguinte código poderia ser utilizado para convertê-lo em string:

$objeto = $this->form->getData('SuaClasse');
$objeto->check = implode(',', $objeto->check)

Lembrando que no onEdit() você terá de fazer o inverso, usando a função explode().

Att,
Pablo

TF

Pablo,

Quanto dou um var_dump() vem dados vazios. veja parte de meu código, que monta a $check e o onSave:
Transaction::open('bdCardapio');

//cria variavel de criterios
$criterio = new TCriteria();
$criterio->add(new TFilter('id_user', '=', "$id_user"));

$repositorio = new TRepository('perfilacesso');
$colecao = $repositorio->load($criterio);
$items = array();

foreach ($colecao as $colecao) {
$campos = array(
'Controle de caixa' => $colecao->controle_caixa,
'Cardápío' => $colecao->ver_cardapio,
'Controle de estoque' => $colecao->controle_estoque,
'Gerenciamento de cardápio' => $colecao->editar_cardapio
);
}

foreach ($campos as $key => $value) {
$items[$key] = ''.$key.'

';
if($value == 1){
$checado[] = $key;
}
}
TTransaction::close();
$check->setValue($checado);
$check->addItems($items);//inclui items do check

//onSave

public function onSave(){
try {

TTransaction::open('bdCardapio');

$objeto = $this->janelaUser->getData('PerfilAcesso');
var_dump($objeto);

TTransaction::close();

} catch (Exception $ex) {
new TMessage('error', $ex->getMessage());
TTransaction::rollback();
}
}
PD

Tiago,

Por favor, poste o código inteiro no pastebin.com e coloque o link aqui.
Fica difícil avaliar somente algumas partes, o erro pode estar em outras partes não visíveis.

Att,
Pablo
TF

Segue o código:
pastebin.com/raw.php?i=xytDftaM (Classe que contém os TCheckGroup)

grato por sua ajuda.
PD

Tiago,

Desculpe a demora, mas o código foi removido do pastebin. Você conseguiu encontrar a falha?

Att,