| At line 1 added 81 lines |
| %%(display:none) |
| {{{ |
| WikiUp |
| }}} |
| /% |
| [{TableOfContents }]\\ |
| !!! Gestione tabelle\\ |
| !! Controllo e lettura tabelle\\ |
| La lettura ed il controllo delle tabelle vengono eseguiti tramite routines esterne, per i vari ambienti applicativi in |
| cui può essere inserito il programma. Per l'ambiente SMEUP, esistono inoltre routines adibite alla ricerca alfabetica |
| dei settori e dei subsettori. |
| !! Controllo tabelle\\ |
| Qualora sia sufficiente controllare l'esistenza di un elemento di tabella, eseguire la ricerca alfabetica, ed |
| ottenerne la decodifica, si usano le routines £RITxx, dove xx è il prefisso dell'ambiente (AC:Acg, SM:Smeup, SG: San |
| Giorgio, SE:Seltering). |
| In input si passa: il settore £RITST (5) e l'elemento £RITEL (15), e, nel caso di ambiente SMEUP, il campo £RITMA (1) |
| diverso da blanks se non è abilitato il passaggio dalla ricerca alfabetica alla manutenzione, ed il campo £ITRS (1), |
| che, se diverso da blanks, fa eseguire la ricerca dei settori. |
| In output si ottiene, oltre a £RITEL riempito dalla ricerca alfabetica, la descrizione dell'elemento £RITDS, (30: nel |
| caso in cui l'ambiente non preveda un campo esplicito di descrizione, vengono considerati tali i primi 30 caratteri |
| del contenuto della tabella) l'indicatore 35 acceso per elemento non trovato ed il 36 acceso per effettuata ricerca |
| alfabetica. |
| !! Lettura tabelle\\ |
| Nel caso in cui è necessario acquisire il contenuto di un elemento di tabella, si usano le routines £LETxx, dove xx è |
| il prefisso dell'ambiente (AC:Acg, SM:Smeup, SG: San Giorgio, |
| SE:Seltering). |
| In input si passa: il settore £RITST (5) e l'elemento £RITEL (15). |
| caratteri del contenuto della tabella) e l'indicatore 35 |
| In output si ottiene la descrizione dell'elemento in £RITDS (30: nel caso in cui l'ambiente non preveda un campo |
| esplicito di descrizione, vengono considerati tali i primi |
| acceso per elemento non trovato. |
| Per ogni ambiente è inoltre necessario definire il file tabelle interessato e la struttura del tracciato della |
| tabella. |
| Lettura tabelle ACG |
| Si deve definire il File ANTAB01L, e la DS esterna del settore da leggere. Dopo il richiamo con esito positivo della |
| routine, si deve inoltre muovere il campo di data base |
| XDTAB nella DS esterna per riempirne i sottocampi. |
| Lettura tabelle Selternig |
| Si deve definire il File TABFA03L (descritto internamente) e, nelle specifiche 'I', la /COPY QCPYSRC,£TABxxx del |
| settore xxx da leggere. |
| Lettura tabelle S.Giorgio |
| Si deve definire il File GENTB01L, e la DS esterna del settore da leggere. Dopo li richiamo con esito positivo della |
| routine, si deve inoltre muovere il campo di data base |
| TDTAB nella DS esterna per riempirne i sottocampi. |
| Lettura tabelle SMEUP |
| Si deve definire il File TABEL01L (descritto internamente) e, nelle specifiche 'I', la /COPY SRC,£TABxxx del settore |
| xxx da leggere. |
| !! Ricerca alfabetica settori SMEUP\\ |
| La routine £RISET esegue la ricerca alfabetica dei settori: |
| si imposta in £COSET (3) il codice del settore: di ritorno si riceve, sempre in £COSET, il settore selezionato, in |
| £DESET (30) la relativa descrizione, l'indicatore 35 acceso per elemento non trovato ed il 36 acceso per effettuata |
| ricerca alfabetica. |
| !! Ricerca alfabetica subsettori SMEUP\\ |
| La routine £RITSS esegue la ricerca alfabetica dei subsettori: si imposta in £COSET (3) il codice del settore ed in |
| £COSBS (2) il codice del subsettore: di ritorno si riceve, sempre in £COSBS, il subsettore selezionato, in £DESBS (30) |
| la relativa descrizione, l'indicatore 35 acceso per elemento non trovato ed il 36 acceso per effettuata ricerca |
| alfabetica. |
| !!! Controllo specifico settori tabelle\\ |
| Qualora i controlli formali previsti nella gestione tabelle parametriche non fossero sufficienti (ad esempio si |
| volessero attivate controlli incrociati), oppure si presentasse la necessità di riempire un campo di tabella in |
| funzione di altri (ad esempio: si digita un ordine cliente e si vuol acquisire in tabella il codice del cliente), è |
| possibile relizzare un programma di controlli che viene eseguito in cascata ai controlli formali della manutenzione |
| tabelle. Tale programma va specificato nella definizione del settore. |
| Per realizzarlo, bisogna partire dallo scheletro B£T000, contenuto in SMESRC/SRC. |
| Il suo nome dovrà essere B£Txxx, dove xxx è il nome del settore interessato. Deve essere stata costruita la /COPY |
| della DS della tabella. |
| Si devono specificare gli eventuali files interessati e sostituire xxx con il nome del settore. |
| I campi della tabella sono presenti in questo programma con lo stesso nome che hanno nella /COPY della tabella. |
| I controlli sull'elemento si inseriscono nella routine |
| CTRELE, in cui si tolgono gli asterischi alla parte di controllo errore. |
| I controlli sui rimanenti campi si inseriscono nella routine |
| CTRALT, in cui si tolgono gli asterischi alla parte di controllo errore. L'indice nella schiera errori di ogni campo |
| (ERC,XX), è riportato nella /COPY delle specifiche 'I' della tabella. |
| E' possibile anche modificare i campi: ad esempio la descrizione dell'elemento può essere formata da un insieme di |
| altri campi, oppure un campo è la decodifica o un attributo di un altro ( ad esempio, il codice articolo e la sua |
| classe). Va tenuto presente che essi non passano più per i controlli formali predefiniti e quindi si potrebbero |
| introdurre anomalie nei dati. |
| nel qual caso viene riemesso il formato di manutenzione |
| C'è inoltre la possibilità di restituire acceso l'indicatore |
| tabelle: può servire quando viene fatta per la prima volta una decodifica (nell'esempio precedente, se la classe |
| dell'articolo non era presente o era diversa da quella che si sta inserendo). |