CODICE
Option Explicit
Sub Main
'''' ambo Principale e 4 ambetti legati, NON CONSECUTIVI
Dim colonne,Classe,scolonna,j,k,retrit,retritmax,retfre,fine,r,sorte,min,minmax,ctr,h
Dim savepre,ambop,ambo1,ambo2,ambo3,ambo4,ambo5,m,minmin,z,u,ct,Ord,det,i,ii,a1,a2,qt
Dim jf,qtruo,Ritardo,RitardoMax,Frequenza,sRetGruppiAnalizz,Inizio,maxgru,maxgrudes,maxmaxgru,maxmaxgrudes
Dim num(90),ambi(8990),a(2),rt(5),rx(5)
ReDim aruote(12),rie(4005,4)
qtruo = ScegliRuote(aruote)
ScegliNumeri(num)
fine = InputBox("n.Concorso",,EstrazioneFin)
Ord = CInt(InputBox("Ordina tabella per 1 o 2 o 14 colonna",,1))
det = InputBox("Vuoi dettaglio SI/NO",,"NO")
Inizio = EstrazioneIni
sorte = 2 : Classe = 2
'''accoda ambetto per gruppo e per ruote richieste
Scrivi "Ruote Richieste : ",1
For jf = 1 To qtruo
Scrivi "Nome Ruota " & NomeRuota(jf),1,2,4
Next
Scrivi "Situazione al " & fine & " " & DataEstrazione(fine),1,2,4
Scrivi "Rilevati questi gruppi di Ambetti che statisticamente hanno Rc Maggiore del Rx. ",1,2,3
''''
colonne = SviluppoIntegrale(num,Classe)
For k = 1 To UBound(colonne)
scolonna = ""
ReDim nm(Classe)
For j = 1 To Classe
scolonna = scolonna & Format2(colonne(k,j)) & " "
nm(j) = colonne(k,j)
Next
Messaggio(k)
If ScriptInterrotto Then Exit For
If Differenza(nm(2),nm(1)) <> 1 And Differenza(nm(2),nm(1)) <> 89 Then
ct = 0
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''ambo principalee
a(1) = nm(1) : a(2) = nm(2)
ambop = Format2(nm(1)) & "." & Format2(nm(2))
Call StatisticaFormazioneTurbo(nm,aruote,sorte,retrit,retritmax,,retfre,Inizio,fine)
rt(1) = retrit : rx(1) = retritmax
If retrit >= retritmax Then ct = ct + 1
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''1° ambetto
a(1) = nm(1)
a(2) = Fuori90(nm(2) - 1)
ambo1 = Format2(a(1)) & "." & Format2(a(2))
Call StatisticaFormazioneTurbo(a,aruote,sorte,retrit,retritmax,,retfre,Inizio,fine)
rt(2) = retrit: rx(2) = retritmax
If retrit >= retritmax Then ct = ct + 1
'''accoda ambetto per gruppo e per ruote richieste
For jf = 1 To qtruo
Call AddNumeriToGruppoStatistico(a,aruote(jf))
Next
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''2° ambetto
a(1) = nm(1)
a(2) = Fuori90(nm(2) + 1)
ambo2 = Format2(a(1)) & "." & Format2(a(2))
Call StatisticaFormazioneTurbo(a,aruote,sorte,retrit,retritmax,,retfre,Inizio,fine)
rt(3) = retrit: rx(3) = retritmax
If retrit >= retritmax Then ct = ct + 1
'''accoda ambetto per gruppo e per ruote richieste
For jf = 1 To qtruo
Call AddNumeriToGruppoStatistico(a,aruote(jf))
Next
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''3° ambetto
a(1) = nm(2)
a(2) = Fuori90(nm(1) - 1)
ambo3 = Format2(a(1)) & "." & Format2(a(2))
Call StatisticaFormazioneTurbo(a,aruote,sorte,retrit,retritmax,,retfre,Inizio,fine)
rt(4) = retrit: rx(4) = retritmax
If retrit >= retritmax Then ct = ct + 1
'''accoda ambetto per gruppo e per ruote richieste
For jf = 1 To qtruo
Call AddNumeriToGruppoStatistico(a,aruote(jf))
Next
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''4° ambetto
a(1) = nm(2)
a(2) = Fuori90(nm(1) + 1)
ambo4 = Format2(a(1)) & "." & Format2(a(2))
Call StatisticaFormazioneTurbo(a,aruote,sorte,retrit,retritmax,,retfre,Inizio,fine)
rt(5) = retrit: rx(5) = retritmax
If retrit >= retritmax Then ct = ct + 1
'''accoda ambetto per gruppo e per ruote richieste
For jf = 1 To qtruo
Call AddNumeriToGruppoStatistico(a,aruote(jf))
Next
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''calcola Ritardo minimo dei 5 ambi elencati
minmin = 9999
For m = 2 To 5
If rt(m) < minmin Then
minmin = rt(m)
End If
Next
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
z = z + 1
rie(z,1) = FormattaStringa(minmin,"0000")
rie(z,2) = SiglaRuota(r) & " min." & FormattaStringa(minmin,"0000") & " (" & ct & ") " & ambop & " " & FormattaStringa(rt(1),"0000") & "/ " & FormattaStringa(rx(1),"0000") & " | " & ambo1 & " " & FormattaStringa(rt(2),"0000") & "/ " & FormattaStringa(rx(2),"0000") & " | " & ambo2 & " " & FormattaStringa(rt(3),"0000") & "/ " & FormattaStringa(rx(3),"0000") & " | " & ambo3 & " " & FormattaStringa(rt(4),"0000") & "/ " & FormattaStringa(rx(4),"0000") & " | " & ambo4 & " " & FormattaStringa(rt(5),"0000") & "/ " & FormattaStringa(rx(5),"0000") & " | "
rie(z,3) = rt(1) + rt(2) + rt(3) + rt(4) + rt(5)
''''calcola ritardo storico del gruppo di 4 ambi sulle varie ruote richieste
Call StatisticaGruppoFormazioniTurbo(sorte,Ritardo,RitardoMax,Frequenza,,Inizio,fine)
rie(z,4) = FormattaStringa(Ritardo,"0000") & "/" & FormattaStringa(RitardoMax,"0000")
If RitardoMax > maxgru Then
maxgru = RitardoMax
maxgrudes = "Gruppo massimo storico " & ambo1 & " - " & ambo2 & " - " & ambo3 & " - " & ambo4 & " Rmax " & FormattaStringa(RitardoMax,"0000")
End If
If Ritardo >= RitardoMax - 4 Then
Scrivi "Gruppo Ambetti " & ambo1 & " - " & ambo2 & " - " & ambo3 & " - " & ambo4 & " Rc. " & FormattaStringa(Ritardo,"0000") & " / Rx. " & FormattaStringa(RitardoMax,"0000")
End If
''''calcola tra tutti i gruppi del ritardo storico assoluto
If RitardoMax > maxmaxgru Then
maxmaxgru = RitardoMax
maxmaxgrudes = "Gruppo massimo storico " & ambo1 & " - " & ambo2 & " - " & ambo3 & " - " & ambo4 & " Rmax " & FormattaStringa(RitardoMax,"0000")
End If
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Call OrdinaMatrice(rt,- 1)
min = rt(1)
If min > minmax Then minmax = min
End If
Next
Scrivi:Scrivi "Riepilogo del gruppo di Ambetti che ha avuto il Massimo Ritardo Storico sulle Ruote Richieste ",1,2,2
Scrivi maxmaxgrudes
Scrivi
ReDim atitoli(15),avalori(15)
atitoli(1) = "Ritardo"
atitoli(2) = " "
atitoli(3) = "nMaX"
atitoli(4) = "AmboP."
atitoli(5) = "Rit/Max."
atitoli(6) = "Ambetto1"
atitoli(7) = "Rit/Max."
atitoli(8) = "Ambetto2"
atitoli(9) = "Rit/Max."
atitoli(10) = "Ambetto3"
atitoli(11) = "Rit/Max."
atitoli(12) = "Ambetto4"
atitoli(13) = "Rit/Max."
atitoli(14) = "SommaRT"
atitoli(15) = "Gr.Ambetti"
SetTableWidth("85%px")
' ' inizializzo la tabella
Call InitTabella(atitoli,2,"center",1.30,5,"Cambria")
Scrivi "----Riepilogo----Ambo principale ed i 4 ambetti---- ordinati per ritardo minimo dei 4 ambetti NON CONSECUTIVI ",1,2,3
savepre = 0
Call OrdinaMatrice(rie,- 1,1)
For u = 1 To z
If det = "SI" Or det = "si" Then Scrivi rie(u,1) & " " & rie(u,2)
avalori(1) = rie(u,1)
avalori(2) = Left(rie(u,2),2)
avalori(3) = Mid(rie(u,2),15,1)
avalori(4) = Mid(rie(u,2),21,5)
avalori(5) = Mid(rie(u,2),29,10)
avalori(6) = Mid(rie(u,2),44,5)
avalori(7) = Mid(rie(u,2),52,10)
avalori(8) = Mid(rie(u,2),67,5)
avalori(9) = Mid(rie(u,2),75,10)
avalori(10) = Mid(rie(u,2),90,5)
avalori(11) = Mid(rie(u,2),98,10)
avalori(12) = Mid(rie(u,2),113,5)
avalori(13) = Mid(rie(u,2),121,10)
avalori(14) = rie(u,3)
avalori(15) = rie(u,4)
Call AddRigaTabella(avalori,Bianco_,"center",1)
Call SetColoreCella(4,RGB(229,229,229),vbBlue)
savepre = avalori(1)
Next
Call CreaTabellaOrdinabile(Ord,,,4005)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''ambetti con numeri consecutivi
sorte = 2 : Classe = 2 : z = 0
colonne = SviluppoIntegrale(num,Classe)
ReDim rie(4005,4),rt(3)
For k = 1 To UBound(colonne)
scolonna = ""
ReDim nm(Classe)
For j = 1 To Classe
scolonna = scolonna & Format2(colonne(k,j)) & " "
nm(j) = colonne(k,j)
Next
Messaggio(k)
If ScriptInterrotto Then Exit For
If Differenza(nm(2),nm(1)) = 1 And Differenza(nm(2),nm(1)) <> 89 Then
ct = 0
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''ambo principale
a(1) = nm(1) : a(2) = nm(2)
ambop = Format2(nm(1)) & "." & Format2(nm(2))
Call StatisticaFormazioneTurbo(nm,aruote,sorte,retrit,retritmax,,retfre,3950,fine)
rt(1) = retrit : rx(1) = retritmax
If retrit >= retritmax Then ct = ct + 1
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''1° ambetto
a(1) = nm(1)
a(2) = Fuori90(nm(1) - 1)
ambo1 = Format2(a(1)) & "." & Format2(a(2))
Call StatisticaFormazioneTurbo(a,aruote,sorte,retrit,retritmax,,retfre,3950,fine)
rt(2) = retrit: rx(2) = retritmax
If retrit >= retritmax Then ct = ct + 1
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''2° ambetto
a(1) = nm(2)
a(2) = Fuori90(nm(2) + 1)
ambo2 = Format2(a(1)) & "." & Format2(a(2))
Call StatisticaFormazioneTurbo(a,aruote,sorte,retrit,retritmax,,retfre,3950,fine)
rt(3) = retrit: rx(3) = retritmax
If retrit >= retritmax Then ct = ct + 1
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''calcola Ritardo minimo dei 5 ambi elencati
minmin = 9999
For m = 2 To 3
If rt(m) < minmin Then
minmin = rt(m)
End If
Next
z = z + 1
rie(z,1) = FormattaStringa(minmin,"0000")
rie(z,2) = SiglaRuota(r) & " min." & FormattaStringa(minmin,"0000") & " (" & ct & ") " & ambop & " " & FormattaStringa(rt(1),"0000") & "/ " & FormattaStringa(rx(1),"0000") & " | " & ambo1 & " " & FormattaStringa(rt(2),"0000") & "/ " & FormattaStringa(rx(2),"0000") & " | " & ambo2 & " " & FormattaStringa(rt(3),"0000") & "/ " & FormattaStringa(rx(3),"0000")
rie(z,3) = rt(1) + rt(2) + rt(3)
Call OrdinaMatrice(rt,- 1)
min = rt(1)
If min > minmax Then minmax = min
End If
Next
'''ambetti da ambo capogioco ed 2 ambetti CONSECUTIVI
savepre = 0
ReDim atitolic(10),avaloric(10)
atitolic(1) = "Ritardo"
atitolic(2) = " "
atitolic(3) = "nMaX"
atitolic(4) = "AmboP."
atitolic(5) = "Rit/Max."
atitolic(6) = "Ambetto1"
atitolic(7) = "Rit/Max."
atitolic(8) = "Ambetto2"
atitolic(9) = "Rit/Max."
atitolic(10) = "SommaRT"
SetTableWidth("85%px")
' ' inizializzo la tabella
Call InitTabella(atitolic,2,"center",1.30,5,"Cambria")
Scrivi "----Riepilogo----Ambo principale ed i 2 ambetti---- ordinati per ritardo minimo dei 2 ambetti CONSECUTIVI ",1,2,3
Call OrdinaMatrice(rie,- 1,1)
For u = 1 To z
If det = "SI" Or det = "si" Then Scrivi rie(u,1) & " " & rie(u,2)
a1 = Left(Mid(rie(u,2),21,5),2)
a2 = Right(Mid(rie(u,2),21,5),2)
If a2 - a1 = 1 Then
avaloric(1) = rie(u,1)
avaloric(2) = Left(rie(u,2),2)
avaloric(3) = Mid(rie(u,2),15,1)
avaloric(4) = Mid(rie(u,2),21,5)
avaloric(5) = Mid(rie(u,2),29,10)
avaloric(6) = Mid(rie(u,2),44,5)
avaloric(7) = Mid(rie(u,2),52,10)
avaloric(8) = Mid(rie(u,2),67,5)
avaloric(9) = Mid(rie(u,2),75,10)
avaloric(10) = rie(u,3)
Call AddRigaTabella(avaloric,Bianco_,"center",1)
Call SetColoreCella(4,RGB(229,229,229),vbBlue)
End If
savepre = avaloric(1)
Next
Call CreaTabellaOrdinabile(Ord,,,4005)
End Sub