Io non so se ho capito bene quello che ti serve ma ti ho buttato giù un po di codice però in C# ma lo puoi modificare facilmente in VB.NET utilizzando i tool che si trovano on-line esempio questo : http://www.developerfusion.com/tools/convert/csharp-to-vb
Venendo a noi io ho creato un oggetto e quindi una Classe di nome Sanzione dove contiene i valori di Massimo , Minimo , e Rata Massima..
public class Sanzione
{
private float MinimaSansione;
private float MassimaSansione;
private int MassimeRate;
public Sanzione(float MinimaSansione, float MassimaSansione, int MassimeRate)
{
this.MinimaSansione = MinimaSansione;
this.MassimaSansione = MassimaSansione;
this.MassimeRate = MassimeRate;
}
public float getMassimaSansione()
{
return this.MassimaSansione;
}
public float getMinimaSansione()
{
return this.MinimaSansione;
}
public int getMassimeRate()
{
return this.MassimeRate;
}
public void setMassimaSansione(float newMassimaSansione)
{
this.MassimaSansione = newMassimaSansione;
}
public void setMinimaSansione(float newMinimaSansione)
{
this.MinimaSansione = newMinimaSansione;
}
public void setMassimeRate(int newMassimeRate)
{
this.MassimeRate = newMassimeRate;
}
//public override bool Equals(object o)
//{
// // If parameter is null return false.
// if (o == null)
// {
// return false;
// }
// Sanzione sansione = (Sanzione)o;
// return (
// (this.getMinimaSansione() == sansione.getMinimaSansione()) &&
// (this.getMinimaSansione() == sansione.getMassimaSansione()) &&
// (this.getMassimeRate() == sansione.getMassimeRate() )
// );
//}
}
Per facilità io ho creato una Mappa contenente come Key la fascia della sanzione e come Valore l'oggetto Sanzione che contiene i valori Massimo , Minimo e Rata Massima ...
Di seguito puoi vedere come viene riempito il Dizionario e poi come fare il calcolo :
//Come chiave è la fascia della sanzione - <key,value> -> <int , Sanzione>
private Dictionary<int, Sanzione> DizzionarioFascia = new Dictionary<int, Sanzione>();
Come riempire il dizionario con i valori :
public void CaricaDatiDizionario(){
// Ho tre fasce di sanzioni:
//1) fascia comprende numeri da 211 a 2108.00 con rate autorizzate massimo a 12
//2) fascia comprende numeri da 2108.01 a 5270.00 con rate autorizzate massimo a 24
//3 ) fascia comprende numeri da 5270.01 a 99999.99 con rate autorizzate massimo a 60
DizzionarioFascia.Add(1, new Sanzione(211F, 2108.00F, 12));
DizzionarioFascia.Add(2, new Sanzione(2108.01F, 5270.00F, 24));
DizzionarioFascia.Add(3, new Sanzione(5270.01F, 99999.99F, 60));
}
Ora vediamo come ricavare il valore della rata dato come parametro un importo di una sanzione che è di tipo float :
N.B. ritorna valore -1 quando non è presente nessuna fascia che corrisponde esempio se metto come importo di sanzione (< 211F) oppure se è( > 99999.99F)
Il codice è facilmente modificabile.
Bozza codice VB.NET
Codice Classe Sanzione in VB.NET
Public Class Sanzione
Private MinimaSansione As Single
Private MassimaSansione As Single
Private MassimeRate As Integer
Public Sub New(MinimaSansione As Single, MassimaSansione As Single, MassimeRate As Integer)
Me.MinimaSansione = MinimaSansione
Me.MassimaSansione = MassimaSansione
Me.MassimeRate = MassimeRate
End Sub
Public Function getMassimaSansione() As Single
Return Me.MassimaSansione
End Function
Public Function getMinimaSansione() As Single
Return Me.MinimaSansione
End Function
Public Function getMassimeRate() As Integer
Return Me.MassimeRate
End Function
Public Sub setMassimaSansione(newMassimaSansione As Single)
Me.MassimaSansione = newMassimaSansione
End Sub
Public Sub setMinimaSansione(newMinimaSansione As Single)
Me.MinimaSansione = newMinimaSansione
End Sub
Public Sub setMassimeRate(newMassimeRate As Integer)
Me.MassimeRate = newMassimeRate
End Sub
End Class
Codice che richiama la funzione da una Form in VB.NET :
Ricorda che, accettare la risposta è un modo di ringraziare chi ci ha aiutato ed evidenziare che il problema è stato risolto.
Blog ImaginSystems
http://blogs.dotnethell.it/imaginsystems
http://www.alpacasrl.it