HI,

tudo bom

como faço para atribuir o valor do displayformat em tempo de execução ?
já paguei várias dicas na net, mas nenhum deu resultado
talvez o modo como tou trabalhando com o Grid, não sirva as dicas que peguei

os campos do grid são definidos em tempo de execução e também são 
atribuídos algumas propriedades, como alinhamento, cor, formato

e só não consegui trabalhar com a formatação pq não pertence ao TField

tentei fazer que nem essa dicam ,mas nada feito
TNumericField(Table1.Fields[i]).DisplayFormat := '0.000';


segue o meu código a baixo
será que terei que criar os TField da query ou do grid, para que funcine ?

   SQL := CSelect;
   SQL := SQL + CFrom;
   SQL := SQL + CWhere;


   cdsGeral.Close;
   dtsGeral.Close;
   dtsGeral.CommandText := SQL;
   dtsGeral.Open;

   cdsGeral.Open;

    //tem um for aí pq o original era cdsGeral.Fields[], já tenteio de 
tudo, hehehe

   dmFiltro.cdsBuilderCons.First;
   for I := 0 to dmFiltro.cdsBuilderCons.RecordCount - 1 do begin
     NomeCampo := dmFiltro.cdsBuilderCons.FieldByName('CAMPO').AsString;

     cdsGeral.Fields.FindField(NomeCampo).DisplayLabel := 
dmFiltro.cdsBuilderCons.FieldByName('CABECALHO').AsString;
     cdsGeral.Fields.FindField(NomeCampo).DisplayWidth := 
dmFiltro.cdsBuilderCons.FieldByName('TAMANHO').AsInteger;
     case dmFiltro.cdsBuilderCons.FieldByName('ALINHAMENTO').AsInteger of
     1 : cdsGeral.Fields.FindField(NomeCampo).Alignment := taLeftJustify;
     2 : cdsGeral.Fields.FindField(NomeCampo).Alignment := taCenter;
     3 : cdsGeral.Fields.FindField(NomeCampo).Alignment := taRightJustify;
     end;

     if Length(dmFiltro.cdsBuilderCons.FieldByName('MASCARA').AsString) > 0 
then
// aqui de acordo com o tipo de campo definido pelo usuario eu tenho 
atribuir a formatação

       case dmFiltro.cdsBuilderCons.FieldByName('TIPOCAMPO').AsString[1] of
        'R' : 
TFloatField(cdsGeral.Fields.FindField(NomeCampo)).DisplayFormat := 
dmFiltro.cdsBuilderCons.FieldByName('MASCARA').AsString;
        'D' : 
TDateField(cdsGeral.Fields.FindField(NomeCampo)).DisplayFormat := 
dmFiltro.cdsBuilderCons.FieldByName('MASCARA').AsString;
        'H' : begin
                (cdsGeral.FieldByName(NomeCampo) as 
TSQLTimeStampField).DisplayFormat := 
dmFiltro.cdsBuilderCons.FieldByName('MASCARA').AsString;
              end;
        'T' : 
TDateTimeField(cdsGeral.Fields.FindField(NomeCampo)).DisplayFormat := 
dmFiltro.cdsBuilderCons.FieldByName('MASCARA').AsString;
        end;

   dmFiltro.cdsBuilderCons.Next;
   end;

Intel +

Paulo Alexsandro - Maceió/Alagoas
Programador - Delphi/NS Basic
http://dprogrammer.cjb.net - Exemplos, Dicas, Etc.

Particpante da Casa da Mãe Joana
http://www.cdmj.com.br
Fórum da Casa da mãe Joana, onde você pode tudo... Se limpar os pés antes 
de entrar  

[As partes desta mensagem que não continham texto foram removidas]



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a