Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Importi in migliaia

  1. #1
    Utente di HTML.it L'avatar di carlo55
    Registrato dal
    Nov 2002
    residenza
    Padova
    Messaggi
    204

    Importi in migliaia

    Sono ancora achiderVI aiuto.
    In fase di inserimento di un importo se inserisco 1234,56 tutto va bene invece se inserisco 1.234,56 mi va in errore:
    Tipo di errore:
    Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
    [Microsoft][Driver ODBC Microsoft Access] Tipi di dati non corrispondenti nell'espressione criterio.

    A me necessita che l'importo sia separato dal punto per le migliaia e la virgola per i decimali per la virgola:

    importo_1=replace(var_comp,".",",")

    Come posso fare se l'utente mi mette il punto delle migliaia ?
    In access il campo è valuta standard (1.234,56)
    Nel ringraziarVI buona giornata Carlo
    Restiamo Umani

  2. #2
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,031
    A me necessita che l'importo sia separato dal punto per le migliaia e la virgola per i decimali per la virgola:

    Come posso fare se l'utente mi mette il punto delle migliaia ?
    cosa vuoi sapere insomma? :master:

    Non puoi inserirelo con il punto e con la virgola. Devi metterlo in fase di estrazione se ti interessa

  3. #3
    se non erro, se tu hai un numero scritto

    codice:
    1.234,56
    e in asp lo ricevi con

    codice:
    numero=cdbl("1.234,56")
    dovrebbe vedertelo come numero, quindi come 1234,56 (o 1234.56)
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150
    Riprendo una discussione di qualche tempo fa, per avere ulteriori chiarimenti.

    Nelle form e nelle stampe dovrei far visualizzare un importo nel seguente modo

    123.456,78
    123,76
    1.223,86

    Sulla base dati questo valore è chiaramente archiviato senza il "."
    Ho provato la funzione indicata nel post precedente, la CDBL ma non mi funziona.

    Avete qualche suggerimento o qualche alternativa a questa funzione.

    Io pensavo semplicemente di risolvere, mettendo sulle form di visualizzazione due campi. 1 nascosto che corrisponde all'attuale (senza punto delle migliaia) e 1 visualizzazione con il punto. Poi se l'utente cambiava il valore (inserendo o meno il punto delle migliaia), facevo un on-change che eliminava i punti.

    Il problema nasce quando sono su un db inglese, dove i decimali sono con il . VVoVe:

    Qualche idea?


  5. #5
    quando inserisci o aggiorni, il formato *deve* essere 123456.78
    quando visualizzi puoi usare la forma che vuoi

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150
    Chiaro

    Però mi servirebbe qualche consiglio su come fare l'aggiornamento, ovvero la conversione del "." delle migliaia in spazio dalla form di inserimento/modifica?

    E nel caso di formati numerici che prevedono il "." come separatore dei decimali?


  7. #7
    se l'utente scrive

    123.456,78

    togli i punti
    rimpiazzi la virgola col punto

    that easy!

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150

    calcolo con separatore delle migliaia

    Riprendo di nuovo questa discussione, anche se il problema credo sia relativo a Javascript.
    Ma mi spiego meglio e brevemente. Magari si può risolvere già in asp.

    Nella form ho tre campi
    1. importo gara
    2. importo aggiudicazione gara
    3. percentuale di ribasso

    Attualmente gli importi sono senza separatore "." delle migliaia e quando inserisco l'aggiudicazione eseguo anche queste funzioni nella sequenza indicata nel campo form sequente

    <input type="text" maxlength="12" name="IMPO_RIBA" value="0" size="16" class="campinullimpo" onchange="javascript:controlloimporti(document.dat iform.IMPO_RIBA.value, document.datiform.IMPO_AVVI.value); calcolopercriba(document.datiform.IMPO_AVVI.value, document.datiform.IMPO_RIBA.value)">
    e le due semplici funzioni sono

    controlloimporti
    function controlloimporti(camporiba,campoavvi)
    {
    camporibaconpunto = new String(camporiba);
    camporibaconpunto = camporibaconpunto.replace(",",".");

    CheckNumNewRiba = parseFloat(camporibaconpunto);

    if(isNaN(CheckNumNewRiba))
    {
    alert("Attenzione !!! Il valore del campo Importo Ribasso deve essere un numero");
    camporiba.focus();
    return false;
    }


    campoavviconpunto = new String(campoavvi);
    campoavviconpunto = campoavviconpunto.replace(",",".");

    CheckNumNewAvvi = parseFloat(campoavviconpunto);

    if(isNaN(CheckNumNewAvvi))
    {
    alert("Attenzione !!! Il valore del campo Importo Base d'Asta deve essere un numero");
    campoavvi.focus();
    return false;
    }

    return true;
    }
    e poi
    calcolopercriba

    function calcolopercriba(impoavvi,imporiba)
    {
    impoavviconpunto = new String(impoavvi);
    impoavviconpunto= impoavviconpunto.replace(",",".");

    imporibaconpunto = new String(imporiba);
    imporibaconpunto= imporibaconpunto.replace(",",".");

    diffavviriba = Number(impoavviconpunto)- Number(imporibaconpunto);

    document.datiform.PERC_RIBA.value = Math.round(((diffavviriba * 100)/(impoavviconpunto))*100)/100;


    document.datiform.PERC_RIBA.value = document.datiform.PERC_RIBA.value.replace(".",",") ;


    return true;
    }

    Ora se aggiungo le funzioni per la gestione dei punti delle migliaia (tra l'altro già funzionanti su altre form) in questo modo.

    Chiaramente sia per il campo n.1 (importo) che per quello numero 2. (aggiudicazione)

    Riporto solo quest'ultimo...
    <input type="text" maxlength="12" name="IMPO_RIBA" value="0" size="16" class="campinullimpo" onKeyUp="this.value=Formatta_num(this.value,2,',', false);" onBlur="this.value=Formatta_num(this.value,2,',',t rue);" onchange="javascript:controlloimporti(document.dat iform.IMPO_RIBA.value, document.datiform.IMPO_AVVI.value); calcolopercriba(document.datiform.IMPO_AVVI.value, document.datiform.IMPO_RIBA.value)">
    Il risultato della percentuale è sempre zero.

    Perchè? e quale sarebbe secondo voi una soluzione con meno impatti possibili?
    Stavo pensando anche di creare anche 2 campi nascosti utilizzabili solo per i calcoli.

    Qualsiasi suggerimento è gradito


  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150

    Risolto!

    Mi rispondo da solo, postandovi la soluzione, anche piuttosto semplice
    E' relativa a Javascript, comunque potrebbe sempre essere utile

    Nelle due funzioni precedenti, faccio semplicemente un passaggio iniziale in più, utilizzando due variabili di appoggio che poi vai a sostituire nel resto della funzione alle variabili passate come parametri.

    Questa è la prima funzione (la seconda presenta la stessa modifica)

    function controlloimporti(camporiba,campoavvi)
    {

    camporibaconvirgola = new String(camporiba);
    campoavviconvirgola = new String(campoavvi);

    camporibaconvirgola = camporibaconvirgola.replace(".","");
    campoavviconvirgola = campoavviconvirgola.replace(".","");

    camporibaconpunto = new String(camporibaconvirgola);
    camporibaconpunto = camporibaconpunto.replace(",",".");

    CheckNumNewRiba = parseFloat(camporibaconpunto);

    if(isNaN(CheckNumNewRiba))
    {
    alert("Attenzione !!! Il valore del campo Importo Ribasso deve essere un numero");
    camporiba.focus();
    return false;
    }


    campoavviconpunto = new String(campoavviconvirgola);
    campoavviconpunto = campoavviconpunto.replace(",",".");

    CheckNumNewAvvi = parseFloat(campoavviconpunto);

    if(isNaN(CheckNumNewAvvi))
    {
    alert("Attenzione !!! Il valore del campo Importo Base d'Asta deve essere un numero");
    campoavvi.focus();
    return false;
    }


    return true;


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 © 2026 vBulletin Solutions, Inc. All rights reserved.