Aus 2 Zusatzfeldern ein Lesefeld errechnen?
Moderator: heiner
-
- Beiträge: 7
- Registriert: Mittwoch 12. September 2018, 07:10
- Mitglieder: 114
- JVerein-Version: 2.
- Betriebssystem: Windows
- Wohnort: Dresden
Aus 2 Zusatzfeldern ein Lesefeld errechnen?
Hallo
Wir sind ein Kleingärtnerverein im Dresdner Westen. Unser Kassierer arbeitet immer noch mit Excel-Tabellen. Dies wollen wir ändern. Jverein scheint mir da eine sehr gute Alternative. Habe Testweise Daten eingegeben, Abrechnungsäufe und allea funktioniert soweit.
Jetzt bin ich auf die Lesefelder gestoßen, wo ich mit Hilfe von Beanshell, zum Beispiel Namensketten, etc erzeugen kann.
Meine Idee war es jetzt den Wasserverbrauch zu errechnen, welchen ich mit Zählerstand a und b in zwei Zusatzfeldern eingebe. Leider kenne ich mich weder mit Beanshell / Java aus. Kann mir da jemand helfen?
Gruß, Andreas
Wir sind ein Kleingärtnerverein im Dresdner Westen. Unser Kassierer arbeitet immer noch mit Excel-Tabellen. Dies wollen wir ändern. Jverein scheint mir da eine sehr gute Alternative. Habe Testweise Daten eingegeben, Abrechnungsäufe und allea funktioniert soweit.
Jetzt bin ich auf die Lesefelder gestoßen, wo ich mit Hilfe von Beanshell, zum Beispiel Namensketten, etc erzeugen kann.
Meine Idee war es jetzt den Wasserverbrauch zu errechnen, welchen ich mit Zählerstand a und b in zwei Zusatzfeldern eingebe. Leider kenne ich mich weder mit Beanshell / Java aus. Kann mir da jemand helfen?
Gruß, Andreas
-
- Beiträge: 222
- Registriert: Samstag 15. September 2018, 23:32
- Verein: Osnabrücker Ruder-Verein
- Mitglieder: 400
- JVerein-Version: 2.8.22
- Betriebssystem: Win
Re: Aus 2 Zusatzfeldern ein Lesefeld errechnen?
Hallo Andreas,
Skript "Substrahiere" damit kann ich meine Mitgliederfelder auslesen und matehmatische Operationen durchführen.
Gruß
Markus
Skript "Substrahiere" damit kann ich meine Mitgliederfelder auslesen und matehmatische Operationen durchführen.
Code: Alles auswählen
long l = Long.parseLong(mitglied_id);
long m = Long.parseLong(mitglied_beitragsgruppe_id);
long substract = l - m;
return ("Summe = " + substract);
Markus
-
- Beiträge: 7
- Registriert: Mittwoch 12. September 2018, 07:10
- Mitglieder: 114
- JVerein-Version: 2.
- Betriebssystem: Windows
- Wohnort: Dresden
Re: Aus 2 Zusatzfeldern ein Lesefeld errechnen?
Hallo Markus,
Dein Code klappt soweit. Aber wenn ich meine Variablen eingebe kommt immer ein Fehler.
und als Ergebnis kommt.
Danke, Andreas
Dein Code klappt soweit. Aber wenn ich meine Variablen eingebe kommt immer ein Fehler.
Code: Alles auswählen
long l = Long.parseLong(mitglied_zusatzfeld_a_energie_1_neu);
long m = Long.parseLong(mitglied_zusatzfeld_b_energie_1_alt);
long substract = l - m;
return ("Summe = " + substract);
Hoffe Du kannst mir da auch weiterhelfen.Skript-Fehler:
Sourced file: inline evaluation of: ``long l = Long.parseLong(mitglied_zusatzfeld_a_energie_1_neu); long m = Long.par . . . '' : Typed variable declaration : Method Invocation Long.parseLong
Danke, Andreas
-
- Beiträge: 294
- Registriert: Freitag 30. Juli 2010, 21:29
- Verein: Musica Margaretha Reutti e.V.
- Mitglieder: 51
- JVerein-Version: 2.8.17
- Betriebssystem: Windows
- Wohnort: Ulm
Re: Aus 2 Zusatzfeldern ein Lesefeld errechnen?
Hallo Andreas,
ist eines der Felder leer? Dann kann der Wert nicht umgewandelt werden. Deshalb würde ich die Werte vorinitialisieren und beim Parsen die Fehler abfangen.
Gruß
Danzelot
ist eines der Felder leer? Dann kann der Wert nicht umgewandelt werden. Deshalb würde ich die Werte vorinitialisieren und beim Parsen die Fehler abfangen.
Code: Alles auswählen
long l = 0;
long m = 0;
try {
l = Long.parseLong(mitglied_zusatzfeld_a_energie_1_neu);
} catch (Exception e) {
}
try {
m = Long.parseLong(mitglied_zusatzfeld_b_energie_1_alt);
} catch (Exception e) {
}
long substract = l - m;
return ("Summe = " + substract);
Danzelot
-
- Beiträge: 222
- Registriert: Samstag 15. September 2018, 23:32
- Verein: Osnabrücker Ruder-Verein
- Mitglieder: 400
- JVerein-Version: 2.8.22
- Betriebssystem: Win
Re: Aus 2 Zusatzfeldern ein Lesefeld errechnen?
Welches Datenformat haben die Felder? Ich habe Text zu Long konvertiert.
-
- Beiträge: 7
- Registriert: Mittwoch 12. September 2018, 07:10
- Mitglieder: 114
- JVerein-Version: 2.
- Betriebssystem: Windows
- Wohnort: Dresden
Re: Aus 2 Zusatzfeldern ein Lesefeld errechnen?
Vielen Dank auch an Danzelot.
Habe jetzt schon einen meiner Fehler erkannt. Hatte um auch Kommastellen abzubilden die Felddefinition auf Währung gestellt. Dies funktionierte nicht. Aber mit Ganzzahlen schon. Da gibt es bestimmt auch noch einen Tipp das es mit Währungen funktioniert.
Vielen Dank, Andreas
Habe jetzt schon einen meiner Fehler erkannt. Hatte um auch Kommastellen abzubilden die Felddefinition auf Währung gestellt. Dies funktionierte nicht. Aber mit Ganzzahlen schon. Da gibt es bestimmt auch noch einen Tipp das es mit Währungen funktioniert.
Vielen Dank, Andreas
-
- Beiträge: 294
- Registriert: Freitag 30. Juli 2010, 21:29
- Verein: Musica Margaretha Reutti e.V.
- Mitglieder: 51
- JVerein-Version: 2.8.17
- Betriebssystem: Windows
- Wohnort: Ulm
Re: Aus 2 Zusatzfeldern ein Lesefeld errechnen?
Hallo Andreas,
für die Betragsfelder sieht der Code so aus:
Zuerst muss der Text aus den Feldern in eine Zahl umgewandelt werden, damit man damit rechnen kann. Am Ende die Zahl wieder für die Ausgabe formatieren.
Gruß
Danzelot
für die Betragsfelder sieht der Code so aus:
Code: Alles auswählen
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
// muss groß genug sein, um die Eingabefelder zu parsen
String pattern = "###,###,###.##";
BigDecimal d1 = BigDecimal.ZERO;
BigDecimal d2 = BigDecimal.ZERO;
// Zahlenformat definieren
DecimalFormatSymbols symbols = new DecimalFormatSymbols();
symbols.setGroupingSeparator('.');
symbols.setDecimalSeparator(',');
// Dezimalformat einrichten
DecimalFormat df = new DecimalFormat(pattern, symbols);
df.setMinimumFractionDigits(2);
df.setParseBigDecimal(true);
try {
d1 = (BigDecimal) df.parse(mitglied_zusatzfeld_betrag_1);
} catch (Exception e) {
}
try {
d2 = (BigDecimal) df.parse(mitglied_zusatzfeld_betrag_2);
} catch (Exception e) {
}
return "Diff: " + df.format(d2.subtract(d1));
Gruß
Danzelot
-
- Beiträge: 7
- Registriert: Mittwoch 12. September 2018, 07:10
- Mitglieder: 114
- JVerein-Version: 2.
- Betriebssystem: Windows
- Wohnort: Dresden
Re: Aus 2 Zusatzfeldern ein Lesefeld errechnen?
Hallo Danzelot,
ich glaub man merkt das ich absolut keine Ahnung von Java habe. Hast du auch noch einen Code wenn ich (d1-d2)+(d3-d4)=Summe rechnen will. Ich danke Dir für Deine Hilfe.
Gruß, Andreas
ich glaub man merkt das ich absolut keine Ahnung von Java habe. Hast du auch noch einen Code wenn ich (d1-d2)+(d3-d4)=Summe rechnen will. Ich danke Dir für Deine Hilfe.
Gruß, Andreas
-
- Beiträge: 294
- Registriert: Freitag 30. Juli 2010, 21:29
- Verein: Musica Margaretha Reutti e.V.
- Mitglieder: 51
- JVerein-Version: 2.8.17
- Betriebssystem: Windows
- Wohnort: Ulm
Re: Aus 2 Zusatzfeldern ein Lesefeld errechnen?
Hallo Andreas,
den Code musst Du um die Variablen d3 und d4 erweitern.
und dann die Felder auslesen und zuweisen
Das Ergebnis berechnet sich dann mit
Oder etwas übersichtlicher:
Gruß
Danzelot
den Code musst Du um die Variablen d3 und d4 erweitern.
Code: Alles auswählen
BigDecimal d3 = BigDecimal.ZERO;
BigDecimal d4 = BigDecimal.ZERO;
Code: Alles auswählen
try {
d3 = (BigDecimal) df.parse(mitglied_zusatzfeld_betrag_3);
} catch (Exception e) {
}
try {
d4 = (BigDecimal) df.parse(mitglied_zusatzfeld_betrag_4);
} catch (Exception e) {
}
Code: Alles auswählen
return "Diff: " + df.format(d1.subtract(d2).add(d3.subtract(d4)));
Code: Alles auswählen
BigDecimal diff1 = d1.subtract(d2);
BigDecimal diff2 = d3.subtract(d4);
BigDecimal sum = diff1.add(diff2);
return "Summe: " + df.format(sum);
Danzelot
-
- Beiträge: 7
- Registriert: Mittwoch 12. September 2018, 07:10
- Mitglieder: 114
- JVerein-Version: 2.
- Betriebssystem: Windows
- Wohnort: Dresden
Re: Aus 2 Zusatzfeldern ein Lesefeld errechnen?
Hallo Danzelot,
vielen lieben Dank. Jetzt funktioniert dies. Eins muss ich noch anmerken, es ist anscheinend bloß eine bestimmte Anzahl an Zeichen zugelassen und somit geht es nicht zu speichern. Habe dann die Kommentare rausgenommen und dann haben die Zeichen gereicht.
Danke, Andreas
vielen lieben Dank. Jetzt funktioniert dies. Eins muss ich noch anmerken, es ist anscheinend bloß eine bestimmte Anzahl an Zeichen zugelassen und somit geht es nicht zu speichern. Habe dann die Kommentare rausgenommen und dann haben die Zeichen gereicht.
Danke, Andreas