JF
Dúvida no componente TDBSeekButton
Fechado
Estou utilizando o componente TDBSeekButton que funciona perfeitamente, trazendo o resultado selecionado para o campo desejado, como mostro
Até ai tudo bem. O problema é quando eu ABRO um formulário em modo EDIÇÃO o campo $pessoa está em branco e eu preciso de algo tipo pessoa->pessoa. No tutor, classe FormSeekButtonView não mostra isso, somente como salva. Acredito que a solução seja no método odEdit, mas como? Qual é a sintaxe?
- <?php
- {...}
- 2119pessoa = new ">TDBSeekButton( 'idpessoa',
- 'cia',
- 'form_Contrato',
- 'pessoa',
- 'pessoa',
- 'idpessoa',
- 'pessoa');
- $pessoa = new TEntry('pessoa');
- {...}
- ?>
Até ai tudo bem. O problema é quando eu ABRO um formulário em modo EDIÇÃO o campo $pessoa está em branco e eu preciso de algo tipo pessoa->pessoa. No tutor, classe FormSeekButtonView não mostra isso, somente como salva. Acredito que a solução seja no método odEdit, mas como? Qual é a sintaxe?
Acho que é algo parecido com isso:
www.adianti.com.br/forum/pt/view_2112?associacao
João, é a configuração de associação no seu model. Poste o model principal do seu form pra gente dar uma olhada.
Acho que não é por ai (na classe model), pois utilizo a mesma model em uma List e funciona perfeitamente, como mostro:
Mas eu acho que não estou sendo entendido, então explico melhor:
Tenho um campo TDBSeekButton em um formulário (de contrato) que busca os clientes e joga o NOME dele em um campo (TEntry) Vazio. Até aqui está tudo bem (segui o exemplo da página 133 - Botão de busca de registro). Está salvando o id deste cliente na FK da tabela Contrato, como o esperado.
O problema está na hora da EDIÇÃO dos registros (no livro não mostra). Como editar o campo "Nome do Cliente" se na tabela "Contrato" só tem seu ID?
Acho que a solução está no método onEdit, como mostro na linha 31 aproximadamente:
Mas daí nesse caso tu não edita o nome do cliente no formulário de contrato. Tu edita no formulário de cliente. Como está relacionado, vai "alterar" automaticamente lá na outra. No formulário de contrato no máximo tu alterada o cliente para outro (obviamente desconheço a regra do negócio mas acredito que após firmado o contrato o sistema não deveria deixar alterar o cliente(ou deixar somente para um usuário muito 'privilegiado")). O TEntry com o nome do cliente eu até aconselho a deixar setEditable(false).
Agora que me liguei que tu é do baita chão.
Abraço.
MAS BAH, TCHÊ! Não me perguntes onde fica o Alegrete!!!
Alexandre, você tem toooda a razão! Eu não quero editar o nome do contratante no formulário do contrato, eu só quero exibi-lo, mas como fazer quando o contrato está em edição?
Pouco sei de POO (venho da estruturada), mas acredito que deveria ter algo como $this->form->contratante = $object->pessoa->pessoa; no método onEdit</>. Isso não causa erro, mas não preenche o campo :(
as tabelas em resumo são assim:
PS: Eu conheço alguns FERREIRA DA COSTA, vizinhos meus. Vc. é desta família? (também procurei vc no Face, mas acho que seu perfil é um que está bloqueado. kkkk)
Deve estar faltando algo tipo isso no teu model de contrato:
Estou começando também, então pode ter algum erro nesse trecho que postei, mas é por aí.
PS: Da uma olhada no teu e-mail.
Quando houver uma seek com campos "city_id" e "city_name" (por exemplo), vc precisa fazer um get_city_name() na model.
Assim, quando carregar o objeto, virá o nome junto...:
Att,
Duas soluções:
1) Preencher o atributo complementar no onEdit() do form;
2) Criar na model que você está editando um método get_outrocampo(), explico:
Ex: No cadastro de clientes, tem uma seek para cidades. Basta fazer um get_city_name() na model de clientes:
Assim, já virá o objeto pronto na edição,
Att,
neste exemplo Pablo, como eu faria para exibir o estado da cidade, o sigla, pois poderia ter mais de uma cidade com o mesmo nome??
Estou tendo o mesmo problema mas não consegui solucionar.