Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
isaiasdd
Creator
Creator

Usar intervalo de datas na função NetworkDays

Tenho uma tabela de feriados assim:

CodFeriadoDataInicioDataFinalDescricao
124/12/201602/01/2017Descanso Final de Ano
227/02/201702/03/2017Carnaval
320/03/201703/04/2017Férias Coletivas

Para usar na função networkdays() teria que passar data por data, existe alguma maneira de passar os períodos para a função networkdays()?

Labels (1)
1 Solution

Accepted Solutions
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Traduzindo para o seu modelo;

LOAD

  Codigo,DataInicio,DataFinal,Descricao,

  IterNo() as Day,

  Date( DataInicio + IterNo() - 1 ) as Date

  While DataInicio + IterNo() - 1 <= DataFinal;

Holidays:

LOAD

    Codigo,

    DataInicio,

    DataFinal,

    Descricao;

FROM Banco;

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti

View solution in original post

6 Replies
Marcio_Campestrini
Specialist
Specialist

Isaias

Para juntar as datas dos feriados, utilize a função Concat() no campo da data do feriado.

Márcio Rodrigo Campestrini
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo;

Segue: Concatenar linhas/registros via Script ou via Expressão

Mas  acho que não precisará fazer desta forma para o objetivo;

Olha a expressão:

Networkdays(data_inicial, data_final {, feriado})

Se fizer algo assim:

Networkdays([CampoDataInicial], [CampoDataFinal],[CampoListaFeriados])

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Para gerar intervalo de datas;

Exemplo:

    LOAD

      IterNo() as Day,

      Date( StartDate + IterNo() - 1 ) as Date

      While StartDate + IterNo() - 1 <= EndDate;

 

    LOAD * INLINE

    [StartDate, EndDate

    2014-01-22, 2014-01-26

    ];

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
isaiasdd
Creator
Creator
Author

Mario,

Então fiz no script gerar minhas datas, porém não funciona quando tenho mais que um registro na tabela de feriados, pois no meu script ele está sobrescrevendo a tabela.

Holidays:

LOAD

     Codigo,

     DataInicio,

     DataFinal,

     Descricao;

FROM Banco;

// para gerar as datas

LET vNroRows = NoOfRows('Holidays');

For vRow=0 To $(vNroRows)-1

     LET vDataInicio = Num(Date(Floor(Peek('DataInicio', $(vRow), 'Holidays'))));

     LET vDataFinal = Num(Date(Floor(Peek('DataFinal', $(vRow), 'Holidays'))));

     HolidayCalendar:

     LOAD

          Date($(vDataInicio) + IterNo()-1) As HolidayDate

     AUTOGENERATE 1 While $(vDataInicio) + IterNo()-1 <= $(vDataFinal)-1;

Next;

         

mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo, segue lógica;

PreenximentoIntervaloDatas:

LOAD

  CodFeriado,DataInicio,DataFinal,Descricao,

  IterNo() as Day,

  Date( DataInicio + IterNo() - 1 ) as Date

  While DataInicio + IterNo() - 1 <= DataFinal;

Amostra_Feriados:

LOAD * Inline [

CodFeriado, DataInicio, DataFinal, Descricao

1, 24/12/2016, 02/01/2017, Descanso Final de Ano

2, 27/02/2017, 02/03/2017, Carnaval

3, 20/03/2017, 03/04/2017, Férias Coletivas

];

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Traduzindo para o seu modelo;

LOAD

  Codigo,DataInicio,DataFinal,Descricao,

  IterNo() as Day,

  Date( DataInicio + IterNo() - 1 ) as Date

  While DataInicio + IterNo() - 1 <= DataFinal;

Holidays:

LOAD

    Codigo,

    DataInicio,

    DataFinal,

    Descricao;

FROM Banco;

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti