Option Explicit
Sub Main()
Dim Ru,coRu,co,x,y,z,W,cc,lu,coW,numTer,col,coT,insRP1,a,b,Tab_Ana,Coe,retPos,pos
Dim lunghetta(12,990)
Dim numLung(12,90)
Dim posLung(12,90)
Dim clpLung(12,90)
Dim aruote(2)
Dim aPos(1)
ReDim aNum(0)
ReDim aRit(0)
aruote(1) = 11
aruote(2) = 12
Dim esR,ini,fin,p,es,esc,rit,num,RuElab,esAn
Call PiuRitardatari(EstrazioneFin,aruote,aNum,,aRit)
Tab_Ana = CInt(InputBox(" Scrivo tabellone analitico delle singole ruote? " & Chr(13) & Chr(13) & " Scrivo = 1; NON scrivo = 0 o altro"," TABELLONE ANALITICO RUOTE ",0))
Coe = CInt(InputBox(" Scrivo i coestratti dei Terminatori?" & Chr(13) & Chr(13) & " Scrivo = 1; NON scrivo = 0 o altro ","TABELLONE TERMINATORI ",1))
esAn = aRit(1) 'CInt(InputBox(" Quantità estrazioni in analisi " & Chr(13) & Chr(13) & " Attuale Massimo Ritardo su TT e NZ","ESTRAZIONI In ANALISI",aRit(1)))
esc = 40'InputBox("Quante estrazioni di controllo Isotopia ","ESTRAZIONI di ISOTOPIA",40)
coRu =(Ru - 1)*5
ReDim ArchivioTerm(esAn+1,60)
Scrivi " Tabellone Analitico Classico e Tabellone TERMINATORI di Micro - Script by Claudio8 - isotopia " & esc & " max rit. " & aRit(1) & " data elaborazione " & DataEstrazione(EstrazioneFin),1,,3,2,1
Scrivi " Data N°estr Rit ",1,False,6,,1
For Ru = 1 To 11
ArchivioTerm(0,(Ru - 1)*5 + 5) = SiglaRuota(Ru)
If Ru = 11 Then Ru = 12 : ArchivioTerm(0,(Ru - 2)*5 + 5) = SiglaRuota(Ru)
If Tab_Ana = 1 Then
Scrivi "|" & FormatSpace(SiglaRuota(Ru) & " Analitico Terminatore",33,False),1,False,6,,1
Else
Scrivi "|" & FormatSpace(SiglaRuota(Ru) & " Terminatore",16,False),1,False,6,,1
End If
Next
Scrivi
For W = esAn To 0 Step - 1
ArchivioTerm(W + 1,0) = W
If ScriptInterrotto Then Exit For
ini = EstrazioneFin - esc - W
ReDim Term(esc,55)
ReDim TermFin(1,55)
fin = EstrazioneFin - W
Call GeneraAnalitico(EstrazioneFin)
co = 0
For es = ini To fin - 1
co = co + 1
rit = esc - co + 1
For Ru = 1 To 11
coRu =(Ru - 1)*5
If Ru = 11 Then Ru = 12
For p = 1 To 5
For esR = es + 1 To fin
If Estratto(esR,Ru,p) = Estratto(es,Ru,p) Then Term(co,coRu + p) = Estratto(esR,Ru,p)
Next
Next
Next
Next
For z = 1 To coRu + p - 1
For y =(esc) To 1 Step - 1
If Term(y,z) > 0 Then
TermFin(1,z) = Term(y,z)
Exit For
End If
Next
Next
Scrivi DataEstrazione(es) & " [" & es & "] " & FormatSpace(W,3,1) & " | ",1,False,,,1
For Ru = 1 To 11
coRu =(Ru - 1)*5
If Ru = 11 Then Ru = 12
If Tab_Ana = 1 Then
For p = 1 To 5
If W <= aRit(1) Then
num =(TabelloneAnalitico(W,Ru,p))
If num > 0 Then
Scrivi FormatSpace(num,2,True) & " ",,False,,,1
Else
Scrivi "-- ",,False,,,1
End If
Else
Scrivi ".. ",,False,,,1
End If
If p = 5 Then Scrivi "| ",1,False,,,1
Next '
End If
For p = 1 To 5
cc = 0
If W <= aRit(1) Then
For es = fin - 1 To ini Step - 1
If Estratto(fin,Ru,p) = TermFin(1,coRu + p) Then
cc = cc + 1
End If
Next
If cc > 0 And Estratto(fin,Ru,p) = TabelloneAnalitico(W,Ru,p) Then
Scrivi FormatSpace((Estratto(fin,Ru,p)),2,True),1,False,vbGreen,,1
ArchivioTerm(W + 1,coRu + p) = Estratto(fin,Ru,p)
lu = lu + 1
lunghetta(Ru,0) = SiglaRuota(Ru)
lunghetta(Ru,lu) = Estratto(fin,Ru,p)
ElseIf cc > 0 Then
Scrivi FormatSpace((Estratto(fin,Ru,p)),2,True),1,False,,,1
ArchivioTerm(W + 1,coRu + p) = Estratto(fin,Ru,p)
Else
If Coe = 1 Then
Scrivi FormatSpace((Estratto(fin,Ru,p)),2,True),,False,,6,1
Else
Scrivi FormatSpace("..",2,True),,False,,,1
End If
End If
If p < 5 Then Scrivi " ",1,False,,,1
If p = 5 Then Scrivi " | ",1,False,,,1
Else
For es = fin - 1 To ini Step - 1
If Estratto(fin,Ru,p) = TermFin(1,coRu + p) Then
cc = cc + 1 '''''''
End If
Next
If cc > 0 Then
Scrivi FormatSpace((Estratto(fin,Ru,p)),2,True),1,False,,,1
ArchivioTerm(W + 1,coRu + p) = Estratto(fin,Ru,p)
Else
If Coe = 1 Then
Scrivi FormatSpace((Estratto(fin,Ru,p)),2,True),,False,,6,1
Else
Scrivi FormatSpace("..",2,True),,False,,,1
End If
End If
Scrivi " ",,False
If p = 5 Then Scrivi "| ",,False,,,1
End If
Next
Next
Scrivi
Messaggio " Data estrazione - " & DataEstrazione(EstrazioneFin - W) & " - estr.da analizzare " & W
AvanzamentoElab 0,esAn,W
Next
Messaggio " Scrittura output - estrazione finale " & DataEstrazione(EstrazioneFin) & " - analizzate " & aRit(1)
Scrivi " Data N°estr Rit ",1,False,6,,1
For Ru = 1 To 11
If Ru = 11 Then Ru = 12
If Tab_Ana = 1 Then
Scrivi "|" & FormatSpace(SiglaRuota(Ru) & " Analitico Terminatore",33,False),1,False,6,,1
Else
Scrivi "|" & FormatSpace(SiglaRuota(Ru) & " Terminatore",16,False),1,False,6,,1
End If
co = 1
For x = 1 To UBound(lunghetta,2)
If lunghetta(Ru,x) > 0 Then
co = co + 1
numLung(Ru,co) = lunghetta(Ru,x)
numLung(Ru,0) = Ru
End If
Next
Next
Scrivi
Scrivi
Scrivi " Lunghette Terminatori " & String(12," ") & " Estrazioni analizzate : " & FormatSpace(esAn,4,1) & " al " & DataEstrazione(EstrazioneFin) & " Indice " & EstrazioneFin,1,1,3,2,1
For Ru = 1 To 11
AvanzamentoElab 0,11,Ru
If Ru = 11 Then Ru = 12
co = 0
Scrivi FormatSpace("PostoD",12,True) & " : ",1,False,,,1
For x = 2 To UBound(numLung,2)
If numLung(Ru,x) > 0 Then
co = co + 1
If co = 1 Then numLung(Ru,1) = RitardoEstratto(numLung(Ru,x),EstrazioneFin,Ru)
pos = RitardoEstratto(numLung(Ru,x),EstrazioneFin,Ru,,retPos)
If RitardoEstratto(numLung(Ru,x),EstrazioneFin,Ru) = RitardoEstratto(numLung(Ru,x + 1),EstrazioneFin,Ru) Or RitardoEstratto(numLung(Ru,x),EstrazioneFin,Ru) = RitardoEstratto(numLung(Ru,x - 1),EstrazioneFin,Ru)Then
ColoreTesto 2
Scrivi FormatSpace(retPos & "°",3,True) & " ",,False,,,1
posLung(Ru,x) = retPos
Else
Scrivi FormatSpace(retPos & "°",3,True) & " ",,False,,,1
posLung(Ru,x) = retPos
End If
End If
ColoreTesto 0
Next
Scrivi String((84 - co*4),".") & " POSIZIONI",1,,,,1
co = 0
Scrivi FormatSpace(NomeRuota(Ru),12,True) & " : ",1,False,4,,1
For x = 2 To UBound(numLung,2)
If numLung(Ru,x) > 0 Then
co = co + 1
If RitardoEstratto(numLung(Ru,x),EstrazioneFin,Ru) = RitardoEstratto(numLung(Ru,x + 1),EstrazioneFin,Ru) Or RitardoEstratto(numLung(Ru,x),EstrazioneFin,Ru) = RitardoEstratto(numLung(Ru,x - 1),EstrazioneFin,Ru)Then
ColoreTesto 2
Scrivi FormatSpace(numLung(Ru,x),3,True) & " ",1,False,4,,1
Else
Scrivi FormatSpace(numLung(Ru,x),3,True) & " ",1,False,4,,1
End If
End If
ColoreTesto 0
Next
Scrivi String((84 - co*4),".") & Format2(co) & " Numeri",1,,,,1
co = 0
Scrivi FormatSpace("Rit.",12,True) & " : ",1,False,,,1
For x = 2 To UBound(numLung,2)
If numLung(Ru,x) > 0 Then
co = co + 1
If co = 1 Then numLung(Ru,1) = RitardoEstratto(numLung(Ru,x),EstrazioneFin,Ru)
If RitardoEstratto(numLung(Ru,x),EstrazioneFin,Ru) = RitardoEstratto(numLung(Ru,x + 1),EstrazioneFin,Ru) Or RitardoEstratto(numLung(Ru,x),EstrazioneFin,Ru) = RitardoEstratto(numLung(Ru,x - 1),EstrazioneFin,Ru)Then
ColoreTesto 2
Scrivi FormatSpace(RitardoEstratto(numLung(Ru,x),EstrazioneFin,Ru),3,True) & " ",,False,,,1
Else
Scrivi FormatSpace(RitardoEstratto(numLung(Ru,x),EstrazioneFin,Ru),3,True) & " ",,False,,,1
End If
End If
ColoreTesto 0
Next
Scrivi String((84 - co*4),".") & " RC",1,,,,1
co = 0
ReDim numVer(90)
ReDim ruoVer(12)
Dim retClp
Scrivi FormatSpace("clp1°Esito",12,True) & " : ",1,False,,,1 ' x silop in questa riga, se vuoi modificare clpEsito a tuo piacere, max 12 caratteri compreso spaziature
For x = 2 To UBound(numLung,2)
If numLung(Ru,x) > 0 Then
co = co + 1
numVer(1) = numLung(Ru,x)
ruoVer(1) = Ru
If VerificaEsitoTurbo(numVer,ruoVer,EstrazioneFin + 1,1,(EstrazioniArchivio - EstrazioneFin),,,retClp) = True Then
Scrivi FormatSpace(retClp,3,True) & " ",1,False,,,1
clpLung(Ru,x) = retClp
Else
Scrivi FormatSpace("--",3,True) & " ",1,False,,,1 ' sostiuito ng con --
clpLung(Ru,x) = 0
End If
End If
Next
Scrivi String((84 - co*4),".") & " Clp di Risortita",1,,,,1
co = 0
Scrivi FormatSpace("pos1°Esito",12,True) & " : ",1,False,,,1
For x = 2 To UBound(numLung,2)
If numLung(Ru,x) > 0 Then
co = co + 1
If clpLung(Ru,x) > 0 Then
If Posizione(EstrazioneFin + clpLung(Ru,x),Ru,numLung(Ru,x)) = posLung(Ru,x) Then
Scrivi FormatSpace("D",3,True) & " ",1,False,,2,1 'De
Else
Scrivi FormatSpace("S",3,True) & " ",1,False,,,1 'Se
End If
Else
Scrivi FormatSpace("--",3,True) & " ",1,False,,,1
End If
End If
Next
Scrivi String((84 - co*4),".") & " POSIZIONE semplice/Determinata",1,,,,1
Scrivi ' serve a lasciare una riga vuota tra le ruote
Next '
Scrivi
If EstrazioneFin = EstrazioniArchivio Then
Scrivi " TERMINATORI risortiti al 1° colpo per Tabellone Analitico TT + Naz non aggionabile, estrazioni successive inesistenti in archivio",1
Else
Messaggio " Elaborazione e Scrittura output - terminatori risortiti " & DataEstrazione(EstrazioneFin)
Scrivi " Sunto TERMINATORI risortiti al 1° colpo per aggiornamento Tabellone Analitico TT + Naz",1
Scrivi "Data Risortita N°es Rit ",1,False,6,,1
For Ru = 1 To 12
If Ru = 11 Then Ru = 12
Scrivi "| " & FormatSpace(SiglaRuota(Ru) & " Te ",15,False),1,False,6,,1
Next
Scrivi
Scrivi DataEstrazione(EstrazioneFin + 1,,,"/") & " " & FormatSpace(EstrazioneFin + 1,5,1) & " " & FormatSpace(EstrazioniArchivio - EstrazioneFin,3,1) & " | ",1,False,,,1
For Ru = 1 To 12
AvanzamentoElab 0,11,Ru
If Ru = 11 Then Ru = 12
''''' numeri delle lunghette esitate e posiz di esito
For p = 1 To 5
co = 0
a = Estratto(EstrazioneFin + 1,Ru,p)
For x = 2 To UBound(numLung,2)
If numLung(Ru,x) > 0 And numLung(Ru,x) = a Then
Scrivi FormatSpace(a,2,True),1,False,,,1
co = co + 1
Exit For
End If
Next
If co = 0 Then Scrivi "--",1,False,,,1
If p < 5 Then Scrivi " ",1,False,,,1
If p = 5 Then Scrivi " | ",1,False,,,1
Next
Next
Scrivi
Scrivi "Data Risortita N°es Rit ",1,False,6,,1
For Ru = 1 To 12
If Ru = 11 Then Ru = 12
Scrivi "| " & FormatSpace(SiglaRuota(Ru) & " Te ",15,False),1,False,6,,1
Next
End If
Scrivi
Scrivi " Tempo Trascorso : " & TempoTrascorso,1,,,,1
End Sub