seriale annuale 2
Moderatore: Moderatori
-
- Messaggi: 549
- Iscritto il: giovedì 13 gennaio 2005, 1:00
seriale annuale 2
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
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.
- PIG-NAH
- Messaggi: 2564
- Iscritto il: martedì 7 agosto 2007, 2:00
- Località: BIG BANG
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
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
-
- Messaggi: 1737
- Iscritto il: giovedì 7 ottobre 2004, 2:00
- Località: Lamezia Terme
Re: seriale annuale 2
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!
Per favore, prima dell'esaurimento e ritornare a fare la stessa cosa con uno script, datemi un piccolo aiutino...
grazie..

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!

Per favore, prima dell'esaurimento e ritornare a fare la stessa cosa con uno script, datemi un piccolo aiutino...
grazie..

-
- Messaggi: 1737
- Iscritto il: giovedì 7 ottobre 2004, 2:00
- Località: Lamezia Terme
Re: seriale annuale 2
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.
Mac OS X Snow Leopard - FMP 10 Adv.
Re: seriale annuale 2
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 )
)
)
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 )
)
)
-
- Messaggi: 1737
- Iscritto il: giovedì 7 ottobre 2004, 2:00
- Località: Lamezia Terme
Re: seriale annuale 2
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
)
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.
Mac OS X Snow Leopard - FMP 10 Adv.
- PIG-NAH
- Messaggi: 2564
- Iscritto il: martedì 7 agosto 2007, 2:00
- Località: BIG BANG
Re: seriale annuale 2
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
La funzione è scritta correttamente.
Se non ti trova lastyear, prova a cambiarlo con pincoyear o pallinoyear.
Potrebbe essere un problema derivato dal copia/incolla

FM8 ADV XP SP3
- PIG-NAH
- Messaggi: 2564
- Iscritto il: martedì 7 agosto 2007, 2:00
- Località: BIG BANG
Re: seriale annuale 2
Mi sa che come la scrivi te hai problemi per l'ordinamento.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
)
001/2007 , quella di ray è scritta 2007001

FM8 ADV XP SP3