Function RiduciunghettaEx(sLunghetta As String, aRuote As Variant, nSorteCercata As Long, nPassaggiMaxRiduzione As Integer, idEstrIni As Long, idEstrFine As Long, sChrSep As String, ByVal nClasse As Long, nValoreMinRichiesto As Integer, nCombSvilTot As Long, TipoRicerca As eTipoRicerca) As Boolean
Dim k As Long, j As Long
Dim an() As Long ' ccontiene i numeri delal lunghetta da passare alal funzione di sviluppo
Dim av As Variant ' contiene i numeri splittati dal record della lunghetta
Dim aCol As Variant ' colonna sviluppata
Dim aColMaxCorrente () As Long ' colonna col valore piu alto
Dim nValore As Long, nValoreMax As Long, nQValoriMax As Long
Dim frz As STRUCT_FRZ_STATISTICA_SINGOLO_ESITO ' contiene i risultati della statistica
Dim nPassaggi As Long ' conteggia i passaggi di riduzione
Dim colSvil As clsColonnaSviluppo
av = SplitXX(sLunghetta, sChrSep)
ReDim an(UBound(av) + 1)
For k = 0 To UBound(av)
an(k + 1) = Val(av(k))
Next
Do
nClasse -= 1
nPassaggi + = 1
nQValoriMax = 0
ReDim aCol(nClasse)
ReDim aColMaxCorrente(nClasse)
Call InitSviluppoIntegrale(an, nClasse)
'do While GetCombSviluppoCls(colSvil)
Do While GetCombSviluppo(aCol)
nCombSvilTot + = 1
'Call StatisticaSingoloEsito(colSvil.aNumeeri, idEstrIni, idEstrFine, nSorteCercata, frz, aRuote)
Call StatisticaSingoloEsito(aCol, idEstrIni, idEstrFine, nSorteCercata, frz, aRuote)
If TipoRicerca = eTipoRicerca.Presenze Then
nValore = frz.RetValori.Presenze
ElseIf TipoRicerca = eTipoRicerca.PresenzeMultiple Then
nValore = frz.RetValori.PresenzeMultiple
End If
If nValore > nValoreMax Then
nValoreMax = nValore
nQValoriMax = 1
For j = 1 To nClasse
aColMaxCorrente (j) = aCol (j)
Next
ElseIf nValore = nValoreMax Then
nQValoriMax + = 1
End If
If nQValoriMax = 0 Or nQValoriMax > 1 AndAlso nPassaggi < nPassaggiMaxRiduzione Then
nSorteCercata + = 1
Return False
End If
Loop
'If nQValoriMax > 1 AndAlso nPassaggi < nPassaggiMaxRiduzione Then
'nSorteCercata = nSorteCercata + 1
'End If
If nQValoriMax = 0 Or nQValoriMax > 1 AndAlso nPassaggi < nPassaggiMaxRiduzione Then
nSorteCercata + = 1
Return False
End If
Loop While nQValoriMax > 1 AndAlso nPassaggi <= nPassaggiMaxRiduzione Or nSorteCercata = 6
If nQValoriMax = 1 And nValoreMax <= nValoreMinRichiesto Or nSorteCercata < 6 Then
sLunghetta = StringaNumeri (aColMaxCorrente, sChrSep)
nSorteCercata + = 1
Return False
End If
If nQValoriMax = 1 And nValoreMax >= nValoreMinRichiesto Then
sLunghetta = StringaNumeri (aColMaxCorrente, sChrSep)
Return True
End If
Return False
End Function