Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Passar parâmetros de um form para outro form (template) Boa tarde, pessoal. Gente, estou precisando de uma ajuda porque não estou conseguindo raciocinar uma solução agradável, que não leve tanta gambiarra. Tenho em formulário com uma série de dados e dentro desse formulário tenho um card feito em HTML e renderizado via template do Adianti. Nesse card possui um link que ao clicar ele abra uma janela estilo TWindow. Pois bem. Preciso pegar um ...
AA
Passar parâmetros de um form para outro form (template)  
Boa tarde, pessoal.

Gente, estou precisando de uma ajuda porque não estou conseguindo raciocinar uma solução agradável, que não leve tanta gambiarra. Tenho em formulário com uma série de dados e dentro desse formulário tenho um card feito em HTML e renderizado via template do Adianti. Nesse card possui um link que ao clicar ele abra uma janela estilo TWindow. Pois bem. Preciso pegar um ID nesse formulário que será usado para carregar uma grid que está dentro dessa TWindow e, depois, trazer um objeto que foi selecionado nessa TWindow com os dados de volta para esse formulário principalmente.

Quero, na verdade, fazer um comportamento semelhante ao que ocorre com o widget TDBSeekButton, mas não tenho como utilizar esse componente porque preciso carregar mais de um registro, fazendo uma lista de dados dentro do card que está dentro desse formulário principal.

Alguém consegue uma solução?

Desde já, agradeço.

Att.

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)


NR

Você já criou a TWindow? Se sim, já consegue selecionar vários itens?
Você pretende preencher o card com os dados selecionados via javascript ou recarregar todo o form?
AA

Bom dia Nataniel.

1. Já fiz a janela TWindow e já tá funcional, mas não tá carregando os dados na grid porque só estão indo como parâmetros para essa janela apenas o nome do método e o número da sessão e eu preciso levar um código de um dos Campos do formulário principal para servir como criteria.
2. Pretendo recarregar apenas a parte do card.
AA

Nataniel, substitui a ideia da TWindow por uma TMultisearch, para facilitar, e estou salvando um array serializado no campo do banco de dados.
  1. <?php
  2.    $data->cod_assunto serialize($data->cod_assunto);
  3. ?>


Está salvando ok, mas o problemas agora é como posso carregar o array quando editar o registro. No onEdit estou usando a função:
  1. <?php
  2.    $processo = new Processo($key); // instantiates the Active Record //</blockLine>                
  3.    $processo->cod_assunto unserialize($processo->cod_assunto);
  4.    $this->form->setData$processo ); // fill the form
  5. ?>

Mas o campo TMultisearch não aparece carregado com os dados do banco de dados. Se puder ajudar, agradeço.
NR

Tente passar o array contendo somente os ids:
  1. <?php
  2. $processo->cod_assunto array_keys(unserialize($processo->cod_assunto));
  3. ?>

AA

Tentei esse método, Nataniel, mas não funcionou.

Porém, depois de estudar muito o código e debugar percebi que o problema é que no construtor o TMultiSearch não era populado com todos os registros, já que seus dados são populados dinamicamente, a partir de um registro preenchido numa TCombo. Acho que por isso o onEdit não conseguia carregar os dados porque ficava sem referência no construtor.

A solução que consegui foi carregar todos os dados, sem nenhum filtro, logo no construtor. Dessa forma o onEdit passou a funcionar com o meu código. O problema é que não sei se é uma boa prática isso porque já carregar no construtor cerca de 5.000 registros penso que implica negativamente no desempenho. Mas, de qualquer forma, enquanto não acho uma solução melhor, é a que tá funcionando.

Obrigado, Nataniel.