Fórum Puxar dados de outro Formulario #445213
12/06/2013
0
Obrigado, a todos, aguardo uma ajuda.
Att, Felipe.
Felipe Arruda
Curtir tópico
+ 0Posts
12/06/2013
Joel Rodrigues
1) Declarar variáveis públicas no form secundário;
2) Ao selecionar o registro, preencher essas variáveis (com Código, Id, Nome, etc);
3) No form principal, você chama o form secundário e após o ShowModal, acessa essas variáveis (afinal, são públicas).
Veja um exemplo:
formClientes := TformClientes.Create(Application); formClientes.ShowModal(); codigoCliente := formClientes.CodigoClienteSelecionado;
Essa é uma forma, mas você poderia muito bem acessar a tabela que está no form secundário direto:
formClientes := TformClientes.Create(Application);
formClientes.ShowModal();
codigoCliente := formClientes.queryClientes.FieldByName('Codigo').AsString;
Qualquer coisa, é só falar.
Gostei + 0
12/06/2013
Felipe Arruda
Vamos la, como sou iniciante em delphi gostaria de uma ajuda mais detalhada.
1) Eu declaro a variavel no FRSecundario, seria isso?
private
{ Private declarations }
public
{ Public declarations }
end;
var
FRPrimario: TFRPrimario;
implementation
uses unitprimario;
2) Essa segunda citação tenho que fazer algo ou ja esta incluso no codigo a frente?
3) O cdigo que vc citou abaixo eu o coloco no FRPrimario? Em qual evento do Formulario? Onde vc cita formClientes, seria meu FRSecundario? o codigocliente que vc tambem citou e uma variavel "var", tenho que cita la também?
Obrigado, aguardo, tenha um bom dia.
Gostei + 0
12/06/2013
Joel Rodrigues
Rapaz, nesse caso sugiro que você faça da segundo forma que eu citei. Vai ser mais rápido e mais fácil pra você~, além de atender bem sua necessidade.
O formClientes que citei é o form secundário sim, no seu caso, o FRSecundario.
Com relação a em que evento fazer o procedimento, aí depende de você, se vai ser em um botão ou em outro controle, por exemplo.
Abraço.
Gostei + 0
12/06/2013
Felipe Arruda
esse codigocleinte que vc citou no seu codigo o que seria?
Gostei + 0
12/06/2013
Joel Rodrigues
Gostei + 0
12/06/2013
Felipe Arruda
Posso mostrar em um DBMemo, ele ligado a minha tabela principal, pois esses dados tem que ficar salvos no banco de dados, a ele tenho um IBTable e um DataSource, não tenho nenhuma query, e necessario essa query?
Gostei + 0
12/06/2013
Joel Rodrigues
E como eu disse, uma vez acessado o valor, você pode fazer o que quiser com ele, inclusive mostrar em um Memo.
Gostei + 0
12/06/2013
Felipe Arruda
procedure TFRAtendimento.DBMemo1Change(Sender: TObject);
var
codigocliente : String;
begin
FRSecundario := TFRSecundario.Create(Application);
FRFRSecundario.ShowModal();
codigoCliente := FRSecundario.IBTable1.FieldByName('Codigo').AsString;
end;
Os erros foram: inves de abrir o formulario primario, abre o secundario, ok. O outro erro e o seguinte, fecho os formularios secundarios para voltar para o primario, quando eu clico no DBMemo abre o formulario secundario, ate ai certo, porem, quero que abra o formualario eu escolha um dos registro da minha tabela que esta sendo mostrada em um DBGrid e ele preenche automaticamento esse campo no meu formulario primario. exemplo que vc me passou so esta abrindo o formulario.
Gostei + 0
12/06/2013
Joel Rodrigues
1) Está abrindo o form secundário: ora, e não é essa a intenção? Abrir o form secundário para que nele o usuário selecione um registro?
2) Você colocou no evento OnChange do Memo, isso não é bom. Utilize um botão ou algo do tipo.
3) Você atribuiu o retorno a uma variável, mas não fez nada relacionado ao memo. Precisaria colocar a variável dentro do memo, por exemplo:
DBMemo1.Lines.Add('Cliente: ' + codigoCliente);Gostei + 0
12/06/2013
Felipe Arruda
a variavel dentro do memo, seria assim:
var
codigocliente : String;
begin
DBMemo1.Lines.Add('Cliente: ' + codigoCliente);
end;
Gostei + 0
12/06/2013
Joel Rodrigues
Gostei + 0
12/06/2013
Felipe Arruda
procedure TFRAtendimento.Button4Click(Sender: TObject);
var
codigocliente : String;
begin
FRErro := TFRErro.Create(Application);
FRErro.ShowModal();
codigoCliente := FRErro.IBTable1.FieldByName('ERRO/PROBLEMA').AsString;
DBMemo1.Lines.Add('ERRO/PROBLEMA: ' + codigoCliente);
end;
Gostei + 0
12/06/2013
Joel Rodrigues
Gostei + 0
12/06/2013
Felipe Arruda
Posso te passar a aplicação para vc ver?
Gostei + 0
12/06/2013
Joel Rodrigues
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)