formatar campo data com conteudo null

Delphi

26/12/2007

Boa tarde!

Uma ajudinha, eh o seguinte estou mostrando o resultado desta query em um DBGRID e preciso formatar os campos de datas:
EMISSAO, VENCTO E BAIXA soh que o campo BAIXA soh vai estar preenchido quando o titulo for baixado no sistema , portando muitos titulos tem o campo BAIXA em branco e se tentar usar o mesmo formato para os campos EMISSAO e VENCTO quando tem um campo BAIXA em branco da erro.
A pergunta eh como faco para mostrar o campo data D_BAIXA com o mesmo formato dos campos D_EMISSAO e D_VENCTO, mesmo tendo alguns registros com o campo D_BAIXA em branco?

        SD_SE1.Close;
        SD_SE1.DataSet.CommandText := ´´+
          ´SELECT ´+
          ´       PARCELA AS PARC, ´+
          ´       NUM        AS NUM, ´+
          ´       TO_DATE(D_EMISSAO, ´´YYYY/MM/DD´´) AS DATA_EMISSAO, ´+
          ´       TO_DATE(D_VENCTO, ´´YYYY/MM/DD´´) AS DATA_VENCTO,  ´+
          ´       D_BAIXA     AS DATA_BAIXA, ´+
          ´       VALOR    AS VALOR, ´+
          ´  FROM SB00007H ´+
          ´ ORDER BY VENCTO DESC ´;
        SD_SE1.Open;



Claudio_f

Claudio_f

Curtidas 0

Respostas

Andersongaucho

Andersongaucho

26/12/2007

Olá Cláudio,

Você precisa usar Coalesce.
Dá uma olhada nesse artigo, deve te ajudar.
https://www.devmedia.com.br/articles/viewcomp.asp?comp=2141

Um abraço
Anderson Gaúcho

Boa tarde! Uma ajudinha, eh o seguinte estou mostrando o resultado desta query em um DBGRID e preciso formatar os campos de datas: EMISSAO, VENCTO E BAIXA soh que o campo BAIXA soh vai estar preenchido quando o titulo for baixado no sistema , portando muitos titulos tem o campo BAIXA em branco e se tentar usar o mesmo formato para os campos EMISSAO e VENCTO quando tem um campo BAIXA em branco da erro. A pergunta eh como faco para mostrar o campo data D_BAIXA com o mesmo formato dos campos D_EMISSAO e D_VENCTO, mesmo tendo alguns registros com o campo D_BAIXA em branco?
        SD_SE1.Close;
        SD_SE1.DataSet.CommandText := ´´+
          ´SELECT ´+
          ´       PARCELA AS PARC, ´+
          ´       NUM        AS NUM, ´+
          ´       TO_DATE(D_EMISSAO, ´´YYYY/MM/DD´´) AS DATA_EMISSAO, ´+
          ´       TO_DATE(D_VENCTO, ´´YYYY/MM/DD´´) AS DATA_VENCTO,  ´+
          ´       D_BAIXA     AS DATA_BAIXA, ´+
          ´       VALOR    AS VALOR, ´+
          ´  FROM SB00007H ´+
          ´ ORDER BY VENCTO DESC ´;
        SD_SE1.Open;



GOSTEI 0
Claudio_f

Claudio_f

26/12/2007

Ola Anderson!

Eu ateh que tentei usar o COALESCE mas nao consigui formatar a saida do campo!

Obrigado!


GOSTEI 0
Claudio_f

Claudio_f

26/12/2007

Fiz uma gambiara e me trouxe o campo formatado e os registros nulos me trouxe ´ / / ´, era isso que eu estava querendo, por enquanto fica assim.
[b:b31cb03b1b]
SUBSTR(D_BAIXA,7,2)||´/´||SUBSTR(D_BAIXA,5,2)||´/´||SUBSTR(D_BAIXA,1,4) AS BAIXA,
[/b:b31cb03b1b]

SD_SE1.Close; 
        SD_SE1.DataSet.CommandText := ´´+ 
          ´SELECT ´+ 
          ´       PARCELA AS PARC, ´+ 
          ´       NUM        AS NUM, ´+ 
          ´       TO_DATE(D_EMISSAO, ´´YYYY/MM/DD´´) AS DATA_EMISSAO, ´+ 
          ´       TO_DATE(D_VENCTO, ´´YYYY/MM/DD´´) AS DATA_VENCTO,  ´+      
          ´       SUBSTR(D_BAIXA,7,2)||´/´||SUBSTR(D_BAIXA,5,2)||´/´||SUBSTR(D_BAIXA,1,4) AS BAIXA, ´+ 

          ´       VALOR    AS VALOR, ´+ 
          ´  FROM SB00007H ´+ 
          ´ ORDER BY VENCTO DESC ´; 
        SD_SE1.Open; 



[b:b31cb03b1b][/b:b31cb03b1b]


GOSTEI 0
POSTAR