CONTINUA DA -> http://www.sparklingcode.net/sito/query-as400-1-5/
2 Definizione dei campi dei risultati
Con questa scelta si possono creare campi alfanumerici e campi numerici ed essi possono essere sceiti, visualizzati,stampati e portati in un eventuale file (se 1’opzione finale sara 3 = creazione di un file). E’ opportune sottolineare che non si possono creare campi gia deimiti nei file gia sceiti, quindi, avendo selezionato ANPAR00F, sara impossibile creare, un altro CDPAR ( Codice parte) o DEPAR (Descrizione parte ).
Significato delle colonne :
Campo : Sigia (max. 10 caratteri, di cui il 1 ° sempre alfabetico, con cui si identifica il campo che si vuole creare Espressione : serve per stabilire Ie operazioni da svolgere sui campi
Intestazione colonna : descnzione del campo (se e lasciata in bianco, assume come descrizione il campo stesso )
Len : Lunghezza totale del campo
Dec : Decimal! ( e sempre un “dii cui” di Len ) : in bianco : campo alfanumerico
0 : campo numerico senza decimali
numeri : campo numerico con decimali
Di solito la lunghezza ed i decimali sono autodefiniti dall’espressione, ma comunque, in alcuni casi di campi numerici, e possibile ridefmirli.
L’Espressione puo contenere operatori numerici ( se lega campi numerici) oppure operatori alfanumerici ( se lega campi numerici o se, come vedremo in dettaglio, converte campi numerici in campi alfanumerici).
** Principali operatori numerici
+ Somma dei valori dei record
Esempio relative al file SALDI00F, in cui prendiamo in considerazione i campi
DORDF : In ordine a fomitori (campo numerico lungo 11, di cui 3 decimali)
DORDP : In ordine alia produzione ( campo numerico lungo 11, di cui 3 decimali)
Campo | Espressione | Intestazione colonna | Len | Dec |
TOT | DORDF+DORDP |
Or.for. + Prod. |
II campo TOT assume automaticamente la lunghezza ottimale di 12 (di cui 3 decimali), e ci accorgeremo di cio nel momento in cui utilizzeremo la funzione 3 Scelta e sequenza dei campi. ma comunque possiamo abbreviarlo, salvo accorgerci di eventuali errori qualora il campo TOT contenga un totale che richieda efiettivamente la lunghezza 12 (di cui 3 decimali).
Oppure si possono introdun-e nell’espressione dei numen, come nel seguente esempi
Campo | Espressione | Intestazione colonna | Len | Dec |
TOT | DORDF+DORDP+1000 |
Or.for. + Prod.+1000 |
– Sottrazione dei valori da un record
Esempio relative al file SALDIOOF, in cui prendiamo in considerazione i campi
DORDC : In ordine da client! (campo numerico lungo 11, di cui 3 decimali)
DORDP : In ordine alia produzione (campo numerico lungo 11, di cui 3 decimali)
Campo | Espressione | Intestazione colonna | Len | Dec |
TOT | DORDC+DORDP |
Or.for. – Prod. |
II campo assumera la lunghezza 12 (di cui 3 decimali)
* Moltiplicazione e / Divisione dei valori dei record
Esempio relative al file ANPAR00F, in cui prendiamo in considerazione i campi
PREUP : Prezzo al pubblico ( campo numenco lungo 11, di cui 0 decimali)
Per calcolare il prezzo al pubblico maggiorato del 5 , operiamo come segue:
Campo | Espressione | Intestazione colonna | Len | Dec |
P5 | PREUP/100*5+PREUP |
Prezzo +5% |
II campo assumera la lunghezza 14 (di cui 2 decimali)
Nota
E’ possibile eseguire operazioni complesse che utilizzano i 4 operatori numerici, con 1’awertenza pero di racchiudere tra parentesi eventuali campi con operatore + e -, il cui risultato vogliamo moltiplicare o dividere; se per esempio, nel file SALDI00F vogliamo calcolare il 50 della somma dell’ordinato a fomitori + 1’ordinato in produzione, openamo come segue:
Campo | Espressione | Intestazione colonna | Len | Dec |
P8 | (DORDF+DORDP)/100*50 |
50% Or.for+Prod. |
Principali operatori di data
Esempio : vogliamo isolare, nel file ANPAROOF e nel campo DAA26 (Data ultima manutenzione – Len 8 , Dec 0), rispettivamente il giomo, il mese e 1’anno, utilizzando i seguenti operatori :
DAY per il giomo
MONTH per il mese
YEAR per 1’anno
In caso di DAA26 = 19990517, otterremo i seguenti risultati :
Campo | Espressione | Intestazione colonna | Len | Dec | (Risultato) |
GG |
DAY(DAA26) |
gg |
2 | 0 | 17 |
MM |
MONTH(DAA26) |
mm |
2 | 0 | 5 |
ANNO |
YEAR(DAA26) |
anno |
4 | 0 | 2.014 |
La lunghezza dei campi e stata definita volutamente : 2 per il giomo, 2 per il mese e 4 per 1’anno.
II programma li avrebbe autodefiniti di lunghezza 9 con decimali 0
Per variare i risultati dei campi:
MM scritto 05 e non 5 ( quindi con lo 0 che precede il 5 )
ANNO scritto 2014 e non 2.014 ( quindi senza il separatore delle migliaia)
vedere la spiegazione al paragrafo 7 Specifica della formattazione delle colonne del prospetto
** Principali operatori alfanumerici
SUBSTR Stringa di caratteri
Esempio : creare stringa dei primi 5 caratteri del campo CDPAR ( alfanumerico 15 ) per individuare codici con caratteristiche simili
Campo | Espressione | Intestazione colonna | Len | Dec |
CD |
SUBSTR(T01.CDPAR, 1,5) |
Classe |
!! Unione di caratteri
1° Esempio:
Per ottenere un unico campo che unisca la descrizione della parte al suo numero di disegno, prendiamo in considerazione i
campi DEPAR (Descrizione parte, Len = 30 ) e NMDIS (Numero disegno, Len= 10 )
Campo | Espressione | Intestazione colonna | Len | Dec |
DESDI |
T01.DEPAR !! NMCAT |
Descrizione e catalogo |
Non e possibile definire la lunghezza, perche il sistema imposta automaticamente Len = 40
2° Esempio :
Per ottenere un unico campo che unisca la descrizione della parte al suo numero di disegno, con uno spazio di due caratteri in bianco fra i due campi, prendiamo sempre in considerazione i campi
DEPAR (Descrizione parte, Len = 30 ) e NMCAT (Numero Catalogo, Len= 10 )
Campo | Espressione | Intestazione colonna | Len | Dec |
DESDI |
T01.DEPAR !! ‘ ‘!! NMCAT |
Descrizione, catalogo |
II campo fra ‘ ‘ e di due spazi bianchi ed anche in questo caso non e possibile definire la lunghezza, perche il sistema imposta automaticamente Len = 42
DIGITS Conversione di caratteri numerici in alfanumerici
Qualora desiderassimo, individuare i codici parte che hanno decimali significativi nel campo del peso (per esempio 575,650 oppure 1786,391 e non 2450,000), prendiamo in considerazione il campo PESUN (Peso unitario, Len = 9, Dec= 3 ) e lo convertiamo in un carattere alfanumerico.
Campo | Espressione | Intestazione colonna | Len | Dec |
PESO |
DIGITS (PESUN) |
Peso |
CDPAR | PESUN | PESO | |
A001 | 575,650 | 000575650 | Il campo Peso risulta lungo 9 caratteri alfanumerici |
B002 | 1786,391 | 001786391 | |
C003 | 2450,000 | 002450000 |
Creiamo adesso un campo per controllare gli ultimi 3 caratteri del campo PESO
Campo | Espressione | Intestazione colonna | Len | Dec |
DCM |
SUBSTR (PESO,7,3) |
Decimali |
Con questa Espressione not vogliamo isolare nel campo PESO la stringa che parte dal 7° carattere ed e lunga 3 caratteri, quindi individuare i caratteri 7 , 8 e 9 ( che sono quelli oltre la virgola). Per 1’utilizzo di questa stringa vedi 4 Scelta dei record.