JS3 Client SBH — il pannello Opzioni, le stampe e gli strumenti
- 1. Il pannello Opzioni
- 10. Un documento nel visualizzatore
- 11. Affiancato alle maschere
- 12. Tasti funzione
- 14. La barra dei comandi
- 2. Manuale in linea
- 3. Informazioni sulla sessione
- 4. Tema scuro
- 5. Documenti: il pannello affiancato
- 6. Dentro la funzione: Stampa la schermata
- 7. Trace del protocollo
- 8. Tutta la finestra
- 9. Archivio stampe
1. Il pannello Opzioni
Con il modulo e la voce scelti nel menu (la funzione non e' ancora avviata), il pulsante con le tre righe in fondo a sinistra apre il pannello verso l'alto, dentro la barra: e' quello che nel client legacy stava nei menu della finestra. Le voci sono divise in tre gruppi: Sessione (uscire, archivio stampe, manuale, informazioni), Vista (menu, tutta la finestra, stampa della schermata, strumenti della griglia, tema, carattere, trace) e Impostazioni (tasti funzione). Una voce che in quel momento non ha senso resta a video ma spenta, e sotto il nome dice perche': cosi' non si cerca una funzione che "non c'e'".
A destra delle schede, con una funzione aperta, la barra dice che funzione sta girando: tipo di lavoro, Definitivo o Simulato (il simulato su fondo arancione), la stampante con cui e' partita (nome e tipo; segue il cambio chiesto dal programma con «Scegli la stampante») e il ruolo. Quando la barra non ha spazio (tante schede, finestra stretta, schermo diviso) diventano un pulsante compatto che apre verso l'alto un pannello con i dettagli. I tasti funzione non stanno piu' qui: sono nella barra dei comandi (§14). Form, maschera e campo li mostra F7 sul campo in input (la mini-guida del client legacy) o Maiusc + clic destro; il piede del pannello Opzioni lo ricorda.
✔ Verifica: il pannello ha i tre gruppi Sessione, Vista, Impostazioni, in quest'ordine.
10. Un documento nel visualizzatore
Il visualizzatore mostra le stampe (PDF, HTML, testo impaginato in Courier a sei righe per pollice) e i file che il server manda. Per vederlo senza stampare niente, Griglia in XML mette l'XML della griglia delle condizioni fra i documenti, come l'export XML del client legacy: arriva una finestra a tutto schermo (per l'XML una pagina a tutta larghezza in carattere fisso; le stampe di testo restano fogli A4 e, se una riga e' piu' larga del foglio, il foglio scorre) con Stampa, Scarica, Apri in una nuova scheda e Affianca alle maschere.
✔ Verifica: il visualizzatore si intitola «20000DTB2-200 (XML)».
✔ Verifica: il documento contiene l'XML della griglia (<grid>).
✔ Verifica: l'XML e' una pagina a tutta larghezza (non un foglio A4) e le righe piu' lunghe della finestra si leggono scorrendo, non sono tagliate.
11. Affiancato alle maschere
Affianca alle maschere sposta il documento nel pannello Documenti del §5: la funzione resta a sinistra e si continua a lavorare, la stampa a destra. Il pulsante Documenti porta il numero dei documenti ricevuti nella sessione.
✔ Verifica: il pannello a destra mostra lo stesso XML e il campo della funzione resta a video.
✔ Verifica: il pulsante Documenti porta il numero dei documenti ricevuti.
✔ Verifica: ricliccato Documenti, il pannello si chiude.
12. Tasti funzione
Come la configurazione tasti del client legacy (SbhKeyConfDlg): quale tasto della tastiera fa
Esci, Conferma, Guida e Cerca / Salto, fra F9, F10, F11, F12 ed Esc. Un tasto vale
per un'azione sola: sceglierlo per un'altra le scambia. Qui il predefinito di Esci e' Esc; «Come
il client legacy» rimette Esci su F11. La scelta resta nel browser e si vede subito nel tasto Esci
della barra dei comandi (il tooltip dice il tasto) e nel sottotitolo della voce.
✔ Verifica: messo Esci su F11, il tasto Esci della barra dei comandi dice «Esci · F11».
✔ Verifica: il sottotitolo di «Tasti funzione» nel pannello dice «Esci F11».
✔ Verifica: rimesso Esci su Esc, il tasto dice di nuovo «Esci · Esc» e la preferenza salvata e' quella di prima.
14. La barra dei comandi
La toolbar del client legacy sopra le maschere (TBR_FORM, SbhFormChildFrame.cpp:599): conferma,
invio, esci; campo e pagina precedente/successiva; F1-F8; cerca (F9) e guida del campo; poi stampa,
esporta, funzioni della griglia, manuale e informazioni. Ogni pulsante fa esattamente quello che fa
il suo tasto e si accende solo se il campo in input lo ammette (nel legacy SbhFormRegion::UpdateCmd
e ResolveCmd, SbhFormRegion.cpp:610-750); le funzioni del client si accendono come le loro voci
nelle Opzioni. Il tooltip dice il nome e il tasto, con la rimappatura della §12 («Esci · Esc», o
«Esci · F11»). Il clic non toglie il cursore al campo. I Maiusc+F e Rifiuta compaiono solo quando il
campo li ammette; le etichette dei tasti sono fisse, come nel legacy (il COBOL non ne manda).
Script: npx playwright test --config=playwright.sbh.config.ts sbh-web-barra-comandi
(frontend/e2e/sbh-web-barra-comandi.spec.ts), su BE0 › Tabella I V A in interrogazione.
Dove sta la sceglie l'utente dal menu ⋯ della barra, e resta nel browser (sbh-web.barra-comandi,
per tutte le schede di sessione): fissa in alto (il predefinito), fissa in basso, mobile
(una finestrella da trascinare per la maniglia a sinistra, anche con le frecce; doppio clic la rimette
in alto a destra; la X la chiude), segue il cursore (compatta, solo i tasti accesi, sotto il
campo in input o sopra se sotto non c'e' posto: si sposta con un'animazione breve quando cambia il
campo, niente animazione con «riduci movimento» del sistema). Spenta, si riaccende da Opzioni ›
Vista › Barra dei comandi o con Alt+Maiusc+B, e torna com'era. Sta sopra le maschere e le
NEW-FORM, dentro lo schermo della sessione.
✔ Verifica: fissa in alto, sopra le maschere; Esci e Invio accesi, il tooltip di Esci dice «Esci · Esc».
✔ Verifica: aperto il menu ⋯, il cursore resta nel campo in input e «Fissa in alto» e' spuntata.
✔ Verifica: mobile, trascinata in basso a sinistra si sposta col puntatore e la posizione si ricorda nel browser; trascinata oltre il bordo si ferma dentro lo schermo della sessione; il cursore resta nel campo.
✔ Verifica: segue il cursore, compatta, accanto al campo in input senza coprirlo, solo tasti accesi.
✔ Verifica: Alt+Maiusc+B la spegne, la voce delle Opzioni dice «Spenta» e la riaccende com'era.
✔ Verifica: la X rossa della barra fa quello che fa Esc: la funzione si chiude e si torna al menu.
2. Manuale in linea
Manuale in linea apre in una finestrella del browser accostata a destra (sempre la stessa,
«sbh-manuale», che si riusa) la pagina del manuale della voce scelta nel menu, come la finestra del
manuale del client legacy; senza una voce scelta apre la pagina iniziale. Se il browser blocca le
finestre, si apre in una scheda.
L'indirizzo lo costruisce manualUrl (sbh-web/src/session/utils/menu-file.util.ts): il modulo con
la B che diventa E (B20 → E20), la versione se non e' 0000, la fase e le posizioni della voce
nell'albero a due cifre, e il prodotto dal livello d'uso (SIGEA, eSIGEA, SIGEAdb).
✔ Verifica: con la voce scelta, sotto il nome della voce c'e' «Della funzione scelta nel menu».
✔ Verifica: la scheda nuova si apre su
https://gsdoc.genesyssoftware.eu/page-function/E20…/1?prodotto=….
Sul server di prova e' la pagina «1.1.1.1 - Tabelle Generali: 1. Condizioni di Pagamento».
✔ Verifica: scelta la voce, il pannello Opzioni si chiude da solo.
3. Informazioni sulla sessione
Nel legacy era «Informazioni su»: chi e' collegato, a quale server, con quale connessione, catalogo, livello d'uso, documentale e versione del client. Serve soprattutto quando si chiede aiuto: Copia mette tutto negli appunti, una riga per voce.
✔ Verifica: ci sono le righe Utente, Server (nodo), Porta, Connessione n., Catalogo, Livello d'uso.
✔ Verifica: Utente non e' vuoto (non «—»).
✔ Verifica: Connessione n. e' un numero.
✔ Verifica: Client comincia con «sbh-web».
✔ Verifica: Chiudi chiude la finestra.
4. Tema scuro
Tema scuro e' un interruttore: cambia il tema di tutta l'applicazione (la stessa preferenza della luna nella barra in alto dell'ERP), non solo delle maschere.
✔ Verifica: acceso, la pagina passa al tema scuro (classe app-dark sulla pagina).
✔ Verifica: l'interruttore della voce e' acceso.
✔ Verifica: ricliccato, si torna al tema chiaro.
5. Documenti: il pannello affiancato
Il pulsante Documenti della barra in basso apre a destra un pannello con le stampe e i file che il server manda durante la sessione, affiancato alle maschere: lo schermo si divide e il divisore si trascina (doppio clic lo rimette a meta'). Prima di qualunque stampa il pannello e' vuoto e lo dice.
✔ Verifica: il pannello dice «Le stampe della sessione compaiono qui.».
✔ Verifica: il pulsante Documenti resta premuto finche' il pannello e' aperto.
✔ Verifica: ricliccato, il pannello si chiude.
6. Dentro la funzione: Stampa la schermata
Si sceglie Interrogazione e si avvia. Aperta la funzione il pannello cambia: si accendono le voci che lavorano sulla funzione a video (stampa, strumenti della griglia, archivio stampe) e si spegne Esci dalla sessione, perche' uscire con una funzione aperta la troncherebbe a meta' (il COBOL non chiude file e transazioni): prima si torna al menu con Esci.
Stampa la schermata e' l'hardcopy del client legacy: stampa la funzione com'e' a video, e
solo quella. Da printScreen
(sbh-web/src/session/components/sbh-session-page/sbh-session-page.component.ts): mette la classe
sbh-print-target sul contenitore della funzione e sbh-printing sulla pagina, poi chiama la
finestra di stampa del browser; le regole @media print di sbh-cornice.component.ts nascondono
tutto il resto (barra in alto, menu, barra in basso, pannelli) e allargano la funzione alla pagina.
Chiusa la finestra di stampa (afterprint) le due classi si tolgono. Stampante, copie e formato si
scelgono nella finestra del browser: la stampa silenziosa su una stampante di Windows del legacy da
un browser non si puo' fare. Lo script non apre la finestra di stampa (bloccherebbe il browser
di prova): verifica che la voce ci sia e sia attiva.
✔ Verifica: dentro la funzione Stampa la schermata e' attiva e dice «La funzione a video, com'e'».
✔ Verifica: dentro la funzione Archivio stampe e' attivo.
✔ Verifica: dentro la funzione Esci dalla sessione e' spento.
7. Trace del protocollo
Trace del protocollo apre a destra il pannello con ogni frame scambiato col server: ◀ quello che arriva, ▶ quello che parte, · gli eventi (sessione aperta, chiusa, macro non gestite). Serve a capire cosa il programma chiede e cosa il client risponde, senza il log del client legacy. Il livello, in alto a sinistra, dice quanto scrivere e si ricorda nel browser:
| livello | cosa scrive |
|---|---|
| 0 | niente: trace spento |
| 1 | solo gli eventi (sessione, errori, avvisi), nessun frame |
| 2 | anche una riga per frame: MCCB func=… subf=… optn=… retn=… name="…" dati=… sicb=… e i byte |
| 3 | anche il dump esadecimale di ogni frame: offset, 16 byte in esadecimale, gli stessi in testo |
Il trace scrive solo da quando e' acceso: per vedere l'avvio della funzione si accende dal menu,
prima di avviare. La casella Filtra tiene le righe che contengono il testo (una macro, il
nome di una maschera) e il contatore dice quante sono su quante; Scarica salva un .txt con le
righe filtrate (come il 000.txt del log legacy) col nome sbh-trace-AAAAMMGG-hhmmss.txt
in ora locale; il cestino svuota. Le righe lunghe vanno a capo dentro il pannello; il dump
esadecimale, che a capo non si leggerebbe, scorre in orizzontale dentro la sua riga.
✔ Verifica: al livello 3 sotto le righe dei frame c'e' il dump esadecimale.
✔ Verifica: ci sono righe in arrivo (◀) e in partenza (▶).
✔ Verifica: nessuna riga esce a destra del pannello: le righe lunghe vanno a capo.
✔ Verifica: filtrando per il nome della griglia 20000DTB2-200 restano meno righe, tutte con quel
nome, e il contatore dice «N / totale».
✔ Verifica: Scarica salva sbh-trace-AAAAMMGG-hhmmss.txt con la data di oggi e l'ora locale,
e il file contiene solo le righe filtrate.
✔ Verifica: al livello 2, aprendo e chiudendo l'archivio stampe, compaiono righe func= senza dump.
✔ Verifica: al livello 1, la stessa apertura dell'archivio non scrive nessun frame.
✔ Verifica: al livello 0, svuotato, il pannello dice «Trace spento.».
8. Tutta la finestra
Dopo il login al legacy la shell tiene solo la barra in alto col logo; Tutta la finestra toglie anche quella e la sessione prende tutta la finestra del browser (non lo schermo intero: le schede e la barra degli indirizzi di Chrome restano). Vale per tutte le schede di sessione. Si torna indietro con la stessa voce o col pulsante che compare nella barra in basso.
✔ Verifica: acceso, la barra in alto sparisce.
✔ Verifica: il pulsante «Tutta la finestra» della barra in basso resta premuto.
✔ Verifica: ricliccato quel pulsante, la barra in alto torna.
9. Archivio stampe
L'archivio stampe (lo storico delle stampe sul server, SbhSpmSearchDlg del legacy) si apre
solo mentre la funzione aspetta un input: le richieste viaggiano "a parte" rispetto alla
maschera in attesa, e il server risponde senza che il programma si muova; chiuso l'archivio, la
funzione riprende da dove era, col cursore sul campo. All'apertura il server manda l'elenco delle
stampanti d'uscita che hanno stampe nello storico; si cerca per stampante d'uscita, utente
(quello del login) e date di creazione (oggi, di partenza). Sulla ricerca di oggi non c'era niente:
lo script allarga Creati dal a un anno fa e trova due flussi del registro IVA.
✔ Verifica: la stampante d'uscita e' gia' scelta: l'elenco e' arrivato dal server.
✔ Verifica: senza un flusso scelto Anteprima, Ristampa, Proroga 30 gg ed Elimina sono spenti.
✔ Verifica: allargata la data, la ricerca trova flussi, con titolo, uscita e formato (Testo).
Un clic su un flusso lo sceglie e chiede al server i suoi documenti, che compaiono a destra con titolo, copie, ristampe, ultima stampa, email e identificativo. Con un flusso scelto si accendono i comandi in fondo: Anteprima (il flusso arriva nel visualizzatore del browser), Proroga 30 gg della conservazione ed Elimina (in due clic: il primo arma la conferma). Ristampa vuole anche la stampante del server, scelta nella tendina accanto (l'elenco arriva dal server). Le caselle a sinistra dei documenti scelgono quali documenti del flusso vedere in anteprima o ristampare; nessuna casella = tutto il flusso. La guida si ferma qui: anteprima, ristampa, proroga ed eliminazione agiscono sullo storico vero e non si provano.
✔ Verifica: cliccato un flusso, a destra c'e' «Documenti di
✔ Verifica: con il flusso scelto Anteprima, Proroga 30 gg ed Elimina sono attivi.
✔ Verifica: senza la stampante del server Ristampa resta spento.
✔ Verifica: la casella di un documento si spunta (un documento scelto).
✔ Verifica: l'elenco delle stampanti del server non e' vuoto, e sceltane una Ristampa si accende.
✔ Verifica: chiuso l'archivio, la funzione riprende col cursore sul codice pagamento.