AN
Tform + TDataGrid em Composições
Fechado
Bom, utilizo bastante o TMultiField porém como tenho vários campos desta vez, achei melhor fazer um formulário utilizando o Form Design. No Form Design criei um formulário em uma 3ª aba, dois botões e uma datagrid para adicionar os dados do formulário na datagrid. No meu botão Salvar (que deveria adicionar o objeto na datagrid), ao ser chamado, ele executa uma função chamada salvarEndereco e logo após ele inicia um formulário novo, voltando na primeira aba do TNotebook. Segue o código que estou utilizando.
E a minha função onReloadDatagridEndereco:
Segui o passo a passo do tutor TForm + TDatagrid..
Alguma sugestão?
Obrigado!
- <?php
- function salvarEndereco($param){
- try
- {
- $object = $this->form->getData('Endereco');
-
- $persisted_objects = TSession::getValue('persisted_objects');
-
- $persisted_objects[$object->id] = $object;
-
- TSession::setValue('persisted_objects', $persisted_objects);
-
- $this->datagridEnderecos->addItem($object);
- new TMessage('info',$object->LOGRADOURO);
-
- new TMessage('info', 'Recors saved');
-
- $this->onReloadDatagridEndereco;
-
-
-
- }
- catch (Exception $e) // in case of exception
- {
-
- }
-
- }
- ?>
E a minha função onReloadDatagridEndereco:
- <?php
- function onReloadDatagridEndereco($param = NULL)
- {
- try
- {
- $this->datagrid->clear();
- $persisted_objects = TSession::getValue('persisted_objects');
-
- if ($persisted_objects)
- {
- // iterate the collection of active records
- foreach ($persisted_objects as $object)
- {
- // add the object inside the datagrid
- $this->datagridEnderecos->addItem($object);
- }
- }
- $this->loaded = true;
- }
- catch (Exception $e) // in case of exception
- {
- // shows the exception error message
- new TMessage('error', '<b>Error</b> ' . $e->getMessage());
- }
- }
- ?>
Segui o passo a passo do tutor TForm + TDatagrid..
Alguma sugestão?
Obrigado!
Aurélio,
Isso não é uma falha, é o comportamento correto, veja que você criou uma ação que envia dados via POST.
Sugiro usar duas outras alternativas:
1) TMultiField como nesse exemplo no form de contatos:
www.adianti.com.br/framework_files/tutor/index.php?class=CustomerFor
2) TDataGrid da mesma maneira que você vez, mas postando junto os dados do formulário de fora:
www.adianti.com.br/framework_files/tutor/index.php?class=SaleForm&am
PS: Na próxima versão do Studio, terá um gerador de telas para a abordagem (2).
Att,
Pablo