Fórum quot;could not convert variant of type null type (double)q #359651
08/06/2008
0
Teintei no evento onGetText do campo agregado assim
procedure TfrmEfetPagContPagar.cdsTempBancosSomaChequeGetText(
Sender: TField; var Text: String; DisplayText: Boolean);
begin
inherited;
{:Mudar a mascara no BDText de um campo agregate}
{if not Sender.IsNull then //quando não for nulo formatar para
Text := FormatFloat(´#,0.00´,Sender.Value);}
end;Aparece certo, mais se eu ir para outro dado no dbgrid ele some, e se eu não colocar if not sender.isnull ele gera um erro assim
[color=red:4731a45cfd]´could not convert variant of type null type (double)´[/color:4731a45cfd]
No caso até agora só consegui assim
procedure TfrmEfetPagContPagar.DBGrid1ColEnter(Sender: TObject);
begin
inherited;
{:Para formatar um cds estou usando no evento afteropen do cds, pois não está
funcionando as as propriedades currency = true nem displayformat do field no cds}
Curr_Tot := dpsBaixaContPagar[´Soma_Total´];
DBText12.Caption := FormatFloat(´,0.00´,(Curr_Tot));
end;procedure TfrmEfetPagContPagar.DBGrid1ColumnMoved(Sender: TObject;
FromIndex, ToIndex: Integer);
begin
inherited;
{:Para formatar um cds estou usando no evento afteropen do cds, pois não está
funcionando as as propriedades currency = true nem displayformat do field no cds}
Curr_Tot := dpsBaixaContPagar[´Soma_Total´];
DBText12.Caption := FormatFloat(´,0.00´,(Curr_Tot));
end;
procedure TfrmEfetPagContPagar.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
inherited;
{:Para formatar um cds estou usando no evento afteropen do cds, pois não está
funcionando as as propriedades currency = true nem displayformat do field no cds}
Curr_Tot := dpsBaixaContPagar[´Soma_Total´];
DBText12.Caption := FormatFloat(´,0.00´,(Curr_Tot));
end;procedure TfrmEfetPagContPagar.dpsBaixaContPagarAfterOpen(
DataSet: TDataSet);
begin
inherited;
{:Para formatar um cds estou usando no evento afteropen do cds, pois não está
funcionando as as propriedades currency = true nem displayformat do field no cds}
Curr_Tot := dpsBaixaContPagar[´Soma_Total´];
DBText12.Caption := FormatFloat(´,0.00´,(Curr_Tot));
end;procedure TfrmEfetPagContPagar.dpsBaixaContPagarAfterPost(
DataSet: TDataSet);
begin
inherited;
{:Para formatar um cds estou usando no evento afterpost do cds, pois não está
funcionando as as propriedades currency = true nem displayformat do field no cds
neste caso aqui apenas se for feito alguma alteração na tabela}
Curr_Tot := dpsBaixaContPagar[´Soma_Total´];
DBText12.Caption := FormatFloat(´,0.00´,(Curr_Tot));
end;Mais to achando que é muito código repetido para fazer apenas uma coisa, que no caso é apenas para formatar o texto no formato 0,00
Este campo agregado no clientdataset soma o total de uma coluna de um dbgrid.
Estou usando DBExpress + Delphi 7
Ja tive o mesmo problemas com o BDS2006 e tive que formatar assim no evento onGetText
Text := FormatFloat( TFMTBCDField(Sender).DisplayFormat, Sender.AsFloat );
Adriano_servitec
Curtir tópico
+ 0Posts
08/06/2008
Adriano_servitec
Pessoal, como faço para que não seja movido com o mouse sobre as colunas no dbgrid para que não fique aumentando nem diminuindo o tamanho definido.
Tipo travar para que ninguem possa alterar o tamanho da coluna no dbgrid?
É que eu uso este código aqui para mostrar um campo memo no dbgrid
procedure TfrmEfetPagContPagar.dpsBaixaContPagarHISTORICOGetText( Sender: TField; var Text: String; DisplayText: Boolean); begin inherited; if not Sender.IsNull then Text := Sender.AsString; end;
E se modificar o tamanho na grade ele mostra um erro [color=red:1258259d14]´could not convert variant of type null into type (double)´[/color:1258259d14]
Gostei + 0
08/06/2008
Adriano_servitec
procedure TfrmEfetPagContPagar.dpsBaixaContPagarHISTORICOGetText( Sender: TField; var Text: String; DisplayText: Boolean); begin inherited; if not Sender.IsNull then Text := Sender.AsString; end;
Sobre a coluna do DBGrid ja resolvi
DbGrid -> Object Inspector -> Properties-> Options-> dgColumnResize = false;
Só falta aoutra duvida. :D
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)