Fórum Dúvida função de extenso #297022
26/09/2005
0
a função do dia de hoje...
var meses: array[1..12] of String; dia, mes, ano: Word; begin meses[1]:= ´Janeiro´; meses[2]:= ´Fevereiro´; meses[3]:= ´Março´; meses[4]:= ´Abril´; meses[5]:= ´Maio´; meses[6]:= ´Junho´; meses[7]:= ´Julho´; meses[8]:= ´Agosto´; meses[9]:= ´Setembro´; meses[10]:= ´Outubro´; meses[11]:= ´Novembro´; meses[12]:= ´Dezembro´; DecodeDate(DATE,ano,mes,dia); QRLabel15.Caption := INTTOSTR(dia)+´ dias, do mês de ´+meses[mes]+´ do ano de ´+INTTOSTR(ano);
e a função do dia registrado na tabela..
var meses: array[1..12] of String; Present: TDateTime; dia, mes, ano: Word; begin meses[1]:= ´Janeiro´; meses[2]:= ´Fevereiro´; meses[3]:= ´Março´; meses[4]:= ´Abril´; meses[5]:= ´Maio´; meses[6]:= ´Junho´; meses[7]:= ´Julho´; meses[8]:= ´Agosto´; meses[9]:= ´Setembro´; meses[10]:= ´Outubro´; meses[11]:= ´Novembro´; meses[12]:= ´Dezembro´; Present:= Query1Vencimento.value; QRLabel16.Caption := INTTOSTR(dia)+´ dias, do mês de ´+meses[mes]+´ do ano de ´+INTTOSTR(ano);
Tava querendo saber se tem como incorporar tudo em uma função ...para facilitar a localização do código posteriormente..vlw..t+
Gigatel
Curtir tópico
+ 0Posts
26/09/2005
Rjun
function DataPorExtenso(Data: TDateTime): string; var Meses: Array[1..12] of string; Ano, Mes, Dia: Integer; begin meses[1] := ´Janeiro´; meses[2] := ´Fevereiro´; meses[3] := ´Março´; meses[4] := ´Abril´; meses[5] := ´Maio´; meses[6] := ´Junho´; meses[7] := ´Julho´; meses[8] := ´Agosto´; meses[9] := ´Setembro´; meses[10] := ´Outubro´; meses[11] := ´Novembro´; meses[12] := ´Dezembro´; DecodeDate(Data, ano, mes, dia); result := IntToStr(dia) + ´ dias, do mês de ´ + meses[mes]+´ do ano de ´ + IntToStr(ano); end;
Gostei + 0
26/09/2005
Gigatel
DecodeDate(Present,ano,mes,dia);
aí muda um pouco...
Gostei + 0
26/09/2005
Gigatel
function DataPorExtenso(Data: TDateTime): string; var Meses: Array[1..12] of string; Ano, Mes, Dia: Integer; begin meses[1] := ´Janeiro´; meses[2] := ´Fevereiro´; meses[3] := ´Março´; meses[4] := ´Abril´; meses[5] := ´Maio´; meses[6] := ´Junho´; meses[7] := ´Julho´; meses[8] := ´Agosto´; meses[9] := ´Setembro´; meses[10] := ´Outubro´; meses[11] := ´Novembro´; meses[12] := ´Dezembro´; DecodeDate(Data, ano, mes, dia); result := IntToStr(dia) + ´ dias, do mês de ´ + meses[mes]+´ do ano de ´ + IntToStr(ano); end;
este result é uma variável ?
Gostei + 0
26/09/2005
Marlon Spiess
Gostei + 0
26/09/2005
Gigatel
DecodeDate(Data, ano, mes, dia);
e este
DecodeDate(Present,ano,mes,dia);
é só mesmo uma questão de num ficar repetindo muito o código...
Gostei + 0
26/09/2005
Rjun
DataPorExtenso(Data) ;
ou
DataPorExtenso(Present) ;
Gostei + 0
26/09/2005
Gigatel
DataPorExtenso(Data) ;
DataPorExtenso(Present) ;
Peguei a idéia, más acho que vc num captou o esquema não...função q vc fez é somente para a data de hoje, eu presciso que a função funcione tanto para o dia de hoje ( dia da emissão da nota ) e tbm uma vindo de um banco de dados ( pois são notas, e são gravados datas diferentes ) e ambas funciona simultaniamente...pois um vai para um lugar e a outra va pa outra...
Aki a função do dia de hoje
QRLabel15.Caption := INTTOSTR(dia)+´ dias, do mês de ´+meses[mes]+´ do ano de ´+INTTOSTR(ano);
Aki a função do banco de dados..
QRLabel21.Caption:= INTTOSTR(dia)+´ de ´+meses[mes]+´ de ´+INTTOSTR(ano);
...ou entaum quem num entendeu fui eu... e tem mais dá este erro na função..
[Error] Unit42.pas(146): Types of actual and formal var parameters must be identical
Desculpe o encomodo.. to trabalhando no programa desde ontem, fiz um monte de coisa..acho que num estou raciocinado direito...hehheeh é osso..
Gostei + 0
26/09/2005
Rjun
Eu não tinha reparado que os textos são diferentes. O problema é esse?
Gostei + 0
26/09/2005
Marlon Spiess
QRLabel15.Caption := DataPorExtenso(data);
// onde data é uma variavel ou field de table do tipo data TDate or TDateTime
QRLabel21.Caption := DataPorExtenso(Present);
Gostei + 0
26/09/2005
Gigatel
São diferentes e funciona ao mesmo tempo...prescisava de algo depois de pronto igual a isto Label1.caption := A e Label2.caption := B..num, pode ser naquela primeira função... algo assim
var meses: array[1..12] of String; DataBD: TDateTime; dia, mes, ano: Word; begin meses[1]:= ´Janeiro´; meses[2]:= ´Fevereiro´; meses[3]:= ´Março´; meses[4]:= ´Abril´; meses[5]:= ´Maio´; meses[6]:= ´Junho´; meses[7]:= ´Julho´; meses[8]:= ´Agosto´; meses[9]:= ´Setembro´; meses[10]:= ´Outubro´; meses[11]:= ´Novembro´; meses[12]:= ´Dezembro´; DecodeDate(DATE,ano,mes,dia); DecodeDate(DataBD,ano,mes,dia); QRLabel15.Caption := DataPorExtenso(Data) ; QRLabel15.Caption := result.DataPorExtenso(Present) ; DataBD:= StrToDate(BD_CONT_RECGS_COR_DATA_VENC.Value); QRLabel15.Caption := INTTOSTR(dia)+´ dias, do mês de ´+meses[mes]+´ do ano de ´+INTTOSTR(ano);
Algo parecido isto só vai funcionar no evento QuickRep1BeforePrint do qreport mesmo...
Gostei + 0
26/09/2005
Gigatel
QRLabel15.Caption := DataPorExtenso(data);
// onde data é uma variavel ou field de table do tipo data TDate or TDateTime
QRLabel21.Caption := DataPorExtenso(Present);[/quote:768c1ec07e]
entaum deixa fazer uns testes aki..
Gostei + 0
26/09/2005
Rjun
resourcestring Mensagem1 = ´ ¬d dias, do mês de ¬s do ano de ¬d´; Mensagem2 = ´ ¬d de ¬s de ¬d´; function DataPorExtenso(Data: TDateTime; Mensagem: string): string; var Meses: Array[1..12] of string; Ano, Mes, Dia: Integer; begin meses[1] := ´Janeiro´; meses[2] := ´Fevereiro´; meses[3] := ´Março´; meses[4] := ´Abril´; meses[5] := ´Maio´; meses[6] := ´Junho´; meses[7] := ´Julho´; meses[8] := ´Agosto´; meses[9] := ´Setembro´; meses[10] := ´Outubro´; meses[11] := ´Novembro´; meses[12] := ´Dezembro´; DecodeDate(Data, ano, mes, dia); result := Format(Mensagem, [dia, mes, ano]); end;
Você chamaria as funções da seguinte forma:
QRLabel15.Caption := DataPorExtenso(Date, Mensagem1);
e
QRLabel21.Caption:= DataPorExtenso(Present, Mensagem2);
Veja que dessa forma, você pode usar a função sempre que precisar.
Gostei + 0
26/09/2005
Gigatel
QRLabel27.Caption := DataPorExtenso(data);
deu este erro..
[Error] Unit42.pas(164): Undeclared identifier: ´data´
blzz
Gostei + 0
26/09/2005
Rjun
result := Format(Mensagem, [dia, meses[mes], ano]);
Gostei + 0
26/09/2005
Gigatel
resourcestring Mensagem1 = ´ ¬d dias, do mês de ¬s do ano de ¬d´; Mensagem2 = ´ ¬d de ¬s de ¬d´; function DataPorExtenso(Data: TDateTime; Mensagem: string): string; var Meses: Array[1..12] of string; Ano, Mes, Dia: Integer; begin meses[1] := ´Janeiro´; meses[2] := ´Fevereiro´; meses[3] := ´Março´; meses[4] := ´Abril´; meses[5] := ´Maio´; meses[6] := ´Junho´; meses[7] := ´Julho´; meses[8] := ´Agosto´; meses[9] := ´Setembro´; meses[10] := ´Outubro´; meses[11] := ´Novembro´; meses[12] := ´Dezembro´; DecodeDate(Data, ano, mes, dia); result := Format(Mensagem, [dia, mes, ano]); end;
QRLabel15.Caption := DataPorExtenso(Date, Mensagem1);
QRLabel21.Caption:= DataPorExtenso(Present, Mensagem2);
Cara valeu pelo apoio..achei que era burrice minha más é meio complicado mesmo..más vou testar e posto o resultado..vlw..
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)