Table of Contents
- OBIETTIVO
- PREREQUISITI
- PARAMETRI
- PARAMETRI DI INPUT
- Funzione: _i_campo £TNUTP_n_ Tipo di input
- Parametro di controllo: _i_campo £TNUPD_n_
- Separatore decimali: _i_campo £TNUSD_h_
- Numero: campo £TNUNR
- Allineamento: _i_campo £TNUAL_h_
- Campo non editato: _i_campo £TNUNE_h_
- Formato rappresentazione segno
- PARAMETRI DI OUTPUT
- _i_campo £TN_n_
- _i_campo £TNUSX_n_
- _i_campo £TNUED_n_
- ESEMPI DI FLUSSI
- FLUSSO (caso 1)
- Input: £TNUTP Tipo di input: N=numerico
- Output: £TN Numero editato e allineato a dx (schiera)
- FLUSSO (caso 2)
- Output: £TNUNR Numero ottenuto
- FLUSSO (caso 3)
- Input: £TNUTP Tipo di input: S=alfanumerico
- FLUSSO (caso 4)
- Input: £TNUTP Tipo di input: X=lettere per XAB
- Output: £TNUNX Numero editato per XAB
- Input: £TNUTP Tipo di input: L=stringa di livello
- Output: £TNUSX Stringa di composizione del livello
- FLUSSO (caso 6)
- FLUSSO (caso 7)
- ESEMPIO DI CHIAMATA (Caso 1)
OBIETTIVO
Trattamento e trasformazione numeri in stringhe, numeri romani, stringhe editate e viceversa.
PREREQUISITI
D/COPY QILEGEN,£TNUE
C/COPY QILEGEN,£TNU
PARAMETRI
PARAMETRI DI INPUT
Funzione: _i_campo £TNUTP_n_ Tipo di input
N) Trasformare un numero in un campo editato
X) Trasformare un numero in una stringadi lettere XAB (riporta il numero XAB dell'eventuale bolla emessa)
A) Trasformare una stringa in un numero
L) Trasformare un numero in una stringa di livello
S) Trasformare una stringa in un campo editato
Z) Trasformare un numero in un campo editato ma formatta anche il numero 0
R) Trasformare un numero in un numero romano
Parametro di controllo: _i_campo £TNUPD_n_
Formato: pd --> dove p è il numero di punti separatori (0-4) e d è il numero dei decimali (0-7)
Separatore decimali: _i_campo £TNUSD_h_
' '(blanks)=virgola
'.'=punto
Numero: campo £TNUNR
numero da convertire in stringa
Allineamento: _i_campo £TNUAL_h_
--> Se 'S' restituisce il campo editato ed allineato a sinistra
--> Se 'X' restituisce il campo editato ed allineato a sinistra rimuovendo gli zero non significativi
Campo non editato: _i_campo £TNUNE_h_
In funzione 'N' o 'Z' se diverso da ' ' ritorna anche il campo non editato
In funzione 'A' se diverso da ' ' esclude i caratteri non editati
Formato rappresentazione segno
' ' = segno - a destra
'S' = segno - a sinistra
PARAMETRI DI OUTPUT
_i_campo £TN_n_
Numero editato e allineato a dx (schiera)
_i_campo £TNUSX_n_
Numero editato e allineato a sx
_i_campo £TNUED_n_
Numero non editato
ESEMPI DI FLUSSI
FLUSSO (caso 1)
Riceve un numero e un parametro di controllo e restituisce
una schiera di 30 caratteri contenente il numero allineato
a destra (con il segno, blank o meno, a posizione 30),
senza gli zeri non significativi e con il numero voluto
di decimali e di punti separatori delle migliaia.
Input: £TNUTP Tipo di input: N=numerico
£TNUPD Parametro controllo. Formato: pd, dove
p = numero di punti separatori (0-4)
d = numero di decimali (0-7)
£TNUSD Separatore decimali
' '= virgola altro= punto
£TNUNR Numero da editare
£TNUAL Se 'S' restituisce anche il campo editato
Se 'X' come 'S' e rimozione zeri non significativi
£TNUNE Se diverso da ' ' ritorna anche il campo
non editato
£TNUFS Formato rappresentazione segno
' ' = segno - a destra
'S' = segno - a sinistra
Output: £TN Numero editato e allineato a dx (schiera)
£TNUSX Numero editato e allineato a sx
£TNUED Numero non editato
Esempi: £TNUNR £TNUPD _ £TN 111222333444,555 33 ---> 111.222.333.444,555 111222333444,555 12 111222333.444,55 -123456,7 33 123.456,700- -123456,7 00 123456- 0,001 32 0,00 0 32 (blank)
FLUSSO (caso 2)
Riceve una schiera di caratteri e restituisce un numero.
Vengono trattati i soli caratteri numerici, si intercetta
la virgola per l'impostazione dei decimali.
:T03 Input: £TNUTP Tipo di input: A=alfanumerico
£TNUSD Separatore decimali
' '= virgola altro= punto
£TN Schiera con numero da convertire
N.B.
Per garantire continuità con il passato, se vengono
impostati £TNUAL e/o £TNUNE, la funzione £TNUTP viene
forzata a "S" (caso 3)
Output: £TNUNR Numero ottenuto
Esempi: _ £TN_ £TNUPD £TNUNR A2 0/1.AA4,- .. 2014- *NB 1- .. 1 111.222.333.444,555 .. 111222333444,555 111222333.444,55 .. 111222333444,55 123.456,700- .. 123456,700- -123456- .. 123456- 00,00 .. 0 (blank) .. 0
- NB:
FLUSSO (caso 3)
Riceve una schiera di caratteri e un parametro di controllo
e restituisce un campo editato.
Input: £TNUTP Tipo di input: S=alfanumerico
£TNUPD Parametro controllo. Formato: pd, dove
p = numero di punti separatori (0-4)
d = numero di decimali (0-7)
£TNUSD Separatore decimali
' '= virgola altro= punto
£TN Schiera con numero da convertire
£TNUAL Se 'S' restituisce anche il campo editat
e allineato a sinistra
£TNUNE Se diverso da ' ' ritorna anche il campo
non editato
£TNUFS Formato rappresentazione segno
' ' = segno - a destra
'S' = segno - a sinistra
:T03 Output: £TN Numero editato e allineato a dx (schiera
£TNUSX Numero editato e allineato a sx
£TNUED Numero non editato
£TNUNR Numero ottenuto
FLUSSO (caso 4)
Riceve un numero e restituisce una schiera contenente una
stringa di lettere per XAB
Input: £TNUTP Tipo di input: X=lettere per XAB
£TNUPD Parametro controllo. Formato: pd, dove
p = numero di punti separatori (0-4)
d = numero di decimali (0-7)
£TNUSD Separatore decimali
' '= virgola altro= punto
£TNUNR Numero da editare
£TNUAL Allineamento:
'D'= a destra altro= a sinistra
Output: £TNUNX Numero editato per XAB
Esempi: £TNUNR £TNUPD _£TNUNX 1000000,100 13 ---> ' AZZZ.ZZZ,AZZ '
:T02 FLUSSO (caso 5)
Riceve un numero, un carattere di riempimento (default '.')
e una lunghezza massima, e lo traforma in una stringa di
livello.
Input: £TNUTP Tipo di input: L=stringa di livello
£TNUNR Numero da editare (max 99)
£TNULL Lunghezza totale (min. 2 max.30)
£TNULC ' ' Riempimento '.'
'x' Riempimento carattere x
Output: £TNUSX Stringa di composizione del livello
Esempi:
£TNUNR £TNULC £TNULL £TNUSX
1---+----+--...
1 5 1
3 5 ..3
6 5 ....6
1 - 5 1
3 - 5 --3
6 - 5 ----6
FLUSSO (caso 6)
Uguale a flusso 1 se £TNUNR è diverso da 0.
Se £TNUNR uguale a 0 restituisce una stringa formattata
Esempi:
£TNUNR £TNUPD _ £TN
0 32 0,00
0 30 0
FLUSSO (caso 7)
Riceve un numero (da 1 a 9999) e lo trastorma in una stringa
contenente il numero romano
Se il numero è maggiore di 9999 in £TNUSX ritorna blanks
Esempi:
£TNUNR £TNUSX
123 CXXIII
ESEMPIO DI CHIAMATA (Caso 1)
MOVEL'N' £TNUTP
Z-ADD<numero> £TNUNR
Z-ADD<pd> £TNUPD
EXSR £TNU
MOVEA£TN <stringa>
_1_============================================================================================== ATTENZIONE !! : £TN è una schiera quindi la stringa va inserita con un MOVEA non solo con un MOVE, pena l'overflow. è consigliabile pulire la schiera £TN con un CLEAR prima di valorizzarla. ==============================================================================================_n_