Italian Customlistview

m277392

Member
Ho una tabella di un database così composta

IDEventoCognomeNomeIDOperatoreTipoTitoloConfermato
268ROSSIMARIOATAS
268BIANCHIANDREAOSAS
268RINOTTISILENESOAS
318LAZZAROIVANOATBS
318CORAZZADAVIDEOSBS
318MOSTIARIANNASOBS
368VERDIMARCOATCS
368GIALLILORENZOSOCS

Vorrei raggruppare per IDEvento in una CUSTOMLISTVIEW ma mi da i dati errati e li compone male.

Praticamente vorrei mi apparisse come sotto ....


-----------------------------------------------------
268
Titolo A
AT - Nome Cognome
OS - Nome Cognome
SO - Nome Cognome
-----------------------------------------------------
318
Titolo B
AT - Nome Cognome
OS - Nome Cognome
SO - Nome Cognome
-----------------------------------------------------
368
Titolo C
AT - Nome Cognome
OS - Nome Cognome
SO - Nome Cognome
-----------------------------------------------------


1707145292324.png



Dove sbaglio?

Mille grazie dell'aiuto

Massimiliano
 

Sabotto

Well-Known Member
Licensed User
butto giu al volo (non ho B4A su questo PC, quindi ho scritto con blocco note
B4X:
For i = 0 to rs1.RowCount
IDevletto=rs1.getstring2("IDEvento")
If (IDevLetto<>IDPreced and i<>1) OR( i=rs1.RowCount-1) Then
       STR=IdPreced & CRLF & STR
       CLV.AddTtxtItem (STR,"")
       STR =""
       IDPreced=IDevLetto
 Else
      IDPreced=IDevLetto
      STR = STR & CRLF & rs1.GestString2("IDOperatoreTipo") & " - " & rs1.Getstring2("Cognome")
End if
next
 
Last edited:

m277392

Member
Grazie ....
Il codice va meglio ma ho aggiunto l'avanzamento record ..... CNT.rs1.Position = i
Tuttavia al primo giro tira su bene i campi ma poi dal secondo fino alla fine perde un record e se lo somma dopo perdendone sempre
uno in più .... (i gialli)
Non riesco a capire dove salta quest'ultimo passaggio

1707226661459.png


B4X:
For i = 0 To CNT.rs1.RowCount
        IDevletto=CNT.rs1.GetString2("IDEvento") & " - " & CNT.rs1.GetString2("Titolo")  & CRLF & "----------------------------------------------"
        If (IDevletto<>IdPreced And i<>1) Or (i=CNT.rs1.RowCount-1) Then
            CNT.rs1.Position = i
            STR=IdPreced & CRLF & STR
            CustomListView1.AddTextItem (STR,"")
            STR =""
            IdPreced=IDevletto
        Else 
            IdPreced=IDevletto
            STR= STR & CRLF & CNT.rs1.GetString2("IDOperatoreTipo") & " - " & CNT.rs1.GetString2("Cognome") & "  " & CNT.rs1.GetString2("Nome")
            CNT.rs1.Position = i
        End If
    Next
 

Sabotto

Well-Known Member
Licensed User
Si il position me l'ero scordato....(tra l'altro puoi metterlo pure dopo il For (prima dell'IF)
Non ho capito il problema che dici però: l'output che hai pubblicato è esattamente come lo avevi richiesto nel primo post.
Se puoi allegare il DB, provo con il codice.

Cosi dovrebbe andare, prova

B4X:
    For i = 0 To rs1.RowCount-1
        rs1.Position = i
        IDevLetto=rs1.GetString("IDevento") & " - " & rs1.GetString("Titolo")  & CRLF & "----------------------------------------------"
        If (IDevLetto<>IDPreced And i<>0) Or (i=rs1.RowCount-1) Then
            STR=IDPreced & CRLF & STR
            CustomListView1.AddTextItem (STR,"")
            STR =""
        End If
        IDPreced=IDevLetto
        STR= IIf(STR<>"",STR & CRLF,"") & rs1.GetString("IDOperatoreTipo") & " - " & rs1.GetString("Cognome") & "  " & rs1.GetString("Nome")
    Next
 
Last edited:
Top