Fórum Campo calculado na Query #51429
28/06/2005
0
tenho uma query com ´select * from clientes´
adicionei os campos no fieldseditor e criei um campo Calculado tipo boolean que ao abrir a query fica como false.
tenho essa rotina no calcfields da query:
if x = 1 then begin if Qcheck.Value = True then Qcheck.Value := False else if Qcheck.Value = False then Qcheck.Value := True; end;
x recebe 1 somente depois q a query é aberta.
então o que eu preciso é o seguinte:
ao selecionar um registro no grid eu preciso q o campo boolean calculado receba seu valor inverso, conforme rotina acima.
só q o calcfields atualiza todos os registros e não só o que tenho selecionado.
como posso resolver?
obrigado
Diogo
Diogoalles
Curtir tópico
+ 0Posts
30/06/2005
Diogoalles
ainda ñ consegui resolver.. alguem poderia me ajudar?
Gostei + 0
30/06/2005
Beppe
if x = 1 then Qcheck.Value := not Qcheck.Value;
Se vc quer executar só em um registro, não coloque no OnCalcFields, coloque em algum lugar em que vc pode assegurar que só executará no registro selecionado.
Gostei + 0
30/06/2005
Diogoalles
por se tratar dum campo camlculado duma Query
ele não deixa mudar de valor no DbgridOnCellClick por exemplo. Dá erro.
eu só conheco o calcfields pra atribuir valor ao campo calculado.
teria outro evento que fizese essa alteração somente no registro selecionado?
Gostei + 0
01/07/2005
Sandra
Não testei se funciona... é apenas uma idéia. Experimente assim:
- deixe a opção do DBGrid dgRowSelect = True;
- ative o evento OnClick para o DBGrid;
- e coloque seu código para o OnClick.
Dica do DTDelphi:
private procedure DBGridClick(Sender: TObject);
implementation
{$R *.DFM}
procedure TForm1.DBGridClick(Sender: TObject);
begin
ShowMessage(´Clicou no DBGrid.´); // coloque o seu código aqui
end;
procedure TForm1.FormCreate(Sender: TObject); begin DBGrid1.ControlStyle := DBGrid1.ControlStyle + [csClickEvents]; TForm(DBGrid1).OnClick := DBGridClick; end;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)