WikiUp

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_

Add new attachment

Only authorized users are allowed to upload new attachments.
«