Ciao a tutti e buona domenica. Avrei la necessità di ordinare un report in maniera dinamica a seconda dei criteri scelti dall'utente tramite una maschera.
I parametri sono un menù a tendina che comprende tre opzioni più un radio button per scegliere se l'ordinamento debba essere crescente o decrescente.
Ho fatto la mia bella ricerchina su internet e ho trovato quest'utile link
http://allenbrowne.com/ser-33.html
Ho adattato il codice alle mie necessità in questo modo associando all'evento apertura del report il seguente codice:
Ciò che vorrei sapere è se è possibile snellire il codice relativo alla modalità di ordinamento (crescente o decrescente) senza essere costretto a ripetere tutto il codice per ciascuna possibilità.codice:Private Sub Report_Open(Cancel As Integer) ' verifico su quale campo l'utente desidera effettuare l'ordinamento Select Case Forms![apriReport2].cmbCampo.Value Case "cognome" Me.GroupLevel(0).ControlSource = "cognome" ' verifico se l'ordinamento prescelto è crescente o decrescente Select Case Forms![apriReport2].grpOrd.Value Case 1 Me.GroupLevel(0).SortOrder = False 'default crescente Case 2 Me.GroupLevel(0).SortOrder = True 'decrescente End Select Me.GroupLevel(1).ControlSource = "nome" Me.GroupLevel(2).ControlSource = "invalidita" Case "nome" Me.GroupLevel(0).ControlSource = "nome" Select Case Forms![apriReport2].grpOrd.Value Case 1 Me.GroupLevel(0).SortOrder = False Case 2 Me.GroupLevel(0).SortOrder = True End Select Me.GroupLevel(1).ControlSource = "cognome" Me.GroupLevel(2).ControlSource = "invalidita" Case "invalidità" Me.GroupLevel(0).ControlSource = "invalidita" Select Case Forms![apriReport2].grpOrd.Value Case 1 Me.GroupLevel(0).SortOrder = False Case 2 Me.GroupLevel(0).SortOrder = True End Select Me.GroupLevel(1).ControlSource = "cognome" Me.GroupLevel(2).ControlSource = "nome" End Select End Sub
Ho provato a mettere questo codice
Select Case Forms![apriReport2].grpOrd.Value
Case 1
Me.GroupLevel(0).SortOrder = False 'default crescente
Case 2
Me.GroupLevel(0).SortOrder = True 'decrescente
End Select
verso la fine della sub prima della chiusura dell'altro case ma l'ordinamento non viene più rispettato. Concludendo, è perfettibile il codice o si è obbligati a ripetere il codice relativo all'ordinamento per ciascuna voce?
Grazie per l'attenzione.