quot;could not convert variant of type null type (double)q
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
Curtidas 0
Respostas
Adriano_servitec
08/06/2008
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]
GOSTEI 0
Adriano_servitec
08/06/2008
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
GOSTEI 0