Funzionamento (Selezione su Tabella)

Descrizione

Questo modello viene chiamato dal menù contestuale di un campo inseribile, per aprire una finestra di selezione o nella prima parte di un programma standard, o ancora da una funzione. Nel caso di una selezione su menù contestuale di un campo, questa finestra contiene tutti i valori possibili del campo e delle informazioni complementari. Se questo modello viene inserito nella fase iniziale del programma standard, le azioni vanno scritte nel programma contenente le azioni del programma standard.

Le informazioni vengono recuperate da un'unica tabella o classe [F] proveniente da un Link. Ad un record corrisponderà una riga nella finestra di selezione. La finestra può contenere al massimo 15 colonne. Il numero di record visualizzati è in funzione del parametro utente NBRCHOOSE. 

Si hanno a disposizione due metodi per costruire questa finestra:

sia quando la tabella è gestita da un oggetto, far riferimento direttamente alla lista di selezione parametrizzata in questo oggetto. In questo caso occorre precisare solo l'oggetto da utilizzare.

   sia costruire la finestra.

Inoltre si potrà precisare al modello come visualizzare questa finestra:

   selezione di tutti o parte dei record della tabella

ordinamento dei record nella finestra (su quale campo ed in quale senso)

  posizione del cursore nella finestra

dimensione della finestra

gestione della paginazione

La paginazione 

E' automatica quando la finestra viene costruita con la descrizione oggetto.

Nell'altro caso, si ha la possibilità di attivare l'automatismo di paginazione da parte del supervisore posizionando DEFPAG=1 nell'azione SEL_TABLE, oppure prendere in carico lo sviluppo della paginazione tramite l'azione BOUT_TABLE.

I programmi

Il modello è un programma supervisore che fa riferimento a due programmi allegati: il programma standard ed il programma specifico, se sono presenti nel dizionario dell'azione. Questi due programmi sono strutturati allo stesso modo, ovvero iniziano con un'etichetta ACTION che gestisce diversi eventi in grado di verificarsi durante l'esecuzione della funzione.

Il programma standard
Questo programma, fornito da ADONIX, non deve assolutamente essere modificato dallo specifico. 

Il programma specifico
Questo programma non è fornito da Adonix, ma può essere sviluppato in specifico (sia per funzioni standard per le quali si desidera effettuare delle implementazioni che per funzioni specifiche). 

Le Azioni

Il programma standard o specifico inizia quindi con questa etichetta $ACTION da scrivere nel seguente modo (dove XXXXXX è il codice dell'evento): 

$ ACTION
Case ACTION
   When "XXXXXX" : Gosub XXXXXX
   When default
Endcase
Return

Ogni evento viene identificato da un codice alfanumerico, contenuto nella variabile ACTION. Se non vi è codice per un evento, il funzionamento della funzione non sarà di ostacolo. Nel sotto-programma $ACTION si gestisce l'indirizzamento all'etichetta aggiunta. In questa sintassi "case ACTION" si indicheranno tante righe quanti sono gli eventi da completare. La $ACTION viene chiamata dal programma supervisore tramite GOSUB; ciò permette di conseguenza di utilizzare delle variabili locali nel programma supervisore.

In allegato viene presentato l'elenco delle azioni. Sarà poi presente la descrizione dettagliata di queste azioni. Viene descritto il contesto chiamante e l'obiettivo di queste azioni.

Aggiunta di azioni specifiche sullo standard

Di default, per uno stesso evento, l'azione specifica è chiamata prima dell'azione standard.

Questa può annullare e sostituire l'azione standard se posiziona la variabile GPE al valore 1.

Per eseguire l'azione standard prima dell'azione specifica, in questo caso, si duplica il programma standard nell'azione specifica, si aggiunge il programma specifico e poi si posiziona la variabile GPE al valore 1. Esempio:

Programma supervisore
GPE=0
Gosub  ACTION  From  pgm_std             ( chiamata dello standard)
If GPE=0
   Gosub  ACTION  From  pgm_spe.            ( chiamata dello specifico)
Endif

Programma specifico
$ ACTION
Case ACTION
   When "OUVRE" : Gosub OUVRE
   When default
Endcase
Return

$OUVRE
...                                                                ( azione specifica OUVRE)
GPE = 1                                                     (nessuna chiamata dello standard a seguito dello specifico)
Return