Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Tenho uma tabela de feriados assim:
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 |
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()?
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;
Isaias
Para juntar as datas dos feriados, utilize a função Concat() no campo da data do feriado.
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])
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
];
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;
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
];
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;