Diferença de Datas QuickReport

Delphi

22/10/2004

1- Estou utilizando o código abaixo p/tentar obter a diferença de dias entre duas datas. Se as datas forem do mesmo mês dá tudo certo mas se forem meses diferentes está dando problema e não consigo acertar esse código. Alguém tem alguma sugestão?

var
Year1, Month1, Day1: Word;
Year2, Month2, Day2: Word;
begin

DecodeDate( qry1DT_SAIDA.Value, Year1, Month1, Day1 );
DecodeDate( qry2DT_ENTRADA.Value, Year2, Month2, Day2 );

qrlDifData.Caption := IntToStr( Day1 - Day2 );


2- Como faço para formatar o modo de exibição de um campo que quero exibir como moeda em um componente QRDBText, utilizado no QuickReport?
Para um QRLabel fiz o seguinte:

Label1.Caption := Format(´R$ ¬8.2f´, [Variavel1]); RESULTADO = R$ 21,00

Agora quero formatar os valores de um QRDBText, mas ele não possue nenhuma propriedade value e no caption não funciona. Como posso fazer isso?

Obrigada


Barbara.michele

Barbara.michele

Curtidas 0

Respostas

Anarquistaoi

Anarquistaoi

22/10/2004

Bom, quanto ao esquema de obter a diferença de dias entre duas datas, se você estiver usando o Delphi6 pra frente, existe uma função que faz isso automaticamente: DaysBetween(Data_Inicial, Data_Final). Ex: qrlDifData.Caption := DaysBetween(qry1DT_SAIDA.Value,qry2DT_ENTRADA.Value)
Agora quanto ao relatório tente o seguinte:
1º) Colocar este mesmo esquema que você usou para o QRLabel, só que no evento OnPrint do QRDBText, utilize a variável Value. Ex: Value := Format(´R$ ¬8.2f´, [Variavel1]); RESULTADO = R$ 21,00
2º) Coloque uma mascara na propriedade Mask do componente QRDBText. Ex: R$ #,,0.00
3º) Colocar a mascara na fonte de dados, mas exatamente no field, na propriedade DisplayFormat. Ex: R$ ,,0.00.
Espero que tenha ajudado....
Até +


GOSTEI 0
Barbara.michele

Barbara.michele

22/10/2004

Estou utilizando o Dephi 5 e não achei nada parecido com essa função. Também tentei o seguinte:

DifData.Caption := IntToStr(qry1DT_SAIDA.Value - qry1DT_ENTRADA.Value);

Mas não está dando certo. Também pensei em fazer o seguinte:

var
Year1, Month1, Day1: Word;
Year2, Month2, Day2: Word;
begin

DecodeDate( qryHotelHOVI_DT_SAIDA.Value, Year1, Month1, Day1 );
DecodeDate( qryHotelHOVI_DT_ENTRADA.Value, Year2, Month2, Day2 );
If Month1 > Month2 then
qrlDifData.Caption := IntToStr( Day1 - Day2 );
else
{ Não consegui achar uma solução se os meses forem diferentes}


GOSTEI 0
Madskull

Madskull

22/10/2004

cara se vc so precisa do numero de dias tente

var
i : real;

begin
i:= datainicial-datafinal;
end;


GOSTEI 0
POSTAR