20/12/2005

Campo novo em DBGrid

Olá pessoal

Tenho um DBGrid ligado a um DSource, quero criar um campo só no dbgrid que não faz parte da minha tabela, por exemplo possuo o campo SOMASAIDA que é um decimal,12,2 e quero criar um campo onde me mostre este valor dividido por 12 pra dar a média do ano.


Tida

Respostas

20/12/2005

Adriano Santos

Olá pessoal Tenho um DBGrid ligado a um DSource, quero criar um campo só no dbgrid que não faz parte da minha tabela, por exemplo possuo o campo SOMASAIDA que é um decimal,12,2 e quero criar um campo onde me mostre este valor dividido por 12 pra dar a média do ano.


Usa um campo calculado, não é mais facil?


Responder Citar

20/12/2005

Marcio.theis

Como o colega [b:370818878b]Adriano Santos[/b:370818878b] disse, vc pode criar uma campo caluclado e colocar no OnCalcField de sua Query ou Table o cálculo que deseja.


Responder Citar

20/12/2005

Adriano Santos

[quote:d040cab896=´/]/]@t´]Como o colega [b:d040cab896]Adriano Santos[/b:d040cab896] disse, vc pode criar uma campo caluclado e colocar no OnCalcField de sua Query ou Table o cálculo que deseja.[/quote:d040cab896]

Para inserir um campo calculado clique duas vezes na TQuery. Quando abrir o FieldEditor clique em uma área branca da janelinha e clique depois em Add New Field, la vc vai encontrar a opção Calculated.


Responder Citar

20/12/2005

Tida

Olá Adriano

Quanto a forma de calculo, fiz e funcionou, só tem um porém, o divisor eu vou usar uma variavel, e pelo que senti num erro que deu, não adianta eu especificar o valor na variavel na procedure onde cria o form, pois antes disso o clientdataset já vai ser rodado, e se minha variavel estiver sem valor, acaba dando o erro de divisão by zero.
Qual seria a forma ideal pra isso Adriano.


Responder Citar

20/12/2005

Adriano Santos

Olá Adriano Quanto a forma de calculo, fiz e funcionou, só tem um porém, o divisor eu vou usar uma variavel, e pelo que senti num erro que deu, não adianta eu especificar o valor na variavel na procedure onde cria o form, pois antes disso o clientdataset já vai ser rodado, e se minha variavel estiver sem valor, acaba dando o erro de divisão by zero. Qual seria a forma ideal pra isso Adriano.


Como é? Fiquei meio confuso. Você especifica o valor da variável depois que o ClientDataSet é aberto?
Se este for o problema, pode fazer uma checagem:

procedure TForm1.Button1Click(Sender: TObject);
var
  Variavel, Resultado: Double;
begin
  Variavel := 0;
  Resultado := 0;
  try
    Resultado := 100 / Variavel;
  except on EDivByZero do
    ShowMessage(´Divisão por zero não é válida.´);
  end;
end;



Responder Citar