Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [Visual Basic .net] Creazione file .ini

    Salve a tutti
    Ho un problema al quale sto tentando di dare una soluzione da molto tempo.
    Io sto creando un programma che, inserendo un valore in una textbox e selezionando determinate checkbox, mi restituisce un valore preciso.

    mi spiego meglio.
    Inserisco un valore numerico in textbox1
    seleziono checkbox1, checkbox3 e checkbox5.
    Se inserisco inella textbox il vaore "400" e seleziono checkbox1, checkbox 7 e checkbox 12, il risultato deve essere: 400 * 356,859
    il problema è che se io seleziono altre checkbox (ad esempio checkbox 2, checkbox 5 e checkbox7), il risualtato cambia (400 * 936,265)

    tenendo presente che mi sto quasi rassegnando all'idea di scrivere migliaia di righe di comando all'evento del click,
    chiedo: come faccio a creare il file .ini necessario al caricamento delle tariffe?
    che codice devo inserire per fare in modo che al momento del click si carichino i dati contenuti nel file .ini?
    come faccio a inserire le tariffe nel file .ini?
    è necessario creare un file .ini o andrebbe bene anche un dll?

    ringrazio anticipatamente per l'aiuto

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    134
    mmm nn sono sicuro di avere capito bene il tuo problema....
    hai un certo numero di checkbox mi pare di aver capito (supponiamo 20). E scrivi un importo in una textbox. Al click su un pulsante vuoi moltiplicare l'importo per un'aliquota. Ora, quest'aliquota viene fuori da una semplice somma?
    Faccio un esempio:

    -checkbox1 vale 0,5
    -checkbox2 vale 0,8
    -checkbox3 vale 0,4
    -checkbox4 vale 0,6
    - ecc ecc..

    ora supponiamo che hai selezionato le checkbox 1,3 e 4 e nella textbox hai scritto 100, vuoi come risultato 100*(0,5+0,4+0,6)? Se sì non mi pare che tu abbia bisogno di INI o DLL... semplicemente dentro l'evento click dichiari una variabile "TotAliquote" all'inizio e verifiche cn un IF il check di tutte le checkbox e al limite incrementi TotAliquote.
    Potresti scrivere l'aliquota nella proprietà TAG, e leggerla da lì per incrementare TotAliquote, in modo che se le aliquote cambiano cambi dal lato progettazione i valori di TAG senza mettere mani al codice.
    Ancora, per farlo più "elegante", qualora soprattutto i checkbox siano molti, potresti racchiuderli tutti dentro un panel, iterare su panel.controls e incrementare man mano TotAliquote... così dovresti addirittura uscirtene con meno di 10 righe di codice.

    Forse nn sono stato molto chiaro, ma questo anche perchè non credo di aver afferrato bene il tuo problema.
    Resto a disposizione cmq ;-)

  3. #3
    intanto grazie per la risposta
    hai quasi afferrato il tuo problema, ma non si tratta di somme tra numeri: si tratta di somme tra percentuali. Ad esempio checkbox1 vale 40% e checkbox6 vale 100%.
    Se le seleziono tutte e due e metto nella textbox il valore 100, allora label1 deve darmi come risultato (((100)/100)*140)+100

    ad ogni modo, potresti gentilmente rispiegare meglio quello che hai scritto nel post precedente, per favore?

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    134
    ah beh numeri o percentuali fa lo stesso... nn dovrebbe creare problemi questo.
    Per quanto riguarda il nocciolo del problema provo a rispiegare.
    Tu disegni dall'editor visuale le tue checkbox, però le inserisci dentro un panel.
    Per ogni checkbox, oltre a scrivere la proprietà Text corrispondente scrivi la percentuale nella proprietà TAG (senza il "%"), quindi ad esempio su checkbox1.Tag scriverai 40 mentre su checkbox6.Tag scriverai 100.

    Poi, dentro l'evento click di un pulsante farai così:

    Private Sub Button1Click(sender As System.Object, e As System.EventArgs) handles button1.click
    Dim cont As int16
    dim TotAliquota as Integer = 0 'o Decimal, fai tu
    For cont = 0 To panel1.Controls.count - 1
    If CType(panel1.Controls(cont), CheckBox).Checked = True then
    TotAliquota += CInt(CType(panel1.Controls(cont),CheckBox).Tag)
    End If
    Next
    End Sub

    In TotAliquota avrai il totale delle percentuali corrispondenti alle checkbox selezionate, poi puoi farci tutte le operazioni che vuoi (sempre dentro l'evento button1Click, sennò TotAliquota la devi dichiarare a livello di classe, ma questo credo lo sai già).
    Spero di essermi spiegato stavolta.
    ciao.

  5. #5
    ora, come faccio a fare sì che nella label1 mi venga scritto il risultato?

  6. #6
    6 un grande
    ci sono arrivato!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    6 il numero 1
    grazie infinite

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    134
    ma intanto il codice ke ho scritto prima l'hai capito? ti funziona? in ogni caso il resto è semplice....

    Private Sub Button1Click(sender As System.Object, e As System.EventArgs) handles button1.click
    Dim cont As int16
    dim TotAliquota as Integer = 0 'o Decimal, fai tu
    For cont = 0 To panel1.Controls.count - 1
    If CType(panel1.Controls(cont), CheckBox).Checked = True then
    TotAliquota += CInt(CType(panel1.Controls(cont),CheckBox).Tag)
    End If
    Next
    dim ris as decimal = 0
    ris = (cdec(textbox1.text)*cdec(TotAliquota)/100)+cdec(textbox1.text)
    label1.text = ris
    End Sub

    beh la formula l'ho desunta da quella che hai postato prima tu, ma la sua correttezza la puoi sapere solo tu che conosci cosa devi calcolare.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    134
    eeeeh! non esageriamo!
    piacere di esserti stato d'aiuto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.