Qualcuno ha dimestichezza con la funzione CalcDateBoc nella codeunit 7600. Sto cercando una funzione in grado di calcolare il numero di giorni lavorativi compresi tra due date. Grazie.
Citazione:
Qualcuno ha dimestichezza con la funzione CalcDateBoc nella codeunit 7600. Sto cercando una funzione in grado di calcolare il numero di giorni lavorativi compresi tra due date. Grazie.
Originariamente inviato da clembo - 2004 Nov 29 : 15:20:14
Tempo fa c’e’ stato un lungo thread sull’argomento nel forum Developer. C’erano anche dei suggerimenti interessanti su come fare il calcolo. Prova a fare qualche ricerca. Anna
Sì, l’avevo letto. Purtroppo non mi è stato di molto aiuto. La funzione richiede molti parametri. Il mio obiettivo, invece, era fornire due date e conoscere il numero di gg lavorativi compresi. Mi chiedevo se c’era qualcosa di più chiaro di alternativo. Corrado
Ciao, se ti puo servire una cosa del genere: Ti mette in DCRisultato i giorni lavorativi delle date che gli passi. Secondo il calendario base cod ‘SERVIZIO’ impostato in navision Cronus Nelle variabili devi impostare : DCDataInizio Date DCDataFine Date DCRisultato Text 250 CalendarMgmt Codeunit Calendar Management
Description Text 30 Nonworking Boolean mentre nel codice devi mettere: REPEAT DCDataInizio := CALCDATE(’<+1D>’,DCDataInizio); Nonworking:= CalendarMgmt.CheckDateStatus(‘SERVIZIO’,DCDataInizio,Description); IF Nonworking = FALSE THEN DCRisultato := DCRisultato + ’ ’ + FORMAT(DCDataInizio); UNTIL DCDataInizio = DCDataFine MESSAGE(DCRisultato); dimmi se ti va bene Ciao
Ciao, se ti interessa calcolare il numero di giorni lavorativi prova questo: DtData1 : Date; DtData2 : Date; InGG : Integer; RcData : Record 2000000007; CLEAR(InGG); RcData.RESET; RcData.SETFILTER("Tipo Periodo",'%1',RcData."Tipo Periodo"::Data); RcData.SETRANGE("Inizio Periodo",DtData1,DtData2); IF RcData.FIND('-') THEN REPEAT IF RcData."Nr. Periodo" IN [1,2,3,4,5] THEN // Escludo Sabato e Domenica InGG += 1; UNTIL RcData.NEXT = 0;
Grazie. Ma nel frattempo (causa problema stringente) ho risolto con una funzione personalizzata. Speravo ci fosse qualcosa di predefinito in Navision. CL