seriale annuale 2

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

Moderatore: Moderatori

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

seriale annuale 2

Messaggio da raysoyd » venerdì 27 giugno 2008, 12:45

Nel post seriale annuale, raybaudi ha messo a disposizione una funzione personalizzata per che puo essere utilizzata per le fatture, ora dopo tante modifiche grazie agli utenti del forum mi hanno suggerito a modificare la funzione per le mie esigenze nel seguente modo:
Consenti([
lastId =RicavaEnnesimoRecord (N° fattura: fte; Get ( ContoRecordTotale ) - 1);
lastYear = RicavaEnnesimoRecord ( Anno fattura; Get ( ContoRecordTotale ) - 1)
];
Casi(
Anno fattura ≠ lastYear or Destra ( lastId ; 5 ) = 10^5 -1; Destra ( 10^5 ; 5-1 ) & "1";
IncrementoSeriale ( Destra ( lastId ; 5 ) ; 1 )
)
)

E funziona bene, ma al solito non si finisce mai di pretendere sempre di più, nel post sopra citato mi ero fermato quando ho chiesto la possibilità di avere una numerazione diversa per le fatture o per note di credito, ho aperto un nuovo post per non fare confusione.
Allora il mio problema è questo. Come fare per utilizzare questa funzione affinché funzioni con una numerazione differente nel caso sia una fattura o nota di credito, naturalmente ho gia un campo “tipodocfisc” che può avere valore “fattura” o “nota di credito”.
E se dovessi fare una fattura bis?
Es:00025, 00025bis, 00026…….ecc….
Confido ancora in vostro aiuto.
Grazie

daniele
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ì 27 giugno 2008, 18:23

Non puoi.

La fatttura bis o come si chiama deve partire da 1, poi 2, 3 ecc... come qualsiasi altra fattura.

Non puoi cominciare la numerazione da 25 e 32 magari la successiva.

La numerazione deve seguire una logica cronologica ascendente.

Devi dunque individuare il gruppo a cui appartiene la fattura che vai a creare ( via script o relazione ) e prelevi il valore del penultimo record del gruppo trovato oppure meglio ancora tutto via script con imposta variabile.

Bis non mi garba. Meglio A2008001 e B2008001... ti pare :?:
FM8 ADV XP SP3

andreuccio
Messaggi: 1737
Iscritto il: giovedì 7 ottobre 2004, 2:00
Località: Lamezia Terme

Messaggio da andreuccio » venerdì 27 giugno 2008, 18:31

Bis non mi garba. Meglio A2008001 e B2008001... ti pare
Così pare anche alla "finanza" E' il modo corretto della numerazione, come se avessi due moduli per la fatturazione. Il bis và bene nei concerti :wink:
Umiliati e sarai Esaltato, Esaltati e sarai Umiliato
Mac OS X Snow Leopard - FMP 10 Adv.

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

Messaggio da raysoyd » lunedì 30 giugno 2008, 12:08

ok grazie.

molto chiari.

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

tamtamstudio

Re: seriale annuale 2

Messaggio da tamtamstudio » venerdì 23 gennaio 2009, 15:02

Ottimo, sarebbe la funzione che fà per me.
Una volta creata la funzione personalizzata, mi avverte di non trovare il parametro "lastYear ", senza virgolette ovviamente, non è che nella versione 9, una variabile deve essere preceduta da $?
Nel caso io sostituisco "lastYear" con "$lastYear", la funzione viene accettata.
Una volta impostato come descritto, il primo record creato è corretto, ma poi i successivi non vengono incrementati.
Ho letto nei post precedenti diversi utenti sembrano aver avuto lo stesso problema, però nessuno ha postato la soluzione.
L'ho logicamente presa in sfida, ma dopo 2 giorni getto la spugna! :oops:
Per favore, prima dell'esaurimento e ritornare a fare la stessa cosa con uno script, datemi un piccolo aiutino...
grazie..
:mrgreen:

andreuccio
Messaggi: 1737
Iscritto il: giovedì 7 ottobre 2004, 2:00
Località: Lamezia Terme

Re: seriale annuale 2

Messaggio da andreuccio » venerdì 23 gennaio 2009, 15:46

Posta la formula che hai inserito e dimmi come hai nominato il campo dove la inserisci.
Umiliati e sarai Esaltato, Esaltati e sarai Umiliato
Mac OS X Snow Leopard - FMP 10 Adv.

tamtamstudio

Re: seriale annuale 2

Messaggio da tamtamstudio » venerdì 23 gennaio 2009, 16:26

Ecco ora funziona correttamente, diversamente non riesco a farla andare.

I parametri sono come sempre: AEfield e digit

Consenti([
$year = Anno ( Get ( DataCorrente ) );
$lastId =RicavaEnnesimoRecord (AEfield; Get ( ContoRecordTotale ) - 1);
$lastYear = Sinistra ( $lastId; 4 )
];
$year
&
Casi(
$year ≠ $lastYear or Destra ( $lastId ; digit ) = 10^digit -1; Destra ( 10^digit ; digit-1 ) & "1";
IncrementoSeriale ( Destra ( $lastId ; digit ) ; 1 )
)
)

andreuccio
Messaggi: 1737
Iscritto il: giovedì 7 ottobre 2004, 2:00
Località: Lamezia Terme

Re: seriale annuale 2

Messaggio da andreuccio » venerdì 23 gennaio 2009, 16:36

Il campo AEField
Consenti([
year = Anno ( Get ( DataCorrente ) );
lastId =RicavaEnnesimoRecord (Tabella dove è ->::AEField ; Get ( ContoRecordTotale ) - 1);
lastYear = Destra ( lastId; 4 )
];
Casi(
year ≠  lastYear or Sinistra ( lastId ; 2 ) = 10^1 - 1 ; Destra ( 10^3 ; 2 - 1 ) & "1";
IncrementoSeriale ( Sinistra ( lastId ; 2 ) ; 1 )
)
& "/" & year
)
Umiliati e sarai Esaltato, Esaltati e sarai Umiliato
Mac OS X Snow Leopard - FMP 10 Adv.

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

Re: seriale annuale 2

Messaggio da PIG-NAH » venerdì 23 gennaio 2009, 16:41

La $ di dollaro non serve.
La funzione è scritta correttamente.

Se non ti trova lastyear, prova a cambiarlo con pincoyear o pallinoyear.
Potrebbe essere un problema derivato dal copia/incolla :wink:
FM8 ADV XP SP3

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

Re: seriale annuale 2

Messaggio da PIG-NAH » venerdì 23 gennaio 2009, 16:46

andreuccio ha scritto:Il campo AEField
Consenti([
year = Anno ( Get ( DataCorrente ) );
lastId =RicavaEnnesimoRecord (Tabella dove è ->::AEField ; Get ( ContoRecordTotale ) - 1);
lastYear = Destra ( lastId; 4 )
];
Casi(
year ≠  lastYear or Sinistra ( lastId ; 2 ) = 10^1 - 1 ; Destra ( 10^3 ; 2 - 1 ) & "1";
IncrementoSeriale ( Sinistra ( lastId ; 2 ) ; 1 )
)
& "/" & year
)
Mi sa che come la scrivi te hai problemi per l'ordinamento.

001/2007 , quella di ray è scritta 2007001 :mrgreen:
FM8 ADV XP SP3

Rispondi