Antwort auf: Datagrid – auslesen

Startseite Foren Deutsches LiveCode-Forum Datagrid – auslesen Antwort auf: Datagrid – auslesen

#5082
Klaus Major
Administrator

    Zunächst einmal bitte generell im Deutschen auf das Apostroph im Plural verzichten:
    Ein ITEM, zwei ITEMS 😎

    Die Fehlermeldung besagt, daß der Inhalt eins dieser Felder offensichtlich KEINE Zahl ist!
    Bitt mal nachsehen, ob sich vielleicht ein CR oder TAB oder sonstws da eingschlichen hat.

    Ah, oder da ist ein KOMMA drin: 1,50!
    LC ist englisch und kennt daher nur den PUNKT als Dezimaltrenner: 1.50

    Ich habe mir für solche Situationen zwei kleine Funktionen geschreiben:

    function ohne_komma tZahl
      replace "," with "." in tZahl
      return tZahl
    end ohne_komma
    
    function mit_komma tZahl
      replace "." with "," in tZahl
      return tZahl
    end mit_komma

    Lege die ins Stackskript und nutze die eine für berechnungen, die andere für das Anzeigen.

    ...
    put item 7 of tArtikel into tpreis
    put tpreis & " €" into fld "preis"
    
    ## Zur Berechnung
    put fld "menge"  into wert1
    put fld "preis" into wert2
    put  ohne_komma(wert1) * ohne_komma(wert2) into ergebnis
    put mit_komma(ergebnis) into fld "gesamtpreis"
    ...

    Aber ich sehe, mit dem EURO Zeichen kann LC natürlich nciht rechnen, Punkt hin oder Komma her!
    Ändere die Reihenfolge in dem Skript, dann klappt das auch!
    Also entweder:

    ...
    put item 7 of tArtikel into tpreis
    put tpreis & " €" into fld "preis"
    
    ## Zur Berechnung
    put fld "menge"  into wert1
    
    ## diesen Wert OHNE Eurozeichen haben wir bereits in der Variablen tpreis
    ## also nimm das zur Berechnung
    ## put fld "preis" into wert2
    put  ohne_komma(wert1) * ohne_komma(tpreis) into ergebnis
    put mit_komma(ergebnis) into fld "gesamtpreis"
    ...

    Oder

    ...
    put item 7 of tArtikel into tpreis
    
    ## Zur Berechnung
    put fld "menge"  into wert1
    
    ## diesen Wert OHNE Eurozeichen haben wir bereits in der Variablen tpreis
    ## also nimm das zur Berechnung
    ## put fld "preis" into wert2
    put  ohne_komma(wert1) * ohne_komma(tpreis) into ergebnis
    put mit_komma(ergebnis) into fld "gesamtpreis"
    
    ## Jetzt erst das EURO Zeichen hinzufügen:
    put tpreis & " €" into fld "preis"
    ...

    Gruß

    Klaus