Startseite › Foren › Deutsches LiveCode-Forum › Haushaltsbuch
Schlagwörter: addieren
- Dieses Thema hat 13 Antworten und 3 Teilnehmer, und wurde zuletzt aktualisiert vor 4 Jahren, 7 Monaten von Oliver122.
-
AutorBeiträge
-
-
März 1, 2020 um 14:39 Uhr #19301
Hallo zusammen,
kann mir jemand sagen warum folgendes nicht funktioniert:
on returnInField
if “leer” is in the name of the target then
put target after gKosten
end if
put gKosten into fld “display”
set the itemDelimiter to “+”
put the value of gKosten into fld “display”end returnInField
Es gibt mehrere Felder “leer” die addiert werden soll und die Summe soll im Feld Display ausgegeben werden. Es kommt keine Fehlermeldung, er zeigt aber nur die einzelnen Eingaben an. Auch wenn ich aus put target: put (“target”&”+”) mache geht es nicht.
Ich habe es auch mit einer repeat with Schleife versucht. Nichts klappt. Entweder kommt keine Fehlermeldung oder er stört sich an die Zeile mit value.Ich hoffe ihr könnt mir helfen.
-
März 1, 2020 um 15:06 Uhr #19304
Hallo Oliver122,
mit dem target (Überprüfen oder wie das heißt) habe ich noch nicht probiert. Hast du zufällig das neue Buch, dann schaue mal auf Seite 244 nach. Vielleicht kannst du damit was anfangen? Da ist die “if-Zeile” etwas anders dargestellt.
Ich bin auch ein blutiger Anfänger von LiveCode.
Gruß GerryS -
März 1, 2020 um 15:21 Uhr #19306
Hi Gerry,
bitte packe Deine Skirpts in die CODE Tags bei der Eingabe:
1. Skript hier reinkopieren
2. Skript markieren
3. Auf CODE hier über dem Eingabefeld klicken, dann bleibt die Formatierung erhalten
und man kann das wesentlich besser lesen!OK, here we go:
1. Ist gKosten als GLOBAL oder LOKAL definiert?
2. Was genau steht in gKosten drin?
3. VALUE funktioniert nur mit einem “Ausdruck” wie value(“10 + 1”) -> 11
4. Daher Frage 2, siehe auch 5!
5. the target -> field “name des feldes” aber NICHT dessen Inhalt!
6. Du hast wirklich mehrere Objekte mit dem selben Namen -> leer?
Das schreit nach Ärger! 🙂
7. In dem Fall besser durchnumerieren (leer_1, leer_2 etc.),
dann kannst Du immer noch checken:... if the short name of the target begins with "leer" then ...
8. Dein “returninfield” Handler liegt im Kartenskript, richtig?
Gruß
Klaus
-
März 1, 2020 um 15:52 Uhr #19307
Hallo zusammen,
ich habe tagelang versucht und nichts klappte. Jetzt habe ich es gelöst. Es ist mein ersten eigenes Projekt.
Danke aber für eure Hilfe
Gelöst habe ich es so:
on returnInField
put 0 into gKosten
repeat with x = 1 to 24
if fld (“leer”&x)>0 then
add fld (“leer”&x)to gKosten
else
put 0&” €” into fld “display”
end if
put gKosten&” €” into fld “display”
if empty is in fld (“leer”&x) then
end if
end repeat
end returnInField -
März 1, 2020 um 15:55 Uhr #19308
Hallo an Klaus
Ja alle Eingabefelder heißen “leer” aber mit einer Nummer dahinter,
also “leer1”, “leer2″…. -
März 1, 2020 um 16:08 Uhr #19309
Hi Oliver,
ist das so schwer mit den CODE Tags?
Bitte sei doch nicht so geizig mit Leerzeichen, die erhöhen durchaus die Lesbarkeit! 🙂
Wozu soll diese IF Abfrage dienen? Die ist irgendwie nutzlos und ich würde sie auch anders schreiben:... if fld fld ("leer"& x) = EMPTY then ...
Fragen, Fragen, Fragen, aber ohne die kann ich keine vernünftige Hilfestellung geben!
Bis auf 6. ind 7. sind meine obigen Fragen immer noch offen.Gruß
Klaus
-
März 1, 2020 um 16:22 Uhr #19310
Hallo Klaus,
ja empty ist nutzlus. Ich hatte da nur was ausprobiert und dann wieder gelöscht, nur die Zeile vergessen. Aktuell ist das Skript jetzt so und funktioniert auch:
on dropdown
if “button” is in the target and “drop” is in the name of the target thenset the label of the target to the selection of the target
end if
end dropdown
on returnInField
put 0 into gKosten
repeat with x = 1 to 24
if fld (“leer”&x)>0 then
add fld (“leer”&x)to gKosten
else
put 0&” €” into fld “display”
end if
put gKosten&” €” into fld “display”
end repeat
end returnInField
Vor dem “leer” Feldern sind Dropdown Menüs, wo Kostenarten ausgesucht werden können.
-
März 1, 2020 um 16:25 Uhr #19312
gKosten ist nicht Global. Dort werden nur die einzelnen Werte zwischengespeichert und im Feld Summe, summiert ausgegeben.
-
März 1, 2020 um 16:35 Uhr #19318
CODE Tags? Kein Bock?
Ein Hauch Mitarbeit ist hier schon von Nöten…Aber was bitte ist “dropdown”? Das ist ja kein LC Befehl.
Wie und wann rufst Du das auf? Bei Deinen “Dropdown” Menübuttons?
Warum kein “on menupick” Handler? Der ist doch eingebaut bzw.
brauchen gar nicht geskriptet zu werden, da z.B. ein “Option Menü” Button
automatisch sein LABEL ändert, wenn der User ein Menuitem davon auswählt.
Kann es sein, daß Du es Dir etwas zu kompliziert machst? 🙂Hinweis:
on returnInField put 0 into gKosten repeat with x = 1 to 24 if fld ("leer" & x) > 0 then add fld ("leer" & x)to gKosten else put 0 && "€" into fld "display" end if put gKosten && "€" into fld "display" end repeat end returnInField
Effektiver ist es, am Ende nur EINMAL das Feld “display” zu füllen:
on returnInField put 0 into gKosten repeat with x = 1 to 24 if fld ("leer" & x) > 0 then add fld ("leer" & x) to gKosten end if end repeat ## Wenn alle Felder leer waren, steht in gKosten ja immer noch 0, ## daher reicht diese einmalige Zeile hier völlig aus! put gKosten &" €" into fld "display" end returnInField
Hinweis:
Doppeltes && fügt zwei Strings mit einem Leerzeichen dazwischen zusammen:
“eins” & “zwei” -> einszwei
“eins” && “zwei” -> eins zwei -
März 1, 2020 um 17:02 Uhr #19324
Hallo Klaus,
ich verstehe leider nicht ganz was dir an meinen Angaben fehlte.
Sorry liegt vermutlich an mir.Kann sein, dass es effektivere Wege gibt. Ich bin ja noch am Anfang.
on Dropdown wird aufgerufen, wenn ich auf den Knopf mit dem Dropdown Menü klicke. -
März 1, 2020 um 17:10 Uhr #19325
Erstelle doch einfach mal ein “Option Menü”, oder was Du hier benutzt hast, da kannst Du OHNE Skript direkt einen Eintrag wählen und der wird auch sofort angezeigt.
Daher verstehe ich z.B. den Sinn von Deinem “dropdown” Skript nicht.An Anworten warte ich noch auf:
2. Was genau steht in gKosten drin?
3. VALUE funktioniert nur mit einem “Ausdruck” wie value(“10 + 1”) -> 11
Hat sich er ja glücklicherweise erledigt.
8. Dein “returninfield” Handler liegt im Kartenskript, richtig?Und was genau funktioniert bei diesem Skript nicht?
on returnInField put 0 into gKosten repeat with x = 1 to 24 if fld ("leer" & x) > 0 then add fld ("leer" & x) to gKosten end if end repeat ## Wenn alle Felder leer waren, steht in gKosten ja immer noch 0, ## daher reicht diese einmalige Zeile hier völlig aus! put gKosten &" €" into fld "display" end returnInField
Das MUSS funktionieren! Hast Du es einmal ausprobiert?
-
März 1, 2020 um 17:53 Uhr #19326
Hi
das Option Menü probiere ich später mal
und zu 8 ja es ist im Kartenskriot.Die Sache funktioniert jetzt auch. Das hatte ich oben auch geschrieben.
Aber danke für deine Hilfe.
-
März 1, 2020 um 18:13 Uhr #19327
Hallo Oliver,
Die Sache funktioniert jetzt auch. Das hatte ich oben auch geschrieben.
oh, pardon, das habe ich wohl irgendwie übersehen.
Ich denke mal, das Problem lag bei dem “value”.Wünsche noch einen schönen Restsonntag!
Gruß
Klaus
-
März 1, 2020 um 18:37 Uhr #19328
Ja und danke nochmal.
value war auch das Problem, auch wenn ich noch nicht so echt verstehe warum.Aber das ist im Moment egal. Wenn ich den Befehl mal brauche, kann ich ja immer noch schauen.
Dir auch einen schönen Sonntag
-
-
AutorBeiträge
- Du musst angemeldet sein, um auf dieses Thema antworten zu können.