Numeratore

From SageDev KB
Jump to navigation Jump to search


Da menu Parametrizzazione → Parametri generali → Contatori → Strutture (da F7 GESANM) si possono creare e modificare i contatori.

Se a livello di definizione c'è la società, tale campo sarà poi obbligatorio inserirlo tra i componenti (vedi YSOH come esempio).

Il tipo di sequenza in genere è "Normale", il riquadro "Reset" serve per indicare quando il contatore riparte da 0; il "Reset" nel riquadro "Diversi" serve per indicare se il contatore va resettato in caso di reset del dossier.

Il complemento è un pezzo del contatore che in genere viene associato da programma.

Esempio di programmazione per la generazione di un codice da numeratore:

$INICRE
   # Generazione codice dell'ordine
   Local Integer YSTAT
   #          |Contat.|   Sito   |   Data        |Complemento  | Cod.generato  | Errore
   Call NUMERO("YO0",[M:YO01]YFCY,[M:YO01]YORDDAT,""          ,[M:YO00]YORDNUM ,YSTAT) From SUBANM
   If GOK<0
       Return
   Elsif GOK<1 | YSTAT<>0
         GOK=0 : GERR=1 : GMESSAGE="YO0"-mess(60,199,1)
         Return
   Endif

[F:YH0]YORDNUM  = [M:YO00]YORDNUM 
 Affzo [M:YO00]YORDNUM 

Return

E' sconsigliato andare a modificare da programma il comportamento di contatori predefiniti di Sage; in caso di import l'eventuale chiave importata inserirla in un campo secondario.

C'è un entry point NUMERO del programma SUBANM che permette di intervenire (per esempio per modificare il complemento) in base alle necessità. Utile anche in fase di debug. Il programma di questo entry point sarà nella forma tipo

####################################################################
$ACTION
Case ACTION
 When "NUMERO"    Gosub NUMERO
 When Default
 Endcase
Return
####################################################################
$NUMERO
   ...
Return
####################################################################