EVIDENZIARE RIGHE DI TESTO NASCOSTE

di il
9 risposte

EVIDENZIARE RIGHE DI TESTO NASCOSTE

Salve,

vorrei capire se è possibile ovviare al seguente inconveniente: in una maschera di inserimento dati ho varie caselle di testo, su cui l'utente inserisce liberamente testo. Le caselle sono formattate in altezza in modo che il testo compaia in un unica riga, ma se l'utente mi inserisce un ritorno a capo il testo seguente viene correttamente inserito ma risulta non visibile una volta salvato il record.

Inoltre anche un report generato sugli stessi dati con la stessa logica di visualizzazione grafica incorre nello stesso problema, così che non si può mai sapere se ciò che si legge è un dato effettivamente completo.

Il problema si verifica suppongo allo stesso modo anche quando si eccede in lunghezza lo spazio visibile a disposizione.

Mi chiedevo quindi se c'era un modo per evidenziare quando si verifica questo evento, ossia se in verticale o orizzontale vi è del testo che eccede la parte visibile della casella di testo (ad esempio in altri contesti è presente il simbolo dei puntini di sospensione all'estrema destra della casella di testo proprio per segnalare che il testo continua).

Qualche idea?

9 Risposte

  • Re: EVIDENZIARE RIGHE DI TESTO NASCOSTE

    Quello che esponi è sostanzialmente impossibile a meno di errori tuoi e/o errata valutazione, e serve capire se il problema è di Campo o di Visualizzazione.

    Di conseguenza la tua idea di soluzione una cosa da non valutare assolutamente.

    Prima domanda, che tipo di campo hai nella tabella, Testo o Testo Lungo(ex Memo)…?

    Quanti caratteri inserisce chi scrive…?

    Se devono poter inserire + di 255 chars devi usare Testo lungo, perché il campo Testo accetta massimo 255.

    Ipotizzando tu abbia quindi il tipo di campo adatto, nel Report hai impostato la proprietà CANGROW(penso sia ESPANDIBILE in italiano)=Vero…?

    Fai una verifica per bene cervando di fornire dettagli tecnici sensati

  • Re: EVIDENZIARE RIGHE DI TESTO NASCOSTE

    Il problema è di visualizzazione.

    I campi sono sia testo che testo lungo, ma in entrambi i casi non è un problema di caratteri disponibili, che infatti sono sufficienti per l'inserimento.

    Il problema è che in visualizzazione maschera o report (che poi viene stampato su un normale A4) ho spazi fisici limitati, percui non è fattibile un ridimensionamento dinamico con le proprietà ESPANDIBILE/RIDUCIBILE.

    Se ad esempio un utente inserisce testo per un totale di 5 righe, anche brevi, ma io ho in fase di maschera/report una casella che è alta quanto basta per visualizzare al massimo 4 righe, ecco che l'ultima resta fuori.

    Il fatto che la 5a riga non venga visualizzata non è di per se un problema, vorrei soltanto un alert che me lo evidenziasse.

  • Re: EVIDENZIARE RIGHE DI TESTO NASCOSTE

    Conta la lunghezza del testo contenuto in 4 righe e se eccede puoi:

    Allargare il controllo

    Inserire un pallino

    Evidenziare una label con scritto “leggi di più” e al passaggio del mouse mostri la hint col contenuto del campo.

    Cambi il carattere in corsivo e sottolineto

    Cambi il colore di sfondo o del carattere…

    Insomma, usa la fantasia.

  • Re: EVIDENZIARE RIGHE DI TESTO NASCOSTE

    Con l  maschere puoi usare la Form Nativa zoom eventualmente da attivare al doppio click sulla textbox.

    Per i report volendo si può fare anche qualche cosa di molto piu elaborato, come ridimensionare il font, oppure un calcolo preciso di quante righe occupa il testo… o meglio puoi sapere se il testo è esuberante dalla textbox, sono poche righe di codice che sfruttano le proprieta specifiche che il report mette a disposizione in fase di disegno, serve un minimo di analisi ed impstazione… ma i risultati sono perfetti.

    In tal caso puoi mettere una label con carattere grafico tipo Windings o simili, oppure accedi agli UNICODE usando CHRW e visualizzi un pallocchio rosso.

    Se il testo esubera lonrendi visibile altrimenti no.

    La gestione nel report si fa su Format della sezione in cui sono i controlli.

    Qui trovi qualche dettaglio su come ricavare info dalla textbox:

    https://learn.microsoft.com/en-us/office/vba/api/access.textbox.fontsize

  • Re: EVIDENZIARE RIGHE DI TESTO NASCOSTE

    25/11/2023 - NNL78 ha scritto:


    Il fatto che la 5a riga non venga visualizzata non è di per se un problema, vorrei soltanto un alert che me lo evidenziasse.

    Ipotizzo come unica soluzione, partendo dal presupposto che tu abbia la necessità di non superare un determianto numero di righe, il contare per i campi incriminati, il numero di CR+LF (carriage return, Linefeed) presenti nel testo digitato.

    Ad esempio, in fase di inserimento, puoi utilizzare la funzione split() … e verificare tramite ubound() quante occorrenze di CR+LF sono presenti nel campo da verificare.

  • Re: EVIDENZIARE RIGHE DI TESTO NASCOSTE

    Ciao Max, il testo va accapo anche senza il CR… in quanto adatta sempre in larghezza, quindi se scrive su singola riga avrai a prescindere la divisione i righe nella textbox condizionata dalla larghezza, per questo è meglio calcolare l'ingombro reale in base a larghezza ed altezza della textbox, se l'ingombro >Height allora non lo visualizzerà tutto…

    Saluti.

  • Re: EVIDENZIARE RIGHE DI TESTO NASCOSTE

    A contare i caratteri ci avevo pensato (usando ovviamente un font a larghezza fissa), ma con i ritorni a capo il problema permane. Potrei provare con un mix delle due, tipo contare i CR/LF per l'altezza (n. righe) e contestualmente contare i caratteri (azzerando ad ogni CR/LF) per la lunghezza.

    La form nativa zoom non la conosco, mi devo documentare.. hai qualche link per approfondire? Per i report, quali sono queste “proprietà specifiche” che mette a disposizione in fase di disegno? Anche per questo se avete link da proporre me li guardo volentieri..

    Una volta che riesco a capire se il testo è visualizzato interamente nella textbox o meno applicare un qualsiasi avviso (la famosa fantasia) è la cosa minore, il mio problema è proprio sulla prima parte..

  • Re: EVIDENZIARE RIGHE DI TESTO NASCOSTE

    25/11/2023 - NNL78 ha scritto:


    A contare i caratteri ci avevo pensato (usando ovviamente un font a larghezza fissa), ma con i ritorni a capo il problema permane. Potrei provare con un mix delle due, tipo contare i CR/LF per l'altezza (n. righe) e contestualmente contare i caratteri (azzerando ad ogni CR/LF) per la lunghezza.

    Ma se va a capo 2 volte, anche se vedi tutto il testo, cosa costa mostrare lo stesso tutto il testo in un box a parte? In fondo sarà l'utente a scegliere di visualizzare tutto il testo.

    Tuttavia…. io utilizzerei una scrollbox in ogni caso, senza preoccuparmi della lunghezza del testo o degli a capo o di andare ad aprire ulteriori finestre.

    Se il testo eccede, per magia, spunta la barra di scorrimento (quel segnale che volevi e che fa capire che il testo prosegue).

    Adesso non ricordo il corrispondente access che permette lo scrolling, ma puoi sempre riversare il contenuto su quel componente.

    Per la stampa non dovresti avere problemi. Dovrebbe essere in automatico con ritorno a capo. Segui le direttive che ti hanno dato.

  • Re: EVIDENZIARE RIGHE DI TESTO NASCOSTE

    25/11/2023 - NNL78 ha scritto:


    A contare i caratteri ci avevo pensato (usando ovviamente un font a larghezza fissa), ma con i ritorni a capo il problema permane. Potrei provare con un mix delle due, tipo contare i CR/LF per l'altezza (n. righe) e contestualmente contare i caratteri (azzerando ad ogni CR/LF) per la lunghezza.

    La form nativa zoom non la conosco, mi devo documentare.. hai qualche link per approfondire? Per i report, quali sono queste “proprietà specifiche” che mette a disposizione in fase di disegno? Anche per questo se avete link da proporre me li guardo volentieri..

    Una volta che riesco a capire se il testo è visualizzato interamente nella textbox o meno applicare un qualsiasi avviso (la famosa fantasia) è la cosa minore, il mio problema è proprio sulla prima parte..

    Hai provato quello che ti ho detto o no…?

    Segui l'esempio il metodo tiene conto del Testo per restituire le dimensioni occupate… e te ne freghi di pippe varie.

    Per la zombox basta spostare il focus che ottieni al doppioclick e lanciare questa:

    RunCommand acCmdZoomBox
Devi accedere o registrarti per scrivere nel forum
9 risposte