WebListbox

Buongiorno a tutti,

avrei la necessit di visualizzare un testo in una colonna di una weblistbox multiline, il testo registrato (su una tabella mysql) dovrebbe andare a capo tramite il carattere di escape 013 (end of line) ma il testo va a capo solo per il raggiungimento della dimensione massima della colonna.

es.
PREVIDENZA COMPLEMENTARE: per i dipendenti che hanno restituito i modelli TFR2 compilati datati maggio:

  1. codifica della mappa previdenza complementare in caso di nuove adesioni ai fondi;
  2. codifica della data di mantenimento tfr in azienda in caso di mantenimento tfr in ditta;
  3. codifica della data di scelta della destinazione tfr (ditta o fondi pensione)

nella weblistbox

PREVIDENZA COMPLEMENTARE: per i dipendenti che hanno restituito i modelli TFR2 compilati datati maggio:1) codifica della mappa previdenza complementare in caso di nuove adesioni ai fondi;2) codifica della data di mantenimento tfr in azienda in caso di mantenimento tfr in ditta;3) codifica della data di scelta della destinazione tfr (ditta o fondi pensione)

il codice che uso questo:

while not rs.eOF
v=rs.idxField(1).stringValue
ListBox1.addrow v
for i=2 to rs.fieldCount
ListBox1.cell(ListBox1.lastIndex, i-1)=rs.idxField(i).stringValue
if i=2 then
if rs.Field(“Settore”).Value=“LEGISLAZIONE LAVORO” then
ListBox1.CellStyle(ListBox1.lastIndex, i-1) = CellBoldStyle_P_Piani_LEGLAV
end if
if rs.Field(“Settore”).Value=“PROCEDURA PAGHE” then
ListBox1.CellStyle(ListBox1.lastIndex, i-1) = CellBoldStyle_P_Piani_PROCPAGHE
end if
if rs.Field(“Settore”).Value=“ADEMPIMENTI MANUALI” then
ListBox1.CellStyle(ListBox1.lastIndex, i-1) = CellBoldStyle_P_Piani_ADEMPMAN
end if
end if
if i=3 then
listbox1.cell(listBox1.lastIndex,i-1)=rs.field(“ScadenzaD”).Value
end if
next
rs.movenext
wend

la tabella in formato utf8.

Ringrazio anticipatamente per un suggerimento.

Grazie
Enrico

Ciao Enrico,

Credo che non sia un problema di WebListbox ma di come sono salvati i dati sul database. Non ne sono sicurissimo ma se provi ad aggiornare i dati sul database in questo modo(notare\r
):

UPDATE Database.tabella SET campo='1.codifica della mappa previdenza complementare in caso di nuove adesioni ai fondi;\\r\ 2.codifica della data di mantenimento tfr in azienda in caso di mantenimento tfr in ditta;\\r\ 3.codifica della data di scelta della destinazione tfr (ditta o fondi pensione)' WHERE ecc...

dovresti visualizzarli bene nella weblistbox.

Grazie Attilio,

ho provato e sul record del db va a capo correttamente ma quando visualizzo i dati nella weblistbox non va a capo…

sul db la tabella in uft8 e il campo un varchar, ho provato anche un longtext ma non cambiato nulla.

In debug nel recordset li vedi tutti sulla stessa riga? Se anche il database formattato in UTF-8 prova a eseguire come query

sql="SET NAMES 'utf8'" prima di eseguire la tua query. Per ora ho finito le idee. Ho fatto un test veloce e a me funziona, bisognerebbe capire che terminatore di stringa salvato nel database e come lo interpreta xojo.

ti confermo che nel recordset sono corretti… ma a video nella weblistbox non va a capo…
la cosa veramente strana …non mi aspettavo che fosse corretto nel recordset…

Puoi provare a forzare l’Encoding sui vari campi in questo modo:


While Not rs.EOF

listbox.AddRow(rs.IdxField(1).StringValue.DefineEncoding(Encodings.UTF8))

rs.MoveNext
Wend

allora ho fatto la prova nel forzare l’Encoding ma non cambiato nulla, allora ho inserito una textarea e ho scritto il record li …e li funziona senza problemi… a questo punto sono un filo disorientato perch l’Encoding a questo punto corretto.

listbox1.cell(listBox1.lastIndex,i-1)=rs.field(“ScadenzaD”).Value
TextArea1.text=rs.field(“ScadenzaD”).Value

Si hai perfettamente ragione, se i dati nel recordset sono giusti allora il problema altrove. Per sinceramente non ho altri consigli da darti, hai per caso impostato qualche propriet particolare della tabella in modo da replicare il problema?

direi di no ho provato anche a ricreare la tabella e la weblistbox…
grazie comunque dell’aiuto, per lo meno abbiamo escluso il problema dell’'Encoding

Figurati, purtroppo non ti ho aiutato molto. Se trovi l’errore fammi sapere che ormai sono curioso.
Buon lavoro

In un campo di testo, il ritorno a campo viene visualizzato direttamente.
In una weblistbox il ritorno a capo non ha senso, in quanto in pratica HTML.

Per cui prova a sostituire il ritorno a capo con
e inserisci il tutto nella cella ricordandoti di racchiuderlo tra e
Questi due tag fanno interpretare il testo inserito come html ( una cosa interna di Xojo, non una regola dell’HTML)

Grazie Antonio

provo subito!