Lançado Adianti Framework 7.6!
Clique aqui para saber mais
TForm::sendData carrega uma variavel para acionar um $criteria. A ideia seria TDBSeekButton ativando outro TDBSeekButton Construção básica somente para entendimento, um TDBSeekButton aciona "static function" que retorna um valor para $criteria carregar valores em outro TDBSeekButton, e também manter o formulário carregado sempre que alterar o TDBSeekButton. Queria uma ajuda para fazer funcionar este modelo, obrigado. function __construct($param) { parent::__construct($param); ...
IS
TForm::sendData carrega uma variavel para acionar um $criteria. A ideia seria TDBSeekButton ativando outro TDBSeekButton  

Construção básica somente para entendimento, um TDBSeekButton aciona "static function" que retorna um valor para $criteria carregar valores em outro TDBSeekButton, e também manter o formulário carregado sempre que alterar o TDBSeekButton. Queria uma ajuda para fazer funcionar este modelo, obrigado.

function __construct($param)
{
parent::__construct($param);

$ncnes = new TEntry('ncnes');
$nunidade = new THidden('nounidade');
$id = new TEntry('id');
$date = new TDate('date');

$customer_id = new TDBSeekButton('nu_cnes', 'faturamento', 'form_SaleMultiValue', 'SUnidade', 'no_unidade_saude', 'nu_cnes', no_unidade_saude');
$customer_name = new TEntry('no_unidade_saude');

$customer_id->setExitAction(new TAction(array($this, 'onExitAction')));

(isset($param['ncnes']) ? $filtro = $param['ncnes'] : $filtro = '');
$criteria = new TCriteria;
$criteria->add(new TFilter('id_cnes', '=', 'ncnes'));

$profissional = new TDBSeekButton('nu_cpf_prof', 'faturamento', $this->form->getName(), 'SProfissional', 'nome_prof', 'nu_cpf_prof', 'nome_prof', $criteria);
$nome_prof = new TEntry('nome_prof');
parent::add($container);
}

public static function onExitAction($param)
{
$obj = new StdClass;
$obj->ncnes = $product->nu_cnes;
TForm::sendData('form_SaleMultiValue', $obj);
}
Editado 18/01/2023 (há 1 ano) - Clique para ver alterações

Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (4)


NR

Dentro da função estática você teria que fazer um "reload" do formulário. Ex:
  1. <?php
  2. public static function onExitAction($param)
  3. {
  4.      TApplication::postData('meu_form', static::class, 'reloadForm'); // recarregar chamando função fazendo post do form "meu_form"
  5. }
  6. public function reloadForm()
  7. {
  8.      $this->form->setData($this->form->getData()); // preencher form com dados do post, pra manter os dados já digitados
  9. }
  10. ?>

E aí, na validação que você faz no construct, teria que considerar "$param['nu_cnes']", que é o nome do campo da primeira seek.
IS

Nataniel Rabaioli, obrigado por ajudar.

O problema ainda persiste, cada vez que executo, limpa os campos TFieldList meu projeto é baseado no modelo FORM MESTRE-DETALHE DE VENDAS II. tem um, mês que procuro o resultado. Seria algo quase impossivel, porque preciso carregar uma variavel para a criteria com metodo static de preferencia, mas sem fazer reload na pagina, se uso os comandos AdiantiCoreApplication::loadPage ou TApplication::postData o sistema fica instavel hora funciona outra não. carrega os dados por
TForm::sendData mas quando loadpage comeca problema.
IS

A varivel pra criteria tem que ser carregado dentro do metodo construtor. Ou teria como criar o objeto criteria na function e enviar para o formulario?

o sentido seria um TDBSeekButton filtrando o outro TDBSeekButton.
NR

Teste o seguinte:
  1. <?php
  2. public static function onExitAction($param)
  3. {
  4.     $crit = new TCriteria();
  5.     $crit->add(new TFilter('id_cnes''='$param['nu_cnes']));
  6.     TSession::setValue('standard_seek_criteria'$crit);
  7. }
  8. ?>

Neste caso estamos jogando a criteria para a sessão, e a classe da seek que carrega os dados consulta essa chave da sessão e caso tenha valor, utiliza a criteria.