Array
(
)

Campo novo em DBGrid

Tida
   - 20 dez 2005

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.


Adriano Santos
   - 20 dez 2005


Citação:
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?


Marcio.theis
   - 20 dez 2005

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


Adriano Santos
   - 20 dez 2005


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


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.


Tida
   - 20 dez 2005

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.


Adriano Santos
   - 20 dez 2005


Citação:
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:

#Código


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;