DD
variável $this->seq não disponível em uma função da classe
Pessoal, está me acontecendo um erro que ainda não descobri a causa.
Eu já uso em outras classes master/detail uma variável $this->seq que uso para saber qual o próximo id a adicionar no detail, só que nesta classe ela está me chegando vazia quando entra na função onAtributoAdd.
class Exemplo extends TPage
{
protected $form; // form
protected $formFields;
protected $atributos_list;
protected $atributos_seq;
public function onAtributoAdd($param)
{
try
{
$data = $this->form->getData();
var_dump('onAtributoAdd: '.$this->atributos_seq); # aqui me mostra como null
$atributos = TSession::getValue('atributos');
if (trim($data->atributo_id) == ''){
$this->atributos_seq = $this->atributos_seq + 1;
$key = $this->atributos_seq;
}else{
$key = $data->atributo_id;
}
$atributos[ $key ] = array('id' => $key,
'atributo_id_old' => $data->atributo_id_old,
'atributo_codigo' => $data->atributo_codigo,
'atributo_descricao' => $data->atributo_descricao
);
TSession::setValue('atributos', $atributos);
// clear product form fields after add
$data->atributo_id = '';
$data->atributo_id_old = '';
$data->atributo_codigo = '';
$data->atributo_descricao = '';
$this->form->setData($data);
$this->onReload( $param );
$this->onReloadAtributos( $param );
}
catch (Exception $e)
{
$this->form->setData( $this->form->getData());
new TMessage('error', $e->getMessage());
}
public function onReload($param)
{
aqui ele joga da tabela na lista e atribui o ultimo id no $this->atributos_seq.
eu mostro com var_dump o valor aparece o valor correto
}
}
}
Eu já uso em outras classes master/detail uma variável $this->seq que uso para saber qual o próximo id a adicionar no detail, só que nesta classe ela está me chegando vazia quando entra na função onAtributoAdd.
class Exemplo extends TPage
{
protected $form; // form
protected $formFields;
protected $atributos_list;
protected $atributos_seq;
public function onAtributoAdd($param)
{
try
{
$data = $this->form->getData();
var_dump('onAtributoAdd: '.$this->atributos_seq); # aqui me mostra como null
$atributos = TSession::getValue('atributos');
if (trim($data->atributo_id) == ''){
$this->atributos_seq = $this->atributos_seq + 1;
$key = $this->atributos_seq;
}else{
$key = $data->atributo_id;
}
$atributos[ $key ] = array('id' => $key,
'atributo_id_old' => $data->atributo_id_old,
'atributo_codigo' => $data->atributo_codigo,
'atributo_descricao' => $data->atributo_descricao
);
TSession::setValue('atributos', $atributos);
// clear product form fields after add
$data->atributo_id = '';
$data->atributo_id_old = '';
$data->atributo_codigo = '';
$data->atributo_descricao = '';
$this->form->setData($data);
$this->onReload( $param );
$this->onReloadAtributos( $param );
}
catch (Exception $e)
{
$this->form->setData( $this->form->getData());
new TMessage('error', $e->getMessage());
}
public function onReload($param)
{
aqui ele joga da tabela na lista e atribui o ultimo id no $this->atributos_seq.
eu mostro com var_dump o valor aparece o valor correto
}
}
}
Denilson, verifique se existe a função show nessa classe e se ela está chamando a função onReload. Exemplo abaixo gerado pelo master/detail padrão do Studio:
Nataniel, obrigado pela dica,
existe a função show()
o que tem diferente das outras classes que uso master/detail é que tenho dois onReload, na verdade tenho os ítens e dentro dos ítens um outro datagrig de outra tabela, tipo atributos do item, é nesse Segundo reload é que não tá funcionando a variável sequencia no momento de adicionar um atributo do item, quando edito, mostra conteúdo da variável, mas quando tento adicionar ela está vazia.