Novità

Mente da programmatore

Codice:
    Function GetQCombIntegrali()
        GetQCombIntegrali = iColonneIntegrale
    End Function


Codice:
   AvanzamentoElab(0, cSvil.GetQCombIntegrali, cSvil.GetCombSviluppate)

Codice:
    Private Sub AvanzamentoElab(VMin As Integer, VMax As Integer, Valore As Integer)
        ProgressBar1.Visible = True
        ProgressBar1.Minimum = VMin
        ProgressBar1.Maximum = VMax
        ProgressBar1.Step = Valore
        ProgressBar1.PerformStep()
    End Sub
 
noterai che nella classe archivio c'è una funzione di statistica

StatGruppoFormazione(ByRef frz As struct_gruppo_formazioni) As Boolean

questa funzione usa un altro tipo di struttura che consente di analizzare piu formazioni insieme come se fossero una sola.

tu dovrai creare una sub che prende le formazioni selezionate nella lista principale e tramite questa funzione ne calcoli i valori statistici e li mostri nella prima delle liste. nella seconda lista mostrerai le uscite.


questa sub che dovrai fare visto che mi è venuta in mente poco fa io non l'h oscritta quindi è tutta tua.

devi assumere ovvimente i dati dai record selezionati nella prima lista , aalimentare la struttura struct_formazioni tramite la sub AddNumeri
e devi anche inizializzare l struttura come con quell'altra.

dopo di che la puoi passare alla funzione di statistica che poi mostrerà i risultati nella prima lista dell'ultima scheda aggiunta
 
questa non l'ho capita dove sta la progressbar ? l'hai inserita nella classe sviluppo questa sub ?
1637675723241.png
 
naturalmente selezionando piu formazioni dalla prima lista potrebeb pure capitare che abbiano date e ruote e posizioni diverse quindi c'è da decidere se usare per default i valori della prima selezionata o se invece usare i valori generali impostati in quel momento
 
questa funzione della statistica di gruppo la facciamo piu semplice potra operare solo su un gruppo di formazioni scelte alla volta , se uno sceglie un altro gruppo si svuota e mostra l'altro gruppo , quindi la lista delle uscite la puoi alimentare contestualmenta a quella dei valori statistici.
 
ok , devi procedere sulla falsa riga diella'ltra statistica , devi inizializzare la formazione , aggiungerci i numeri delel formazioni selezionate lanciare la statistica mostrare i risultati sia statistici che delle uscite tutto con un unica sub
 
Fatto ma mi sa tanto che sbaglio qualcosa:

Codice:
    Sub StatisticaGruppo()
        Dim aNumeri() As Integer = Nothing
        Dim aRuote() As Boolean = Nothing
        Dim aPos() As Boolean = Nothing
        Dim nSorte As Integer
        Dim Inizio As Integer
        Dim fine As Integer
        Dim frz() As struct_formazione
        Dim nClasse As Integer = ConvertToInt(CmbClasseScomponi.Text)
        If Me.LvLunghette.SelectedItems.Count Then
            ReDim frz(Me.LvLunghette.SelectedItems.Count - 1)
            Dim itmSel As ListViewItem = LvLunghette.SelectedItems(0)
            If GetParamFromItem(itmSel, aNumeri, aRuote, aPos, nSorte, Inizio, fine) Then
                For k As Integer = 0 To UBound(frz)
                    If frz(k).Inizializza(aNumeri, aRuote, nSorte, Inizio, fine, aPos) Then
                        cArchivio.StatGruppoFormazione(frz)
                        Dim itm As ListViewItem = CtlLvOrdinabile1.Items.Add(ArrayNumeriToString(aNumeri))
                        itm.SubItems.Add(RuoteBToString(aRuote))
                        itm.SubItems.Add(frz(k).Sorte)
                        itm.SubItems.Add(frz(k).Ritardo)
                        itm.SubItems.Add(frz(k).RitardoMax)
                        itm.SubItems.Add(frz(k).IncrRitMax)
                        itm.SubItems.Add(frz(k).Frequenza)
                        itm.SubItems.Add(frz(k).Presenze)
                        itm.SubItems.Add(frz(k).Inizio)
                        itm.SubItems.Add(frz(k).Fine)
                        itm.SubItems.Add(ArrayNumeriToString(frz(k).aPosizioni))
                        PerformAddUsciteSecond(frz(k))

                    End If
                Next
            End If
        End If

    End Sub


risultato

Senza titolo.png
 
Nessun problema anzi 😃. Quando vorrai e potrai si continuerà. Vorrà dire che ne approfitto per ripassare, faccio un backup che metto da parte, e magari provo a fare anche una cosa su una copia del programma 😁
 
nel frattempo posta i sorgenti con le modifiche perche se selezioni una sola formazione dovrebbe darti risultati uguali...
 
Perfetto problema risolto. In realtà era a causa di un bug praticamente irrintracciabile se non fosse stato per il risultato delle listview

Senza titolo.png


 
oh , bravo . hai provato a fare la statistica di piu formazioni ? la listview consente di selezionarne piu di 1 ?
 
Qui c'è un problema. Allora nella sub che al caricamento del form inserisce le colonne della listview ho inserito ".Multiselect = true"

Codice:
      LvLunghette.View = View.Details
        LvLunghette.Columns.Add("Numeri")
        LvLunghette.Columns(0).Width = 300
        LvLunghette.Columns.Add("Ruote")
        LvLunghette.Columns(1).Width = 150
        LvLunghette.Columns.Add("Sorte")
        LvLunghette.Columns(2).Width = 50
        LvLunghette.Columns.Add("Ritardo")
        LvLunghette.Columns(3).Width = 80
        LvLunghette.Columns.Add("RitardoMax")
        LvLunghette.Columns(4).Width = 80
        LvLunghette.Columns.Add("IncrementoRitardoMax")
        LvLunghette.Columns(5).Width = 150
        LvLunghette.Columns.Add("Frequenza")
        LvLunghette.Columns(6).Width = 80
        LvLunghette.Columns.Add("Presenze")
        LvLunghette.Columns(7).Width = 80
        LvLunghette.Columns.Add("Inizio")
        LvLunghette.Columns(8).Width = 80
        LvLunghette.Columns.Add("Fine")
        LvLunghette.Columns(9).Width = 80
        LvLunghette.Columns.Add("Posizioni")
        LvLunghette.Columns(10).Width = 100
        LvLunghette.MultiSelect = True


All'interno della sub che gestisce il cambiamento di selezione ho inserito una condizione. Se le formazioni sono maggiori di zero(considerando che parte dall'indice 0) all'ora fai la statistica di gruppo

Codice:
    Private Sub CtlLvOrdinabile1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles LvLunghette.SelectedIndexChanged
        PulisciTutto()
        ReadParameter()
        If LvLunghette.Items.Count > 0 Then
            StatisticaGruppo()
        End If
        DisegnaCerchioCiclometrico()
    End Sub

però quando parto con il maouse e seleziono il primo elemento bene ...arrivati al secondo va in errore
 

Ultima estrazione Lotto

  • Estrazione del lotto
    venerdì 12 settembre 2025
    Bari
    32
    23
    69
    02
    62
    Cagliari
    39
    54
    06
    05
    53
    Firenze
    68
    84
    02
    81
    52
    Genova
    63
    12
    74
    90
    38
    Milano
    76
    19
    14
    81
    32
    Napoli
    52
    09
    04
    16
    84
    Palermo
    42
    52
    11
    12
    50
    Roma
    64
    76
    19
    57
    11
    Torino
    15
    77
    02
    16
    71
    Venezia
    24
    64
    74
    25
    53
    Nazionale
    12
    16
    64
    52
    81
    Estrazione Simbolotto
    Palermo
    21
    11
    22
    28
    04
Indietro
Alto