PERGUNTAS E RESPOSTAS
 
Bem Vindo, Visitante  Todos os Fórums
  ADVPL
Enviar para a impressoraImprimir  Enviar e-mail para um amigoEnviar Para um Amigo
Precisa estar Logado

Subject Assunto:
Transformar datas setadas em datas automaticas
Versão:
12.1.33
Plataforma:
Microsoft
Complemento:
DB:
SQL Server
Complemento:
LinkedIn
Mensagem do Enviar e-mail Abrir o Perfil do usuário ANDREAS ANDREAS em 08/03/2024, 10:26 h
Local: SP  Registro: 25/09/2023  Postagens: 79
Bom dia

Utilizando a lógica de uma pergunta anterior, consegui utilizar parâmetros de datas automaticas:

nAno := year(dDataBase)
      aCab := {str(nAno-4,4), str(nAno-3,4), str(nAno-2,4), str(nAno-1,4),str(nAno,4)}
      aData1 := {fFatAnual(str(nAno-4,4)),fFatAnual(str(nAno-3,4)), fFatAnual(str(nAno-2,4)), fFatAnual(str(nAno-1,4)), fFatAnual(str(nAno,4))}

Está pegando o ano atual, ano atual-1,-2,-3 e -4
E agora preciso fazer isso para ano/mes e para mes/dia

----
Ex de como estou fazendo com datas setadas, ano/mes:
aData1 := { fFatMensal(‘201901‘),fFatMensal(‘202001‘),fFatMensal(‘202101‘),fFatMensal(‘202201‘),fFatMensal(‘202301‘)}
        aData2 := { fFatMensal(‘201902‘),fFatMensal(‘202002‘),fFatMensal(‘202102‘),fFatMensal(‘202202‘),fFatMensal(‘202302‘)}
        aData3 := { fFatMensal(‘201903‘),fFatMensal(‘202003‘),fFatMensal(‘202103‘),fFatMensal(‘202203‘),fFatMensal(‘202303‘)}
        aData4 := { fFatMensal(‘201904‘),fFatMensal(‘202004‘),fFatMensal(‘202104‘),fFatMensal(‘202204‘),fFatMensal(‘202304‘)}
        aData5 := { fFatMensal(‘201905‘),fFatMensal(‘202005‘),fFatMensal(‘202105‘),fFatMensal(‘202205‘),fFatMensal(‘202305‘)}
        aData6 := { fFatMensal(‘201906‘),fFatMensal(‘202006‘),fFatMensal(‘202106‘),fFatMensal(‘202206‘),fFatMensal(‘202306‘)}
        aData7 := { fFatMensal(‘201907‘),fFatMensal(‘202007‘),fFatMensal(‘202107‘),fFatMensal(‘202207‘),fFatMensal(‘202307‘)}
        aData8 := { fFatMensal(‘201908‘),fFatMensal(‘202008‘),fFatMensal(‘202108‘),fFatMensal(‘202208‘),fFatMensal(‘202308‘)}
        aData9 := { fFatMensal(‘201909‘),fFatMensal(‘202009‘),fFatMensal(‘202109‘),fFatMensal(‘202209‘),fFatMensal(‘202309‘)}
        aData10:= { fFatMensal(‘201910‘),fFatMensal(‘202010‘),fFatMensal(‘202110‘),fFatMensal(‘202210‘),fFatMensal(‘202310‘)}
        aData11:= { fFatMensal(‘201911‘),fFatMensal(‘202011‘),fFatMensal(‘202111‘),fFatMensal(‘202211‘),fFatMensal(‘202311‘)}
        aData12:= { fFatMensal(‘201912‘),fFatMensal(‘202012‘),fFatMensal(‘202112‘),fFatMensal(‘202212‘),fFatMensal(‘202312‘)}    


----
Ex de como estou fazendo com datas setadas, mes/dia:

aData1 à aData31 para cada mes, de Janeiro a fevereiro    
aCab    := {‘Janeiro 2020‘, ‘Janeiro 2021‘, ‘Janeiro 2022‘, ‘Janeiro 2023‘,‘Janeiro 2024‘ }
        aData1 := { fFatMensal(‘20200101‘),fFatMensal(‘20210101‘),fFatMensal(‘20220101‘),fFatMensal(‘20230101‘),fFatMensal(‘20240101‘)}
        aData2 := { fFatMensal(‘20200102‘),fFatMensal(‘20210102‘),fFatMensal(‘20220102‘),fFatMensal(‘20230102‘),fFatMensal(‘20240102‘)}
       

Mensagem do Enviar e-mail Abrir o Perfil do usuário ANDREAS ANDREAS em 08/03/2024, 10:28 h
Local: SP  Registro: 25/09/2023  Postagens: 79
Preciso que esses parametros: 202401, 202402 .... e 20240101, 20240102 ....
sejam automaticos, sem serem setados, igual no exemplo dos anos:

aData1 := {fFatAnual(str(nAno-4,4)),fFatAnual(str(nAno-3,4)), fFatAnual(str(nAno-2,4)), fFatAnual(str(nAno-1,4)), fFatAnual(str(nAno,4))}

Mensagem do Enviar e-mail Abrir o Perfil do usuário ROBERTOMEN ROBERTOMEN em 08/03/2024, 12:47 h
Local: PR  Registro: 04/07/2017  Postagens: 546
Boa tarde.



nAno := year(dDataBase) // 2024

//          2020            2021           2022           2023          2024       
aCab := {str(nAno-4,4), str(nAno-3,4), str(nAno-2,4), str(nAno-1,4),str(nAno,4)}

aData1 := {fFatAnual(str(nAno-4,4)),fFatAnual(str(nAno-3,4)), fFatAnual(str(nAno-2,4)), fFatAnual(str(nAno-1,4)), fFatAnual(str(nAno,4))}

//Está pegando o ano atual, ano atual-1,-2,-3 e -4
//E agora preciso fazer isso para ano/mes e para mes/dia



//Ex de como estou fazendo com datas setadas, ano/mes:
aData1 := { fFatMensal(str(nAno-4,4)+‘01‘),fFatMensal(str(nAno-3,4)+‘01‘),fFatMensal(str(nAno-2,4)+‘01‘),fFatMensal(str(nAno-1,4)+‘01‘),fFatMensal(str(nAno,4)+‘01‘)}

aData2 := { fFatMensal(str(nAno-4,4)+‘02‘),fFatMensal(str(nAno-3,4)+‘02‘),fFatMensal(str(nAno-2,4)+‘02‘),fFatMensal(str(nAno-1,4)+‘02‘),fFatMensal(str(nAno,4)+‘02‘)}

aData3 := { fFatMensal(‘201903‘),fFatMensal(‘202003‘),fFatMensal(‘202103‘),fFatMensal(‘202203‘),fFatMensal(‘202303‘)} // é só fazer o mesmo aqui...
aData4 := { fFatMensal(‘201904‘),fFatMensal(‘202004‘),fFatMensal(‘202104‘),fFatMensal(‘202204‘),fFatMensal(‘202304‘)} // é só fazer o mesmo aqui...
aData5 := { fFatMensal(‘201905‘),fFatMensal(‘202005‘),fFatMensal(‘202105‘),fFatMensal(‘202205‘),fFatMensal(‘202305‘)} // é só fazer o mesmo aqui...
aData6 := { fFatMensal(‘201906‘),fFatMensal(‘202006‘),fFatMensal(‘202106‘),fFatMensal(‘202206‘),fFatMensal(‘202306‘)} // é só fazer o mesmo aqui...
aData7 := { fFatMensal(‘201907‘),fFatMensal(‘202007‘),fFatMensal(‘202107‘),fFatMensal(‘202207‘),fFatMensal(‘202307‘)} // é só fazer o mesmo aqui...
aData8 := { fFatMensal(‘201908‘),fFatMensal(‘202008‘),fFatMensal(‘202108‘),fFatMensal(‘202208‘),fFatMensal(‘202308‘)} // é só fazer o mesmo aqui...
aData9 := { fFatMensal(‘201909‘),fFatMensal(‘202009‘),fFatMensal(‘202109‘),fFatMensal(‘202209‘),fFatMensal(‘202309‘)} // é só fazer o mesmo aqui...
aData10:= { fFatMensal(‘201910‘),fFatMensal(‘202010‘),fFatMensal(‘202110‘),fFatMensal(‘202210‘),fFatMensal(‘202310‘)} // é só fazer o mesmo aqui...
aData11:= { fFatMensal(‘201911‘),fFatMensal(‘202011‘),fFatMensal(‘202111‘),fFatMensal(‘202211‘),fFatMensal(‘202311‘)} // é só fazer o mesmo aqui...
aData12:= { fFatMensal(‘201912‘),fFatMensal(‘202012‘),fFatMensal(‘202112‘),fFatMensal(‘202212‘),fFatMensal(‘202312‘)} // é só fazer o mesmo aqui...



//Ex de como estou fazendo com datas setadas, mes/dia:

//aData1 à aData31 para cada mes, de Janeiro a fevereiro    

//            ‘Janeiro 2020‘          ‘Janeiro 2021‘            ‘Janeiro 2022‘            ‘Janeiro 2023‘           ‘Janeiro 2024‘
aCab    := {‘Janeiro ‘+str(nAno-4,4), ‘Janeiro ‘+str(nAno-3,4), ‘Janeiro ‘+str(nAno-2,4), ‘Janeiro ‘+str(nAno-1,4),‘Janeiro ‘+str(nAno,4) }

aData1 := { fFatMensal(str(nAno-4,4)+‘0101‘),fFatMensal(str(nAno-3,4)+‘0101‘),fFatMensal(str(nAno-2,4)+‘0101‘),fFatMensal(str(nAno-1,4)+‘0101‘),fFatMensal(str(nAno,4)+‘0101‘)}
aData2 := { fFatMensal(str(nAno-4,4)+‘0102‘),fFatMensal(str(nAno-3,4)+‘0102‘),fFatMensal(str(nAno-2,4)+‘0102‘),fFatMensal(str(nAno-1,4)+‘0102‘),fFatMensal(str(nAno,4)+‘0102‘)}






Mensagem do Enviar e-mail Abrir o Perfil do usuário ANDREAS ANDREAS em 14/03/2024, 10:12 h
Local: SP  Registro: 25/09/2023  Postagens: 79
Bom dia

//aData1 à aData31 para cada mes, de Janeiro a fevereiro    

//            'Janeiro 2020'          'Janeiro 2021'            'Janeiro 2022'            'Janeiro 2023'           'Janeiro 2024'
aCab    := {'Janeiro '+str(nAno-4,4), 'Janeiro '+str(nAno-3,4), 'Janeiro '+str(nAno-2,4), 'Janeiro '+str(nAno-1,4),'Janeiro '+str(nAno,4) }

aData1 := { fFatMensal(str(nAno-4,4)+'0101'),fFatMensal(str(nAno-3,4)+'0101'),fFatMensal(str(nAno-2,4)+'0101'),fFatMensal(str(nAno-1,4)+'0101'),fFatMensal(str(nAno,4)+'0101')}
aData2 := { fFatMensal(str(nAno-4,4)+'0102'),fFatMensal(str(nAno-3,4)+'0102'),fFatMensal(str(nAno-2,4)+'0102'),fFatMensal(str(nAno-1,4)+'0102'),fFatMensal(str(nAno,4)+'0102')}

essa parte eu precisava que o mes fosse o mes atual, como eu poderia fazer?
EX:
aData1 := { fFatMensal(str(nAno-4,4)+MesAtual+‘01‘)

Mensagem do Enviar e-mail Abrir o Perfil do usuário ANDREAS ANDREAS em 14/03/2024, 10:12 h
Local: SP  Registro: 25/09/2023  Postagens: 79
Bom dia

//aData1 à aData31 para cada mes, de Janeiro a fevereiro    

//            'Janeiro 2020'          'Janeiro 2021'            'Janeiro 2022'            'Janeiro 2023'           'Janeiro 2024'
aCab    := {'Janeiro '+str(nAno-4,4), 'Janeiro '+str(nAno-3,4), 'Janeiro '+str(nAno-2,4), 'Janeiro '+str(nAno-1,4),'Janeiro '+str(nAno,4) }

aData1 := { fFatMensal(str(nAno-4,4)+'0101'),fFatMensal(str(nAno-3,4)+'0101'),fFatMensal(str(nAno-2,4)+'0101'),fFatMensal(str(nAno-1,4)+'0101'),fFatMensal(str(nAno,4)+'0101')}
aData2 := { fFatMensal(str(nAno-4,4)+'0102'),fFatMensal(str(nAno-3,4)+'0102'),fFatMensal(str(nAno-2,4)+'0102'),fFatMensal(str(nAno-1,4)+'0102'),fFatMensal(str(nAno,4)+'0102')}

essa parte eu precisava que o mes fosse o mes atual, como eu poderia fazer?
EX:
aData1 := { fFatMensal(str(nAno-4,4)+MesAtual+‘01‘)

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário NOVANEXUS3 NOVANEXUS3 em 27/03/2024, 15:14 h
Local: SP  Registro: 27/03/2024  Postagens: 2
* excluido *

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário STEELHEART STEELHEART em 01/04/2024, 13:13 h
Local: SP  Registro: 01/04/2024  Postagens: 3
Para obter uma lista de datas referentes aos últimos cinco anos, você pode usar o seguinte código:

xBase
Copy code
nAno := year(dDataBase)
aData := {}
FOR i := 0 TO 4
    dData := ctod(‘01/01/‘ + str(nAno - i))
    aData := aData + { dData }
NEXT
Isso criará uma matriz aData com as datas de 01/01/ano_atual até 01/01/ano_atual-4.

Para gerar uma lista de datas para cada mês dos últimos cinco anos, você pode fazer algo assim:

xBase
Copy code
aData := {}
FOR i := 0 TO 4
    FOR j := 1 TO 12
        dData := ctod(str(j, 2) + ‘/01/‘ + str(nAno - i))
        aData := aData + { dData }
    NEXT
NEXT
Isso criará uma lista de datas de 01/01/ano_atual até 01/12/ano_atual e assim por diante, para os últimos cinco anos.

Espero que isso ajude!

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário STEELHEART STEELHEART em 02/04/2024, 03:33 h
Local: SP  Registro: 01/04/2024  Postagens: 3
* excluido *

Foto
Mensagem do Enviar e-mail Abrir o Perfil do usuário STEELHEART STEELHEART em 02/04/2024, 03:34 h
Local: SP  Registro: 01/04/2024  Postagens: 3
* excluido *

Para postar no Fórum você precisa efetuar o seu login ou se registrar

 Mudar para Fórum

 

 

 
 
   
Pagina Principal Shopping PROTHEUS Tire suas duvidas Vagas Microsiga em todo Brasil Aprofunde seus conhecimentos Noticias Online Fale Conosco Pagina Principal