WebListbox

  1. 2 weeks ago

    cnaservizi c

    Aug 6 Pre-Release Testers, Xojo Pro
    Edited 2 weeks ago

    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

  2. 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\n):

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

    dovresti visualizzarli bene nella weblistbox.

  3. cnaservizi c

    Aug 6 Pre-Release Testers, Xojo Pro
    Edited 2 weeks ago

    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.

  4. 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.

  5. cnaservizi c

    Aug 6 Pre-Release Testers, Xojo Pro

    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....

  6. 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
  7. cnaservizi c

    Aug 6 Pre-Release Testers, Xojo Pro
    Edited 2 weeks ago

    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

  8. 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?

  9. cnaservizi c

    Aug 6 Pre-Release Testers, Xojo Pro

    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

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

  11. last week

    Antonio R

    Aug 10 Pre-Release Testers, Xojo Pro Europe (Italy)

    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 <br/> e inserisci il tutto nella cella ricordandoti di racchiuderlo tra <raw> e </raw>
    Questi due tag fanno interpretare il testo inserito come html (è una cosa interna di Xojo, non una regola dell'HTML)

  12. cnaservizi c

    Aug 12 Pre-Release Testers, Xojo Pro

    Grazie Antonio

    provo subito!

or Sign Up to reply!