WikiUp

INTRODUZIONE

Tra gli ogggetti trattati dalle matrice, c'è la cella grafica (tipo J4, parametro BAR) che permetto di visualizzare varie forme (triangoli, cerchi, barre, linee verticali, ecc..) con una sintassi specifica. Per semplificare la composizione della stringa XML che esegue tali funzioni, è stata realizzata la routine £G93, che riceve in input le informazioni elementari, esegue le elaborazioni opportune (determinazione della scala, ec..) e torna la stringa £G93 che va semplicemente trimmata, ed aggiunta alla stringa £JaxCP, nella colonna opportuna.

Vi sono tre tipi di oggetti grafici - di cella elementari - di cella composti - di colonna Il primo tipo si risolve in una singola chiamata, il secondo in più chiamate per comporre una cella, il terzo in più chiamate per comporre tutte le celle di una colonna. Per quest'ultimo è quindi necessario che la routine conservi memoria tra un richiamo e l'altro. A tale scopo sono state realizzate più repliche: ad ogni richiamo si deve comunicare l'identificativo della replica. Si consiglia di tenere la versione base per gli oggetti di cella (sia elementari sia composti) ed una replica per ogni colonna. Sono state implementate 10 repliche, quindi è possibile presentare, in una matrice, fino ad un massimo di 10 colonne. Per superarlo sarà sufficiente aggiungere ulteriori repliche a B£G93G.

MODALITA' DI RICHIAMO

Tutti i campi di input sono puliti in uscita e tutti quelli di output sono puliti in ingresso.

OGGETTI DI CELLA ELEMENTARI

Quando si deve disegnare in una cella un singolo oggetto, è sufficiente un unico richiamo alla routine £G93. Celle diverse della stessa colonna possono contenere forme diverse: non vi è "memoria" tra due richiami successivi per valorizzare la stessa cella. I campi di input sono i seguenti:

£G93FU Funzione_n_

Impostare 'WRI'

£G93I01 Numero campo_n_

Si consiglia di lasciare vuoto questo campo.

£G93I02 Forma da disegnare_n_

Riferirsi alla COPY £G93DS per l'elenco dei valori possibili. NB: queste informazioni sono presenti nel sorgente della /copy, non nella sua documentazione. Vedi Composizione cella grafica (Spec.D) (MBQILEGEN-£G93DS)
Non va scelta la forma linea (riservata per i casi successivi). La forma vuota serve quando si vuol riempire solo lo sfondo. Ad esempio, se in una colonna si imposta un colore di sfondo (nel modo che sarà esposto nel seguito) e, solo in alcuni casi, si vuol disegnare un triangolo, quando non lo si disegna si vuole comunque riempire lo sfondo per continuità verticale: in questo caso si imposta la forma vuota.

Colore_n_

Il colore di riempimento della forma viene determinato con questa risalita . Valore RGB in £G93I20. E' possibile inserire il codice *NONE che ha il significato di "trasparente", vale a dire che assume il colore dello sfondo. Può essere utile, tra l'altro, in caso di cella composta (strudel o scritture in ADD), per saltare alcune fette. . Se assente: Numero colore di £ATR in £G93I03 . Se assente: Numero colore 16 (grigio) Questo campo non è significativo per la forma semaforo. Talvolta può interessare che

Colore sfondo _n_

Il colore dello sfondo viene determinato con questa risalita . Valore RGB in £G93I21 . Se assente: Numero colore di £ATR in £G93I05 . Se assente: si lascia bianco. Non è significativo il colore *NONE.

£G93I04 Luce semaforo_n_

Par la forma semaforo, si impostano in qusto campo le luci da accendere. Riferirsi alla COPY £G93DS per l'elenco dei valori possibili. NB: queste informazioni sono presenti nel sorgente della /copy, non nella sua documentazione. NB: queste informazioni sono presenti nel sorgente della /copy, non nella sua documentazione. Vedi Composizione cella grafica (Spec.D) (MBQILEGEN-£G93DS)

OGGETTO CELLA LIVELLO

Un particolare oggetto elementare è il livello: viene disegnata una linea il base a numeri ricevuti: - livello di partenza in £G93I10 - livello di arrivo in £G93I13 - livello massimo in £G93I26. La cella viene divisa in un numero di celle pari al livello massimo. Se si imposta solo il livello di parteza si riempie la cella corrispondente. Se si imposta solo il livello di arrivo si riempiono le celle dalla prima a quella corrispondente al livello di arrivo. Se si impostano entrambe le celle, si riempiono le celle da quella corrispondente al livello di partenza a quello corrispondente al livello di arrivo. Dato che questo oggetto in realtà è uno strudel automatico (lo strudel, un tipo oggetto di cella composto, verrà descritto nel seguito), sono attive le sue formattazioni: % di spazio a sinistra e a destra (£G93I06 e £G96I07) e altezza della colonna (£G96I08), che vanno passate nella funzione WRI. Per quanto riguarda il colore delle singole celle, se viene passato il codice (come RGB in £G93I20 o come £ATR in £G93I02) tutte le celle vengono riempite con questo colore: se invece il si lascia vuoti, esse vengono riempite con una gradazione crescente di colori, in modo che la ennesima cella venga riempita sempre con lo stesso colore. E' possibile inoltre impostare che vengano alternati due colori (il primo per le posizoni dispari e il secondo per quelle pari). Devono essere impostai sia il colore 1 (£G93I03, £ATR oppure £G93I20, RGB) sia il colore 2 (£G93I27, £ATR oppure £G93I28, RGB).

OGGETTI DI CELLA COMPOSTI

Questa forma permettere di disegnare una serie di linee nella stessa cella. L'utilizzo implementato è lo "strudel" vale a dire una torta rettangolare, in cui il colore delle singole fette è proporzionale ai valori passati. Si devono quindi eseguire più richiami, ma tutti all'interno della costruzione della stessa cella. Quindi anche in questo caso non va conservata memoria in richiami successivi per la stessa cella in righe diverse. Essa potrebbe contenere forme eterogenee: in una riga un semaforo, in qella successiva uno strudel.

_2_RICHIAMO IN INIZIALIZZAZIONE_n_

All'inizio di ogni cella, va comunicato che si vuole comporre una nuova stringa

£G93FU Funzione_n_

Impostare 'INZ'

£G93I01 Numero campo_n_

Si consiglia di lasciare vuoto questo campo.

£G93I02 Forma da disegnare_n_

Va scelta la forma '05' (linea)

% Spazio_n_

Si può impostare la percentuale di spazio da lasciare a sinistra (£G93I06) e a destra (£G93I07) rispetto al bordi della cella (valore da 1 a 99): se la somma supera 100 vengono entrambi azzerati.

£G93I08 Strudel ad altezza variabile_n_

E' significativo solo in disegno dello strudel: impostare un valore positivo (ad esempio 1) per comunicare che lo strudel sarà ad altezza variabile.

£G93I09 Tipo di linea_n_

Si imposta il valore '6' (strudel)

_2_RICHIAMO IN IMPOSTAZIONE SCALA_n_

Viene lanciata per ogni numero in cui suddivider la linea. Ad esempio, se si passano i numeri 23, 40 10 e 3 (ciascuno con un colore diverso) verranno disegnate le seguenti linee: (al netto degi spazi agli estremi) 23 / (23+40+10+3)= 30 % (23+40) / (23+40+10+3)= 86 % (23+40+10) / 23+40+10+3)= 96 % (23+40+10+3) / (23+40+10+3)= 100 %

£G93FU Funzione_n_

Impostare 'SCA'

£G93I08 Altezza strudel_n_

E' significativo in caso dello strudel, quando è stato passato un valore, in questo stesso campo, nella funzione INZ, per comunicare che lo strudel è ad altezza variabile. Si può impostare un numero da 1 a 99, che riduce percentualmente l'altezza della linea, per la fetta che si sta pssando. E' possibile azzerare l'altezza di una fetta impostando il colore *NONE, che rende questa fetta trasmarente: mentre non va impostata l'altezza a zero, in quanto il client in questo caso la porterebbe a 100.

£G93I10 Numero da riportare_n_

Colore_n_

E' il colore con cui verrà riempita la linea fino al numero precedente. Per le risalite riferirsi a quanto esposto per la cella elementare

_2_RICHIAMO IN SCRITTURA_n_

Quando sono stati passati tutti i numeri si deve chiedere alla routine di ritornare la stringa £G93SR che verrà trimmata nella £JaxCP.

£G93FU Funzione_n_

Impostare 'WRI'

Colore sfondo_n_

Per le risalite riferirsi a quanto esposto per la cella elementare

£G93I08 Altezza linea_n_

Si può impostare un nmuero da 1 a 99, che riduce percentualmente l'altezza della linea. NB: TUTTO lo strudel viene ridotto. Se attivata la presentazione dello strudel ad altezza variabile, questo campo viene trascurato.

OGGETTI DI COLONNA

In questo caso, in ogni colonna si disegna un grafico diverso, quindi deve essere riservato un numero di campo (£G93I01) diverso per ciascuna di esse, che va impostato prima di tutti i richiami di questo tipo. Cià ha l'effetto di richiamare una versione specifica del programma, che quindi possiede le proprie aree di memoria riservate (valori minimo e massimo, scale, ecc...).

_2_RICHIAMO IN INIZIALIZZAZIONE_n_

Va eseguito all'inizio della costruzione della matrice, per ogni colonna grafica

£G93FU Funzione_n_

Impostare 'INZ'

£G93I02 Forma da disegnare_n_

Va scelta la forma '05' (linea)

£G93I09 Tipo di linea_n_

Si imposta un valore da a '5' Riferirsi alla COPY £G93DS per l'elenco dei valori possibili. NB: queste informazioni sono presenti nel sorgente della /copy, non nella sua documentazione. Vedi Composizione cella grafica (Spec.D) (MBQILEGEN-£G93DS)
Le linee disegnate sono le seguenti:

Numero La scala va dal numero più basso (se maggiore di zero si assume zero) al numero più alto (se minore di zero si assume zero). Se si forza (in questo richiamo di inizializzazione) la risoluzione massima, nel campo £G93I23, la scala va dal valore minimo a quello massimo. Viene disegnata una linea a partire dall'origine, a sinistra per i numeri negativi e a destra per quelli positivi. Nel caso di forzatura della risoluzione massima, se tutti i vallri sono positivi si parte dal valore minimo, se sono negativi si parte dal valore massimo.

Intervallo di numeri La scala va dal'estremo inferiore più basso (se maggiore di zero si assume zero) all'estreno superiore più alto (se minore di zero si assume zero). Se si forza (in questo richiamo di inizalizzazione) la risoluzione massima, nel campo £G93I23, la scala va dall'estremo inferiore a quello superiore. Viene disegnata una linea per ogni intervallo, dall'estremo inferiore a quello superiore.

Data o istante L'istante è definito da una coppia di numeri: data e istante (oggetto I1 di tipo 1). La scala va dalla data (o istante) più bassa a quella più alta. Viene disegnata una linea a partire dalla data (o istante) più bassa, fino al valore da rappresentare.

Intervallo di date o istanti La scala va dal'estremo inferiore più basso all'estremo superiore più alto. Viene disegnata una linea per ogni intervallo, dall'estremo inferiore a quello superiore.

Nel caso di valori tutti uguali di numeri date o istanti, viene disegnata una linea al 50 % dello spazio utile.

Valori della linea. Metodo £G93ME 'SCA'_n_

E' possibile impostare in inizializzazione gli estremi della scala, se sono noti oppure se li si vuole prefissare indipendentemente dai valori effettivi (in questo caso eventuali valori esterni verranno troncati agli estremi e ne verrà data segnalazione tra i parametri di ritorno. Nel caso di numeri o intervalli di numeri si devonmo riempire i valori £G93I10 e £G93I3. Nel caso di date o intervalli di date si devonmo riempire i valori £G93I11 e £G93I4 Nel caso di istanti o intervalli di istanti si devonmo riempire i valori £G93I11, £G93I12, £G93I4, £G93I15. Non è indispensabile fornire i valori in ordine crescente

% Spazio_n_

Riferirsi a quanto esposto per la cella composta

£G93I16 Applicazione % di spazio agli estremi_n_

Permette di correggere l'agggiunta degli spazi agli estremi, nel caso di numeri sempre dello stesso segno. Riferirsi alla COPY £G93DS per l'elenco dei valori possibili. NB: queste informazioni sono presenti nel sorgente della /copy, non nella sua documentazione. Vedi Composizione cella grafica (Spec.D) (MBQILEGEN-£G93DS)

£G93I17 Aggiunta asse Y_n_

E' possibile decidere se disegnare l'asse Y, che assume la seguente posizione - se numero o intervallo di numeri è l'origine; in presenza della forzatura della massima risoluzione, se tutti i valori sono positivi è l'estremo inferiore, se tutti negativi è l'estremo superiore, se misti resla l'origine. - se data, istante, o intervallo di date o istanti è l'estremo inferiore. In questo caso è significativo se è stata impostata una % di spazio a sinistra. Con questo parametro si può decidere se disegnare l'asse Y. Riferirsi alla COPY £G93DS per l'elenco dei valori possibili. NB: queste informazioni sono presenti nel sorgente della /copy, non nella sua documentazione. Vedi Composizione cella grafica (Spec.D) (MBQILEGEN-£G93DS)

Caratteristiche asse Y_n_

Si può impostare la largehzza in pixel dell'asse Y (£G93I18) default 1, ed il suo colore (£G18I19) default grigio (colore 19 di £ATR).

£G93I22 Sfondo alternato_n_

Se non è stato impostato esplicitamente uno sfondo (in scrittura), impostando questo parametro lo sfondo viene riempito a righe alternate (con il valore £ATR 19), in modo da ottenere un effetto di lettura facilitata.

£G93I25 Tipo griglia_n_

Impostando il valore '01', nel caso di date, istanti, intervalli di date e di istanti, viene disegnata una linea verticale ad ogni cambio di giorno. Impostando il valore '02', nel caso di una cella che rappresenta un giorno (estremi di scala 0 - 24), viene riportata una griglia che riporta le ore, ad altezza variabile per migliorare la lettura. Attenzione: la routine NON controlla il fatto che la cella rappresenti effettivamente un giorno.

_2_RICHIAMO IN IMPOSTAZIONE SCALA_n_

Qualora non siano stati passati in inizializzazione, è possibile passare tutti i valori da riportare, ciascuno con un richiamo alla routine.

£G93FU Funzione_n_

Impostare 'SCA'

Valori_n_

In funzione del tipo di linea, si pasaa il valore (o i valori, in caso di intervalli o istanti) nei campi specifici. Nel caso di numeri si deve riempire il valore £G93I10. Nel caso di intervalli di numeri si devonmo riempire i valori £G93I10 e £G93I3. Nel caso di date si deve riempire il valore £G93I11. Nel caso di intervalli di date si devonmo riempire i valori £G93I11 e £G93I4 Nel caso di istanti si devonmo riempire i valori £G93I11 e £G93I12. Nel caso di intervalli di istanti devonmo riempire i valori £G93I11, £G93I12 (istante iniziale) e £G93I4, £G93I15 (istante finale). Nel caso di intervalli non è indispensabile fornire i valori in ordine crescente. Questi valori, nella definizione della scala, vengono confrontati con quelli eventalmente forniti in inizializzazione.

_2_RICHIAMO IN SCRITTURA_n_

Ad ogni scrittura di riga si debe richiamare la funzione, passando il valore da presentare, e ricevendo la stringa £G93SR che verrà trimmata nella £JaxCP.

£G93FU Funzione_n_

Impostare 'WRI'

Colore sfondo_n_

Per le risalite riferirsi a quanto esposto per la cella elementare

Valori_n_

Riferirsi a quanto esposto nel richiamo in impostazione scala

£G93I08 Altezza linea_n_

Riferirsi a quanto esposto nel richiamo in scrittura cella composta

_2_RICHIAMO IN SCRITTURA IN ADD_n_

E' possibile disegnare più oggetti dello stesso tipo nella stessa cella. In tal caso, si utilizza il metodo 'ADD' per i richiami successivi al primo, che non pulisce la stringa di output £G93RI ma la ritorna aggiornata con il valore. Alcune impostazioni (l'altezza e lo sfondo) sono sentite nel primo richiamo (con metodo vuoto), mentre altre (il colore) sono valide per tutti i richiami. Va tenuto presente che i valori passati devono essere progressivi ed assoluti. Ciò distingue questa modalità di richiamo dallo strudel. Se i valori successivi sono inferiori ai precedenti vengono trascurati. Ad esempio, se si eseguono questi richiami (con tipo linea numero e valore massimo 10) WRI - - 2 - colore rosso WRI - ADD - 4 - colore giallo WRI - ADD - 6 - colore blu si ha l'effetto di una linea riempita per il primo 20 % in rosso, dal 20 % al 40 % in giallo, dal 40 % al 60 % in blu, e la parte rimanente vuota. Lo stesso effetto si ha con gli inervalli: l'eventuale sovrapposizione, anche parziale, viene trascurata.

_2_VALORI DI RITORNO_n_

Dopo ogni richiamo in scrittura di oggetti di colonna, vengono ritornati i seguenti valori: £G93O01: Valore della scala, in numeri, giorni o istanti £G93O02: Flag se il valore è un estremo. Riferirsi alla COPY £G93DS per l'elenco dei valori ritornati. NB: queste informazioni sono presenti nel sorgente della /copy, non nella sua documentazione. Vedi Composizione cella grafica (Spec.D) (MBQILEGEN-£G93DS)
£G93O03 - £G93O04: Valore minimo e massimo dell'intera colonna (se numero o intervallo di numeri) £G93O05 - £G93O06: Data minima e massima dell'intera colonna (se data, istante, o intervallo di date o istanti) £G93O07 - £G93O08: Istante minimo e massimo dell'intera colonna (se istante o intervallo di istannti) £G93O09 - Flag se riga con sfondo. Viene tornato se è stato impostato lo sfondo alternato. Può essere utile per riempire, in questo caso, altre celle grafiche con lo stesso sfondo, dando un effetto di continuità. £G93O10 - Torna '1' se valore inferiore al minimo. Può accadere quando la scala è stata forzata. £G93O11 - Torna '1' se valore superiore al massimo. Può accadere quando la scala è stata forzata.

NOTE GENERALI

LARGHEZZA COLONNA

La larghezza delle colonne di una matrice viene determinata altomaticamente dal Client. L'unica eccezione è la cella grafica, in cui il valore impostato nella griglia assume il significato di "Numero di unità grafiche". Per avere una risoluzione più alta questo valore va aumentato. Per gli oggetti elementari, tuttavia, questa larghezza è opportuno sia fissa. Riferirsi alla COPY £G93DS per i valori consiglati per i singoli oggetti grafici. NB: queste informazioni sono presenti nel sorgente della /copy, non nella sua documentazione. Vedi Composizione cella grafica (Spec.D) (MBQILEGEN-£G93DS)
E' in sviluppo l'impostazione della larghezza della colonna direttamente da questa routine.

CONSIDERAZIONI ESTETICHE

In caso di diagrammi di GANTT impostare % di spazi ai bordi, in modo da dare un senso di continuità diagonale. In caso di disegno di altre linee è invece preferibile ridurre l'altezza, in modo che le linee non si tocchino verticalmente. In diagrammi di numeri è preferibile che, se positivi, non tocchino il bordo di destra, se negativi il bordo di sinistra, se a farfalla entrambi. L'applicazione della % di spazio agli estremi 'appoggiata' riflette questa considerazione.

MODALITA' DI TEST

Questa /COPY non può essere simulata con un normale programma di test, in quanto il suo output deve essere grafico. La visualizzazione della stringa risultante (£G93SR) non è sufficientemente significativa. Per questo motivo è stata realizzata una scheda di test, richiamabile dalla scheda della /COPY. In essa sono presesnti due script, la cui esecuzione lancia richiami multipli alla routine e, nella matrice del risulato, presenta le celle grafiche ottenute. Gli script, contenuti in SCP_SET di SMEDEV sono: . SIM_G93_01, che contiene gli esempi base e verrà aggiornato dallo sviluppo. . SIM_G93_02, in cui si possono inserire le proprie prove. La sintassi di questi script è la seguente: TAG ;;SIM.G93 Gli attributi sonno i parametri di input della routine. Ogni riga contienme un richiamo con funzione, metodo, e attributi opportuni. L'attributo "Significato" (Txt) fa da intestazione di ogni numvo esempio, e da separazione tra due esempi diversi. Viene scritta una riga per ogni funzione 'WRI' a meno che si stato esplicitamente impedito, impostando l'attributo "Escluso da stampa" (Esc) a '1'. In questo modo si simula la scrittura in ADD, valorizzando questo attributo su tutte le esecuzioni in WRI, tranne l'ultima.

Nella riga della matrice, oltre alla cella grafica, sono riportati i campi di output, compresa la stringa £G93SR, che è il campo passato effettivamente alla £JaxCP.

Add new attachment

Only authorized users are allowed to upload new attachments.
«