Query AS/400 (2 di 5)

 

 

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.

CONTINUA -> http://www.sparklingcode.net/sito/query-as400-3-5/

Leave a Reply

Your email address will not be published. Required fields are marked *