Add new attachment

Only authorized users are allowed to upload new attachments.

This page (revision-1) was last changed on 02-May-2012 12:16 by UnknownAuthor

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Difference between version and

At line 1 added 209 lines
%%(display:none)
{{{
WikiUp
}}}
/%
[{TableOfContents }]\\
!!! 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:
Se l'ultimo carattere della stringa è uno tra 'èJKLMNOPQR' la copy
lo interpreta come un carattere non editato e aggiunge alla
stringa rispettivamente (0-,1-,2-,3-,4-,5-,6-,7-,8- o 9-)
per evitare questo comportamento impostare £TNUNE='1' e l'ultimo
carattere verrà escluso
Esempi:
_______ £TN_________ £TNUNE £TNUNR
100L . 1003-
100R . 1009-
100L 1 100
100R 1 100
!! 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_
This page has only one version
«