Seriale Annuale

E' l'area in cui è possibile condividere funzioni personalizzate nate dalla creatività e l'esperienza degli sviluppatori FileMaker

Moderatore: Moderatori

raybaudi
Messaggi: 3616
Iscritto il: sabato 7 febbraio 2004, 1:00
Località: Roma
Contatta:

Seriale Annuale

Messaggio da raybaudi » domenica 26 febbraio 2006, 23:16

Ciao a tutti !

Questa funzione personalizzata, utilizzabile anche come calcolo, ma solo dagli utilizzatori di FM8 ( o FM8 Advanced), risolve il problema di avere un numero seriale che ricomincia da 1 all'inizio di un nuovo anno.

Codice: Seleziona tutto

/*
AnnuallySerial custom function

Author: Daniele Raybaudi

Format: AnnuallySerial ( AEfield ; digit )

Result: text

parameters:
AEfield: text - the text field wich will hold the serial number; it must be setted as auto-enter, always evaluate
digit: number - the number of digit (#) that must increment by one and restart from one every new year

This custom function can be used for:

1) Autoenter a serial number that increments annually
2) the format of the serial number is essentially: YYYY##
3) the serial number may have how many digits (#) you choosed

The Auto-Enter field must be setted to always evaluate;
the custom function isn't recursive, so you can use it as a simple calc;
the custom function will work only with FMP8 and above.


12/27/2005

*/ 
Let([
year = Year ( Get ( CurrentDate ) );
lastId =GetNthRecord (AEfield; Get ( TotalRecordCount ) - 1);
lastYear = Left ( lastId; 4 )   
];
year
&
Case(
year   ≠   lastYear  or Right ( lastId ; digit ) = 10^digit -1; Right ( 10^digit  ; digit-1 ) & "1";
SerialIncrement ( Right ( lastId ; digit ) ; 1 )
)
)
Inseritela in un campo testo con opzione di Auto-Inserimento in base a calcolo, togliete la spunta a "non valutare se i campi di riferimento sono vuoti" e togliete la spunta anche a "non sostituire il valore, se presente".
Raybaudi FMP 12 Adv. Windows XP SP3

Ospite

Re: Seriale Annuale

Messaggio da Ospite » martedì 7 marzo 2006, 13:47

Ciao, se ho capito bene dovvrei creare un campo "AEfield" con incremneto seriale, un campo "digit" che mi indica di quante cifre è formato il mio risultato e un campo testo o calcolo con la funzione descritta da te per ottenere un risulato. es:200601, ma quando faccio nuovo record l'incremnto sul risultao non avviene. Grazie

raybaudi
Messaggi: 3616
Iscritto il: sabato 7 febbraio 2004, 1:00
Località: Roma
Contatta:

Messaggio da raybaudi » martedì 7 marzo 2006, 15:58

No

Devi creare un solo campo testo, per esempio ID, e mettere nelle opzioni di inserimento automatico di risultato calcolato il calcolo suddetto.

Per quanto riguarda "digit", quello è un numero che puoi scegliere ed inserirlo direttamente nel calcolo, senza creare un campo apposito.
Raybaudi FMP 12 Adv. Windows XP SP3

loziofester
Messaggi: 196
Iscritto il: domenica 12 novembre 2006, 1:00
Località: Caserta

Messaggio da loziofester » martedì 21 agosto 2007, 1:23

raybaudi ha scritto:No

Devi creare un solo campo testo, per esempio ID, e mettere nelle opzioni di inserimento automatico di risultato calcolato il calcolo suddetto.

Per quanto riguarda "digit", quello è un numero che puoi scegliere ed inserirlo direttamente nel calcolo, senza creare un campo apposito.
ho provato ad usare la funzione come dici tu ma dopo averla digitata tutta mi dice che non trova il campo aefield. se lo creo nel formato testo come dici nelle istruzioni in inglese mi funziona ma non aggiorna il valore. "rimane sempre 20070001"
FILEMAKER 12 - win7

raysoyd
Messaggi: 549
Iscritto il: giovedì 13 gennaio 2005, 1:00

Messaggio da raysoyd » venerdì 11 aprile 2008, 9:04

buonagionata a tutti, questa funzione finalmente sono riuscito a farla funzionare, almeno credo, ma per le mie esigenze non va bene.
ho l'esigenza di avere una numerazione differente in base un campo es: tipo di fatturazione.
quindi tipo di ft a es n:200801.02.03
ft b es 200801b..02b..03
ecc.

spero di risolvere con questa funzione.

ciao a tutti
FM 13 Adv (contentissimo), FINALMENTE imac impressionantemente spaventosamente SPLENDIDOOOOO.

Avatar utente
PIG-NAH
Messaggi: 2564
Iscritto il: martedì 7 agosto 2007, 2:00
Località: BIG BANG

Messaggio da PIG-NAH » venerdì 11 aprile 2008, 9:49

Se le fatture con la "b" le tieni su una tabella correlata apposita ( consigliato da PIG-NAH ), non vedo dove sia il problema. Basta aggiungere la b al calcolo della funzione. :wink:
FM8 ADV XP SP3

raysoyd
Messaggi: 549
Iscritto il: giovedì 13 gennaio 2005, 1:00

Messaggio da raysoyd » venerdì 11 aprile 2008, 10:50

certo ma se volessi utilizzare la stessa tabella?
e se nella stessa tabella oltre alla fattura dovessi fare delle note di credito con numerazione a se?
FM 13 Adv (contentissimo), FINALMENTE imac impressionantemente spaventosamente SPLENDIDOOOOO.

Avatar utente
PIG-NAH
Messaggi: 2564
Iscritto il: martedì 7 agosto 2007, 2:00
Località: BIG BANG

Messaggio da PIG-NAH » venerdì 11 aprile 2008, 11:15

raysoyd ha scritto:certo ma se volessi utilizzare la stessa tabella?
e se nella stessa tabella oltre alla fattura dovessi fare delle note di credito con numerazione a se?
Via script senza particolari problemi.

Avrai tre pulsanti :

Nuova fattura / Nuova fattura B / Nota di credito /

Secondo me è la soluzione + semplice ( è quella che adotterei ).

Per le note di credito io uso il solito numeratore delle fatture dato che è consentito per legge.
Sarò banale ma cerco sempre di complicarmi la vita il meno possibile.
8)
FM8 ADV XP SP3

raysoyd
Messaggi: 549
Iscritto il: giovedì 13 gennaio 2005, 1:00

Messaggio da raysoyd » venerdì 11 aprile 2008, 12:13

per le note di credito sono d'accordo con te ma alcuni commercialisti desiderano una numerazione a parte.
ora cerco di applicare il tuo consiglio, se non dovessi venirne fuori continuerò a chiedere consigli graie e apresto.


daniele

raysoyd
Messaggi: 549
Iscritto il: giovedì 13 gennaio 2005, 1:00

Messaggio da raysoyd » lunedì 9 giugno 2008, 18:01

finalmente ci sono riuscito a fare funzionare questa funzione, ma vorrei che mi funzionasse in modo giornaliero, quindi ogni giorno inizia di nuovo e vorrei togliere anno
solo il numero 0001, 0002,

no 20080001, 20080002

sono forse imbranato ma è da tanto che provo e come tocco qualcosa non funziona più niente.


ciao
FM 13 Adv (contentissimo), FINALMENTE imac impressionantemente spaventosamente SPLENDIDOOOOO.

Rispondi