Record con date a cavallo dell'anno e trattamento dei relativi dati

di il
3 risposte

Record con date a cavallo dell'anno e trattamento dei relativi dati

Ciao a tutti.

Mi si è presentato un problema relativo a record contenenti date a cavallo del cambio di anno (il DB "è nato" a metà 2025 quindi non avevo considerato l'ipotesi....)

Devo registrare dei periodi di impiego (quindi data di inizio e fine impiego). Di questi dati, devo darne comunicazione dopo la data di fine (stampo un report - la comunicazione va fatta per ogni singolo record), inoltre, su richiesta e comunque ogni fine anno, devo stampare un registro riepilogativo dell'anno (al momento lo fanno ancora cartaceo, e soprattuto eventuali ricerche sono un incubo).

Per la comunicazione non è un problema, ma sulla stampa del registro mi sto impegolando.

Ad esempio Mario Rossi viene impiegato dal 25/12/2025 al 10/01/2026, quindi a cavallo del nuovo anno.

Registro un nuovo record e inserisco le due date come inizio e fine. Se stampo la comunicazione di impiego, non c'è problema.

Ma il registro deve visualizzare (sia a schermo che successivamente stampato su carta) che:

- scegliendo l'anno corrente (cioè adesso il 2026), mi dovrebbe visualizzare che Mario Rossi è stato impiegato dal 01/01/2026 al 10/01/2026
- scegliendo un anno precedente, mi dovrebbe visualizzare il suo impiego fino al 31/12 (in questo caso vedrei dal 25/12/2025 al 31/12/2025)

E, quindi, quando dovrò stampare il registro, su quello del 2025 mi stamperà l'impiego fino al 31/12/2025, il prossimo anno stamperà l'impiego come iniziato il 01/01/2026 (ovviamente nel corso dell'anno Mario Rossi avrà altri record di impiego.) (starei valutando l'ipotesi, per questi record, di inserire sul registro una nota a lato dove faccio presente che l'impiego è iniziato alla data X dell'anno precedente)

Al momento, ho "risolto" spezzando le date (quindi ho creato 2 record: dal 25/12/2025 al 31/12/2025 e dal 01/01/2026 al 10/01/2026), in questo modo il registro è venuto corretto, ma per la stampa del report ne dovrei stampare 2 (e formalmente è sbagliato).

Come implemento questa...funzionalità?

Grazie a tutti

Andrea

3 Risposte

  • Re: Record con date a cavallo dell'anno e trattamento dei relativi dati

    09/01/2026 - Jocman ha scritto:

    (il DB "è nato" a metà 2025 quindi non avevo considerato l'ipotesi....)

    Non penso che se cambiano gestionale devono licenziare al 31/12 e riassumere al 1/1...

    09/01/2026 - Jocman ha scritto:

    - scegliendo l'anno corrente (cioè adesso il 2026), mi dovrebbe visualizzare che Mario Rossi è stato impiegato dal 01/01/2026 al 10/01/2026
    - scegliendo un anno precedente, mi dovrebbe visualizzare il suo impiego fino al 31/12 (in questo caso vedrei dal 25/12/2025 al 31/12/2025)

    E qui basta una query con 

    cessazione >1/1/x

    Assunzione tra 1/1/x e 31/12/x

    09/01/2026 - Jocman ha scritto:

    E, quindi, quando dovrò stampare il registro, su quello del 2025 mi stamperà l'impiego fino al 31/12/2025, il prossimo anno stamperà l'impiego come iniziato il 01/01/2026 (ovviamente nel corso dell'anno Mario Rossi avrà altri record di impiego.) (starei valutando l'ipotesi, per questi record, di inserire sul registro una nota a lato dove faccio presente che l'impiego è iniziato alla data X dell'anno precedente)

    Che significa?

    Al 1/1/anno corrente stampi il registro fino al 31/12/anno corrente per poi modificarlo e ristamparlo in caso di nuova assunzione e licenziamento o dimissioni?

    Mostra una immagine tipo.

  • Re: Record con date a cavallo dell'anno e trattamento dei relativi dati

    09/01/2026 - sihsandrea ha scritto:

    Non penso che se cambiano gestionale devono licenziare al 31/12 e riassumere al 1/1...

    Al 1/1/anno corrente stampi il registro fino al 31/12/anno corrente per poi modificarlo e ristamparlo in caso di nuova assunzione e licenziamento o dimissioni?

    fino a metà 2025 facevano tutto a mano (sia registro che comunicazioni), mi sto inventando il "gestionale" perchè odio dover perdere tempo a fare cose che possono essere fatte in modo più rapido e funzionale

    nessuno parla di licenziamenti o assunzioni, semplicemente oggi tizio viene impiegato per fare una cosa, domani per farne un'altra, e così via.

    09/01/2026 - sihsandrea ha scritto:

    Che significa?

    semplicemente che sto pensando diinserire nel registro la possibilità di far presente che quell'incarico non inizia il 1 gennaio, ma che in realtà è iniziato nel mese di dicembre.

  • Re: Record con date a cavallo dell'anno e trattamento dei relativi dati

    Questa dovrebbe essere la soluzione:

    SELECT TabellaDati.CampoDataInizio, TabellaDati.CampoDataFine
    FROM TabellaDati
    WHERE (((Year([CampoDataInizio]))=[AnnoRicerca]-1) AND ((Year([CampoDataFine]))=[AnnoRicerca])) OR (((Year([CampoDataInizio]))=[AnnoRicerca]) AND ((Year([CampoDataFine]))=[AnnoRicerca])) OR (((Year([CampoDataInizio]))=[AnnoRicerca]) AND ((Year([CampoDataFine]))=[AnnoRicerca]+1));

    quando lanci la query ti chiederà l'anno relativo al report desiderato oppure puoi utilizzare un controllo testo dove inserire l'anno inerente la ricerca e nella query al posto di [AnnoRicerca] dovrai fare riferimento al controllo.

Devi accedere o registrarti per scrivere nel forum
3 risposte