Commit 0383cfa2 authored by Michele's avatar Michele

Merge branch 'next' into 'master'

preparazione alla 3.11.2

See merge request akrobaticone/Gestione-manifestazioni!9
parents bf99f2f6 10b06e47
No preview for this file type
This diff is collapsed.
No preview for this file type
This diff is collapsed.
No preview for this file type
This diff is collapsed.
......@@ -2,7 +2,7 @@
Title=Gestione manifestazioni
Startup=MAvvio
Icon=frequenze3.png
Version=3.11.1
Version=3.11.99
Component=gb.image
Component=gb.qt4
Component=gb.form
......
......@@ -143,8 +143,8 @@ Public Function Data()
Me.SetFont("Arial", "", 12)
For i = 0 To dimensione
Me.Setx(30)
Me.cell(80, 8, dati[i][0], True, 0, "L", False, "")
Me.cell(80, 8, dati[i][1], True, 0, "L", False, "")
Me.cell(120, 8, dati[i][0], True, 0, "L", False, "")
Me.cell(40, 8, dati[i][1], True, 0, "L", False, "")
Me.Ln()
Next
Endif
......
......@@ -97,7 +97,7 @@ Public Sub statistica(dati As String[][])
dati.Push([("Numero costruttori"), n_costruttori])
dati.push([("Numero modelli volanti"), totale_modelli])
dati.push([("Numero voli effettuati"), totale_voli])
dati.push([("Numero massimo di piloti contemporaneamente in volo"), d.massimo_in_volo])
dati.push([("Numero massimo di piloti in volo"), d.massimo_in_volo])
dati.push([("Media modelli per pilota"), mediamodelli])
dati.Push([("Media modelli per costruttore"), media_costruttori])
dati.push([("Media voli per pilota"), media_voli])
......@@ -188,4 +188,16 @@ Public Function max_prenota() As Integer 'cerca il numero massimo di prenotazio
End
Public Function stato_piloti_attivi() As Integer
Dim numero As Integer = 0
For i As Integer = C.INIZIO_PILOTI To D.Piloti.Max
If d.piloti[i].stato > C.STATO_INVISIBILE Then numero += 1
Next
Return numero
End
......@@ -17,6 +17,7 @@ Public Sub Form_Open()
Dim i As Integer
Dim nr As Integer
Dim lista As New String[][]
Dim attuale As Integer
listbox1.clear
listbox2.clear 'cancella listbox
Me.text = D.piloti[numero].nome 'visualizza lista modelli del pilota
......@@ -25,8 +26,9 @@ Public Sub Form_Open()
For i = 0 To nr
listbox1.Add(lista[0][i])
listbox2.Add(lista[1][i])
If lista[0][i] = D.piloti[numero].nomemodello Then attuale = i
Next
listbox1.index = attuale
End
Public Sub btn_ok_Click()
......
......@@ -6,12 +6,20 @@
Public Sub rdb_totale_Click()
frm_dati.enabled = False
ckb_cronologia.value = True
End
Public Sub rdb_selettiva_Click()
frm_dati.enabled = True
ckb_cronologia.value = True
End
Public Sub rdb_stato_Click()
frm_dati.enabled = False
ckb_cronologia.value = False
End
......@@ -32,16 +40,18 @@ Public Sub btn_inizializza_Click()
If rdb_totale.value Then
.inizializza()
Else
If ckb_ultimo_volo.value Then .oraultimo = Time(0, 0, 0)
If ckb_numero_voli.value Then
For y = 0 To .get_indice_modelli()
.lista_modelli[2][y] = "0"
Next
Endif
If ckb_totale_tempo.value Then .tempovolo = Time(0, 0, 0)
If ckb_evidenziazione.value Then .evidenzia = False
If ckb_note.value Then .nota = Null
Endif
If rdb_selettiva.value Then
If ckb_ultimo_volo.value Then .oraultimo = Time(0, 0, 0)
If ckb_numero_voli.value Then
For y = 0 To .get_indice_modelli()
.lista_modelli[2][y] = "0"
Next
Endif
If ckb_totale_tempo.value Then .tempovolo = Time(0, 0, 0)
If ckb_evidenziazione.value Then .evidenzia = False
If ckb_note.value Then .nota = Null
Endif
Endif
Endif
If rdb_attivi.value Then .stato = C.STATO_LISTA
If rdb_sospesi.value Then .stato = C.STATO_SOSPESO
......@@ -50,12 +60,12 @@ Public Sub btn_inizializza_Click()
.prioritaprenota = 0
.flag = False
.round = Null
.tempoultimovolo = Time(0, 0, 0)
If rdb_stato.value = False Then .tempoultimovolo = Time(0, 0, 0)
End With
Next
d.punta_prenota = 0
d.massimo_in_volo = 0
If ckb_cronologia Then F.inizializza_cronologia()
If rdb_stato.value = False Then d.massimo_in_volo = 0
If ckb_cronologia.value Then F.inizializza_cronologia()
F.add_cronologia(-1, ("Inizializzazione piloti"))
Me.close
......@@ -66,3 +76,4 @@ Public Sub Form_Open()
Me.text = d.nome_manifestazione & " - " & "Inizializza piloti"
End
......@@ -5,7 +5,7 @@
Icon = Picture["Immagini/Radio.png"]
Resizable = False
{ frm_tipo Frame
MoveScaled(3,4,31,14)
MoveScaled(3,4,31,17)
Text = ("Tipo inizializzazione")
{ rdb_totale RadioButton
MoveScaled(0,4,27,4)
......@@ -16,6 +16,10 @@
MoveScaled(0,9,28,3)
Text = ("Parziale")
}
{ rdb_stato RadioButton
MoveScaled(0,13,25,4)
Text = ("Solo stato")
}
}
{ frm_stato Frame
MoveScaled(37,4,29,18)
......@@ -70,6 +74,7 @@
{ ckb_cronologia CheckBox
MoveScaled(0,4,28,4)
Text = ("Azzera cronologia")
Value = CheckBox.True
}
{ ckb_eliminati CheckBox
MoveScaled(0,9,31,4)
......
......@@ -183,8 +183,8 @@ Public Sub btn_InVolo_Click()
D.Piloti[numero].orainizio = Time(Now)
frame1.visible = False
picturebox1.visible = True
F.add_cronologia(numero, ("in volo"))
aggiorna_FTabellone()
F.add_cronologia(numero, (("in volo con ") & D.Piloti[numero].nomemodello))
aggiorna_FTabellone()
disattiva_pulsanti()
listbox2_riordina()
listbox3_riordina()
......@@ -229,7 +229,7 @@ Public Sub btn_gruppo_Click()
Endif
For i = 0 To vettore.Max
D.Piloti[vettore[i]].stato = C.STATO_VOLO
F.add_cronologia(vettore[i], ("in volo"))
F.add_cronologia(vettore[i], (("in volo con ") & D.Piloti[vettore[i]].nomemodello))
D.Piloti[vettore[i]].orainizio = Time(Now)
Next
aggiorna_FTabellone()
......@@ -610,7 +610,7 @@ Public Sub mnu_esporta_csv_Click()
For i = C.INIZIO_PILOTI To D.Piloti.Max ' ottieni il numero massimo di modelli per pilota
If D.Piloti[i].get_indice_modelli() > max Then max = D.Piloti[i].get_indice_modelli()
Next
If D.Piloti.max = 0 Then Return
If F.stato_piloti_attivi() = 0 Then Return
risposta = Message.Question(("Aprire il file dopo la generazione?"), ("Ok"), ("No"))
Dialog.Path = User.home &/ C.CARTELLA_PROGRAMMA & "/ListaPiloti.csv" ' nome predefinito del file
Dialog.Filter = ["*.csv", " File CSV "] ' filtro estensione .csv
......@@ -669,7 +669,7 @@ End
Public Sub mnu_tabellonetotale_Click()
If D.Piloti.count = 1 Then Return
If F.stato_piloti_attivi() = 0 Then Return
If D.form_totale_aperto = False Then
FInfoTotale.Show()
Endif
......@@ -678,6 +678,7 @@ End
Public Sub mnu_riepilogo_Click()
If F.stato_piloti_attivi() = 0 Then Return
Friepilogo.Show
End
......@@ -945,7 +946,7 @@ Public Sub mnu_modificapriorita_Click()
Case C.PRIORITA_ULTIMO
D.punta_prenota = D.punta_prenota + 1
D.Piloti[numero].prioritaprenota = D.punta_prenota
F.add_cronologia(numero, ("Modificata priorità prenotazione in ultima posizione"))
F.add_cronologia(numero, ("Priorità ultima posizione"))
Case C.PRIORITA_SU
btn_sale_Click()
Case C.PRIORITA_GIU
......@@ -962,7 +963,7 @@ Public Sub mnu_modificapriorita_Click()
i = D.Piloti[numero].prioritaprenota
D.Piloti[numero].prioritaprenota = D.Piloti[p].prioritaprenota
D.Piloti[p].prioritaprenota = i
F.add_cronologia(numero, ("scambiata priorità prenotazione con pilota N* ") & p)
F.add_cronologia(numero, ("Priorità scambio con pilota N* ") & p)
End Select
cmb_prenotazione_Click()
aggiorna_FTabellone()
......@@ -1012,6 +1013,29 @@ Public Sub mnu_frequenze_Click()
End
Public Sub mnu_esporta_cronologia_Click()
Dim numero As Integer
Dim obj As New FScegliCronologia
Dim percorso As String
numero = obj.ShowModal()
If numero = C.ANNULLA Then Return
If (numero > D.Piloti.Max And numero <> 99) Then Return
If numero = -1 Then percorso = nome_file_cronologia()
If numero > 0 And numero < 99 Then percorso = D.Piloti[numero].nome
If numero = 99 Then percorso = "Eventi-" & nome_file_cronologia()
Dialog.Path = User.home &/ C.CARTELLA_PROGRAMMA &/ percorso & ".txt" ' nome predefinito del file
Dialog.Filter = ["*.txt", (" File cronologia ")] ' filtro estensione .lgf
If Dialog.SaveFile() Then Return
percorso = Dialog.Path
If Right(percorso, 4) <> ".txt" Then percorso = percorso & ".txt"
esporta_cronologia(percorso, numero) ' visualizza finestra dialogo ; se premuto annulla esci
Desktop.open(percorso)
End
Public Sub ListBox1_GotFocus()
listbox3.Current.selected = False
......@@ -1988,7 +2012,7 @@ End
Public Sub mnu_pdf_Click()
Fpdf.showmodal()
If F.stato_piloti_attivi() > 0 Then Fpdf.showmodal()
End
......@@ -2080,7 +2104,7 @@ Public Sub btn_scende_Click()
D.piloti[numero].prioritaprenota = d.piloti[risultato].prioritaprenota
D.piloti[risultato].prioritaprenota = scambio
listbox2_riordina()
F.add_cronologia(numero, ("scambiata priorità prenotazione da pos. (") & prima & ")" & (" a pos. (") & (cerca_lista(numero, 2) + 1) & ")")
F.add_cronologia(numero, ("Priorità da pos. (") & prima & ")" & (" a pos. (") & (cerca_lista(numero, 2) + 1) & ")")
Endif
disattiva_pulsanti()
pippo = cerca_lista(numero, 2)
......@@ -2106,7 +2130,7 @@ Public Sub btn_sale_Click()
D.piloti[numero].prioritaprenota = d.piloti[risultato].prioritaprenota
D.piloti[risultato].prioritaprenota = scambio
listbox2_riordina()
F.add_cronologia(numero, ("scambiata priorità prenotazione da pos. (") & prima & ")" & (" a pos. (") & (cerca_lista(numero, 2) + 1) & ")")
F.add_cronologia(numero, ("Priorità da pos. (") & prima & ")" & (" a pos. (") & (cerca_lista(numero, 2) + 1) & ")")
Endif
disattiva_pulsanti()
pippo = cerca_lista(numero, 2)
......@@ -2143,26 +2167,7 @@ Public Function cerca_lista(numero As Integer, box As Integer) As Integer
End
Public Sub mnu_esporta_cronologia_Click()
Dim numero As Integer
Dim obj As New FScegliCronologia
Dim percorso As String
numero = obj.ShowModal()
If numero = C.ANNULLA Then Return
If (numero > D.Piloti.Max And numero <> 99) Then Return
If numero = -1 Then percorso = nome_file_cronologia()
If numero > 0 And numero < 99 Then percorso = D.Piloti[numero].nome
If numero = 99 Then percorso = "Eventi-" & nome_file_cronologia()
Dialog.Path = User.home &/ C.CARTELLA_PROGRAMMA &/ percorso & ".txt" ' nome predefinito del file
Dialog.Filter = ["*.txt", (" File cronologia ")] ' filtro estensione .lgf
If Dialog.SaveFile() Then Return
percorso = Dialog.Path
If Right(percorso, 4) <> ".txt" Then percorso = percorso & ".txt"
esporta_cronologia(percorso, numero) ' visualizza finestra dialogo ; se premuto annulla esci
Desktop.open(percorso)
End
......@@ -20,7 +20,7 @@ Public Sub btn_esporta_Click()
If chk_lista.value Then opzioni = opzioni + C.OPT_LISTA
If chk_crono.value Then opzioni = opzioni + C.OPT_CRONO
If chk_statistiche.value Then opzioni = opzioni + C.OPT_STATISTICHE
If chk_lista.value = False Then opzioni = opzioni + C.OPT_SOLONOMI
If chk_solonomi.value = True Then opzioni = opzioni + C.OPT_SOLONOMI
Stringa.add(txt_titolo.text)
stringa.Add(txt_sottotitolo.text)
stringa.Add(btb_immagine.text)
......
......@@ -27,30 +27,18 @@ Public Sub Form_Open()
GridView1.Columns[2].Width = 200
GridView1.Columns[3].Width = 200
GridView1.Columns[4].Width = 200
AllineaHeader
' Dimensione form come griglia
nMax = D.Piloti.Max ' Ottieni numero piloti
nMax = D.Piloti.max ' Ottieni numero piloti
vettore.Resize(nMax + 1)
GridView1.Rows.count = nMax + 1
GridView1.Rows.count = F.stato_piloti_attivi()
For i = C.INIZIO_PILOTI To nMax
vettore[i] = i
Next
Composizione_griglia(nMax)
Me.Width = GridView1.Width + 50
End
Public Sub AllineaHeader() ' Ridimensiona larghezza colonne
Dim iPadding, iLunghezzaSpazio, iLunghezzaTesto As Integer
iLunghezzaSpazio = GridView1.Font.TextWidth(" ")
iLunghezzaTesto = GridView1.Font.TextWidth("First Column width 250")
iPadding = (GridView1.Columns[0].Width - iLunghezzaTesto) / (2 * iLunghezzaSpazio)
End
Public Sub Composizione_griglia(numero As Integer) ' compomi griglia a seconda della colonna selezionata
Dim contatore As Integer
......@@ -95,7 +83,6 @@ Public Sub Composizione_griglia(numero As Integer) ' compomi griglia a seconda d
contatore = contatore + 1
Endif
Next
Me.Width = GridView1.Width + 50
End
......@@ -137,16 +124,6 @@ Public Sub GridView1_ColumnClick(Column As Integer)
Next
Next ' cancella la listbox1
verso[2] = Not verso[2]
' Case 3 ' ORDINA PER NOME MODELLO
' For i = C.INIZIO_PILOTI To count ' ordina piloti per nome
' For y = C.INIZIO_PILOTI To (count - 1)
' If D.Piloti[vettore[y]].nomemodello > D.Piloti[vettore[y + 1]].nomemodello Then ' inserendo numero nell'array di appoggio
' iTemp = vettore[y]
' vettore[y] = vettore[y + 1]
' vettore[y + 1] = iTemp
' Endif
' Next
' Next
Case 5 'ORDINA PER NUMERO DI VOLI
For i = C.INIZIO_PILOTI To count ' ordina i piloti per numero di voli
For y = C.INIZIO_PILOTI To (count - 1) ' inserendo l'ordine nell'array di appoggio
......
......@@ -727,7 +727,7 @@ Public Sub Rect(x As Float, y As Float, w As Float, h As Float, Optional style A
_out(_stringFloat(x * $k, "0.00") & " " &
_stringFloat(($h - y) * $k, "0.00") & " " &
_stringFloat(w * $k, "0.00") & " " &
_stringFloat(- h * $k, "0.00") & " re " & op)
_stringFloat(-h * $k, "0.00") & " re " & op)
End
......@@ -1018,7 +1018,7 @@ Public Sub Cell(w As Float, Optional h As Float = 0, Optional txt As String = ""
s = _stringFloat($x * k, "0.00") & " " &
_stringFloat(($h - $y) * k, "0.00") & " " &
_stringFloat(w * k, "0.00") & " " &
_stringFloat(- h * k, "0.00") & " re " & op & " "
_stringFloat(-h * k, "0.00") & " re " & op & " "
End If
Else If (myStringa(border)) Then
x = $x
......@@ -1765,7 +1765,7 @@ Public Sub Ellipse2(x0 As Float, y0 As Float, rx As Float, Optional ry As Float
x0 *= $k
y0 = ($h - y0) * $k
If (angle <> 0) Then
a = - Rad(angle)
a = -Rad(angle)
_out("q " &
_stringFloat(Cos(a), "0.00") & " " &
_stringFloat(-1 * Sin(a), "0.00") & " " &
......@@ -1779,7 +1779,7 @@ Public Sub Ellipse2(x0 As Float, y0 As Float, rx As Float, Optional ry As Float
t1 = astart
a0 = x0 + (rx * Cos(t1))
b0 = y0 + (ry * Sin(t1))
c0 = - rx * Sin(t1)
c0 = -rx * Sin(t1)
d0 = ry * Cos(t1)
_Point(a0 / $k, $h - (b0 / $k))
For i = 1 To nSeg
......@@ -1787,7 +1787,7 @@ Public Sub Ellipse2(x0 As Float, y0 As Float, rx As Float, Optional ry As Float
t1 = (i * dt) + astart
a1 = x0 + (rx * Cos(t1))
b1 = y0 + (ry * Sin(t1))
c1 = - rx * Sin(t1)
c1 = -rx * Sin(t1)
d1 = ry * Cos(t1)
_Curve((a0 + (c0 * dtm)) / $k,
$h - ((b0 + (d0 * dtm)) / $k),
......@@ -2328,12 +2328,12 @@ Public Sub Cube(x1 As Float, y1 As Float, Optional a As Float = 10, Optional b A
x = x1 + a 'x = ($w - $rMargin) / 2 - (a / 2)
y = y1 + b 'y = ($h - $tMargin) / 2 - (b / 2)
cubo = [[x + a, y + b, c],
[x + a, y + b, - c],
[x - a, y + b, - c],
[x + a, y + b, -c],
[x - a, y + b, -c],
[x - a, y + b, c],
[x + a, y - b, c],
[x + a, y - b, - c],
[x - a, y - b, - c],
[x + a, y - b, -c],
[x - a, y - b, -c],
[x - a, y - b, c]]
senx = Sin(alfax * Pi() / 180)
cosx = Cos(alfax * Pi() / 180)
......@@ -2343,7 +2343,7 @@ Public Sub Cube(x1 As Float, y1 As Float, Optional a As Float = 10, Optional b A
cosz = Cos(alfaz * Pi() / 180)
a = cosy * cosz
b = cosy * senz
c = - seny
c = -seny
d = senx * seny * cosz - cosx * senz
e = senx * seny * senz + cosx * cosz
f = senx * cosy
......@@ -2764,7 +2764,7 @@ Public Sub Clip(x As Float, y As Float, w As Float, h As Float)
_stringFloat(x * $k, "0,00") & " " &
_stringFloat(($h - y) * $k, "0,00") & " " &
_stringFloat(w * $k, "0,00") & " " &
_stringFloat(- h * $k, "0,00") & " re W n"
_stringFloat(-h * $k, "0,00") & " re W n"
'set up transformation matrix for gradient
s &= " " &
_stringFloat(w * $k, "0.000") & " 0 0 " &
......@@ -3234,7 +3234,7 @@ End
Public Sub Translate(t_x As Float, t_y As Float)
'translate the coordinate system
Me.Transform([1.0, 0.0, 0.0, 1.0, t_x * $k, - t_y * $k])
Me.Transform([1.0, 0.0, 0.0, 1.0, t_x * $k, -t_y * $k])
End
......@@ -3361,16 +3361,16 @@ Public Sub CircularText(x As Float, y As Float, r As Float, text As String, Opti
If (align = "top") Then
Me.Rotate(d / 2, x, y)
Else
Me.Rotate(- d / 2, x, y)
Me.Rotate(-d / 2, x, y)
End If
'run through the string
For i = 0 To (Len(text) - 1)
If (align = "top") Then
'rotate matrix half OF the width OF current letter + half of the width of preceding letter
If (i = 0) Then
Me.Rotate(- ((w[i] / 2) / u) * 360, x, y)
Me.Rotate(-((w[i] / 2) / u) * 360, x, y)
Else
Me.Rotate(- ((w[i] / 2 + w[i - 1] / 2) / u) * 360, x, y)
Me.Rotate(-((w[i] / 2 + w[i - 1] / 2) / u) * 360, x, y)
End If
If (fontwidth <> 1) Then
Me.StartTransform()
......@@ -3855,7 +3855,7 @@ Private Function _dounderline(x As Float, y As Float, txt As String) As String
Return (_stringFloat(x * $k, "0.00") & " " &
_stringFloat(($h - (y - up / 1000 * $FontSize)) * $k, "0.00") & " " &
_stringFloat(w * $k, "0.00") & " " &
_stringFloat(- ut / 1000 * $FontSizePt, "0.00") & " re f")
_stringFloat(-ut / 1000 * $FontSizePt, "0.00") & " re f")
End
......@@ -4110,12 +4110,12 @@ Private Function _rotate(angle As Float, Optional x As Float = -1, Optional y As
cy = ($h - y) * $k
_out("q " & _stringFloat(c, "0.00000") & " " &
_stringFloat(s, "0.00000") & " " &
_stringFloat(- s, "0.00000") & " " &
_stringFloat(-s, "0.00000") & " " &
_stringFloat(c, "0.00000") & " " &
_stringFloat(cx, "0.00") & " " &
_stringFloat(cy, "0.00") & " cm 1 0 0 1 " &
_stringFloat(- cx, "0.00") & " " &
_stringFloat(- cy, "0.00") & " cm")
_stringFloat(-cx, "0.00") & " " &
_stringFloat(-cy, "0.00") & " cm")
End If
End
......@@ -4485,7 +4485,7 @@ Public Sub Cell2(w As Float, Optional h As Float = 0, Optional txt As String = "
s = _stringFloat($x * k, "0.00") & " " &
_stringFloat(($h - $y) * k, "0.00") & " " &
_stringFloat(w * k, "0.00") & " " &
_stringFloat(- h * k, "0.00") & " re " & op & " "
_stringFloat(-h * k, "0.00") & " re " & op & " "
End If
Else If (myStringa(border)) Then
x = $x
......
......@@ -2,7 +2,7 @@ MAvvio
Gestione manifestazioni
0
0
3.11.1
3.11.99
gb.image
gb.qt4
......
......@@ -372,3 +372,11 @@
-Bug:in statistiche errato arrotondamento voce "Modelli per costruttore"
-Bug:quando modificato pilota in stato prenotazione tornava in stato lista
3.11.99()
-In cronologia ora viene registrato anche il modello con cui il pilota va in volo
-aggiunta opzione "Solo stato" e ottimizzazioni varie in FInizializza piloti
-Bug: In FRiepilogo ogni volta che si cliccava su colonne aumentava la dimensione del form, eliminato dead code
-Bug: errata gestione opzione "solo nomi" in creazione file PDF esportato
-Bug: errata inizializzazione cronologia in FInizializza
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment