quot;could not convert variant of type null type (double)q
08/06/2008
0
Pessoal,
Teintei no evento onGetText do campo agregado assim
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
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
Mais não era campos agregados e sim não formatava o clientdataset no dbgrid, agora no delphi 7 formata no dbgrid, mais os campos agregados não msotra formatado, nem adiante eu usar o dispalyformat do field e nem a propriedade currency = true que ele nem reconhece o formato em moeda.
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
+ 0
Responder
Posts
08/06/2008
Adriano_servitec
Outro problema com este erro
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
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]
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]
Responder
08/06/2008
Adriano_servitec
Outro problema com este erro
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
E se modificar o tamanho na grade ele mostra um erro [color=red:a965e7f54d]´could not convert variant of type null into type (double)´[/color:a965e7f54d]
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
Responder
Clique aqui para fazer login e interagir na Comunidade :)