Zusatzfeld für Rechnungsempfänger

Hier können die JVerein-Frischlinge ihre Fragen stellen.

Moderator: heiner

Antworten
Benutzeravatar
m.j.w
Beiträge: 18
Registriert: Mittwoch 28. Juni 2017, 01:43
Verein: TC Oranienburg
Mitglieder: 130
JVerein-Version: 2.8.17
Betriebssystem: Win 10

Zusatzfeld für Rechnungsempfänger

Beitrag von m.j.w »

Hallo wieder einmal,

ich bin immer noch bei meiner Rechnungserstellung und deren Optimierung. Hier erst einmal der Sachverhalt.
Wir haben nicht nur Einzelmitglieder im Verein, wie haben Geschwisterkinder oder Eltern mit Kindern die alle unterschiedliche Beitragsermäßigungen bekommen. Dazu kommt, dass sowohl bei Geschwisterkindern als auch Kinder als Einzelmitglieder keiner der Zahler ist sondern ein erziehungsberechtigter Elternteil.
Ich möchte nicht unzählige zusätzliche Beitragsgruppen für Nichtzahler anlegen weil mir das dann zu unübersichtlich wird.
Meine Vorstellung wäre ich lege ein Zusatzfeld für den Rechnungsempfänger an und trage diesen Dann bei den minderjährigen Mitgliedern ein. Dieses Feld könnte ich dann im Formular verwenden. Nun aber das Problem ich natürlich nicht bei jedem Mitglied diesen Feld füllen, sonder nur da wo der Rechnungsempfänger_Name vom Mitgliedsnamen abweicht.
Meine Idee wäre das in einem Lesefeld zu behandeln, ist Rechnungsempfänger leer nimm Mitgliedsname.

Da meine Programmierkenntnisse sehr überschaubar sind meine Frage, hätte jemand einen solchen Codeschnipsel, oder hat jemand eine Webseite wo man so etwas alles findet. Ich habe schon nach Beanshellscripten gesucht aber leider nichts passendes gefunden.

Ich würde mich sehr über Hilfe von Euch freuen.

mfg Micha
Benutzeravatar
m.j.w
Beiträge: 18
Registriert: Mittwoch 28. Juni 2017, 01:43
Verein: TC Oranienburg
Mitglieder: 130
JVerein-Version: 2.8.17
Betriebssystem: Win 10

Re: Zusatzfeld für Rechnungsempfänger

Beitrag von m.j.w »

Hi @all,

ich versuche natürlich auch selbst mit meinem Problem voranzukommen, daher habe ich mal ein Beispielscript etwas abgewandelt auf meinen Fall ausprobiert. Leider bekomme ich immer Fehlermeldungen, dass das Script nicht gespeichert werden kann.
Hier ist mal mein ScriptCode.

Code: Alles auswählen

String r = "";
if( rechnung_empfaenger_name != null )
  r = rechnung_empfaenger_name;
else 
  r = mitglied_vornamename;
return r;


als Fehlermeldung bekomme Ich.

Code: Alles auswählen

Skript-Fehler:
Sourced file: inline evaluation of: ``String r = "";  if( rechnung_empfaenger_name != null )    r = rechnung_empfaenge . . . '' : Void assignment.
Meine Suchmaschine hat mir leider nichts geliefert, womit ich etwas anfangen konnte.

wäre super, wenn mir jemand helfen könnte.

Danke vielmals
Danzelot
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: Zusatzfeld für Rechnungsempfänger

Beitrag von Danzelot »

Hallo Micha,

ich gehe davon aus, dass du das Feld rechnung_empfaenger_name über die Felddefinitionen angelegt hast.
Du kannst in den Lesefeldern auf die Felddefinitionen zugreifen, allerdings haben die Zusatzfelder einen anderen Namen - in deinem Fall mitglied_zusatzfeld_rechnung_empfaenger_name.
Im Dialog Lesefelder kannst du dir mit F6 die zur Verfügung stehenden Variablen anzeigen lassen und kopieren.

Dieser Code funktioniert:

Code: Alles auswählen

String r = "";
if( mitglied_zusatzfeld_rechnung_empfaenger_name!= null )
  r = mitglied_zusatzfeld_rechnung_empfaenger_name;
else 
  r = mitglied_vornamename;
return r;
Gruß Danzelot
Benutzeravatar
m.j.w
Beiträge: 18
Registriert: Mittwoch 28. Juni 2017, 01:43
Verein: TC Oranienburg
Mitglieder: 130
JVerein-Version: 2.8.17
Betriebssystem: Win 10

Re: Zusatzfeld für Rechnungsempfänger

Beitrag von m.j.w »

Hallo Danzelot,

ich bin Dir unendlich dankbar, Du hattest vollkommen Recht. Ich hatte den Rechnungsempfänger als Zusatzfeld angelegt.
Nun muss ich leider zugeben, dass ich in der Doku auch schon gelesen hatte wie die Variablen für Zusatzfelder aussehen müssen, wenn man sie verwenden möchte. Ich bitte vielmals um Entschuldigung für diesen Anfängerfehler.
Der Code funktioniert und ich bin unendlich glücklich, dass ich mein Formular nun so verwenden kann, wie ich es mir vorgestellt hatte.

Der <Variablen anzeigen (F6)> Button ist mir auch schon aufgefallen, den hatte ich auch schon ausprobiert, da bekomme ich allerdings immer eine Fehlermeldung "Fehler beim Anzeigen der Variablen." Da kann man doch wohl nichts falsch machen, oder?

Nochmals vielen, vielen Dank an Dich Danzelot
:D
Gruß Micha
Benutzeravatar
m.j.w
Beiträge: 18
Registriert: Mittwoch 28. Juni 2017, 01:43
Verein: TC Oranienburg
Mitglieder: 130
JVerein-Version: 2.8.17
Betriebssystem: Win 10

Re: Zusatzfeld für Rechnungsempfänger

Beitrag von m.j.w »

Hallo Danzelot, Hallo Rest der Welt,

Leider war meine Freude doch etwas verfrüht, das Script hat dann leider doch nur in wenigen Fällen funktioniert. In diesem Fall habe ich aber erstens selbst herausgefunden worin das Problem liegt bzw. lag und zweitens habe ich da Script so abgeändert, dass es nun richtig funktioniert.

Leider ist die Erklärung doch sehr umfangreich, hoffe es langweilt niemanden.

Der Effekt war der, dass der Rechnungsempfänger jetzt leer blieb bei Mitgliedern , wo kein Rechnungsempfänger in meinem Zusatzfeld eingetragen war.
Gleiches galt für mein zweites Lesefeld, dass mein Zusatzfeld für Name des Ehegatten prüfen sollte ob da was drin steht. Wenn ja sollte die folgende Ausgabe kommen.

Code: Alles auswählen

e = mitglied_vornamename + " und " + mitglied_zusatzfeld_ehegatte_lebenspartner_name;
Leider kam hier dann als Augabe bei Mitgliedern ohne Ehegatten im Verein z.B. "Hans Mustermann und "

Ursache:
Es gibt in der Datenbanktabelle "ZUSATZFELDER" zwei Zustände die zu einem Mitgliederdatensatz möglich sind.
1.Fall: Es gibt in dieser Tabelle für ein bestimmtes Zusatzfeld keine Zeile zu einem Mitgliederdatensatz. Das ist dann der Fall wenn im Programm die Daten eines Mitgliedes nach Anlegen eines neuen Zusatzfeldes noch nicht wieder gespeichert wurden.
In diesen Fall funktioniert auch die Prüfung im Script.

Code: Alles auswählen

mitglied_zusatzfeld_rechnung_empfaenger_name != null
2.Fall: Es gibt bereits eine Zeile bei einem Mitgleider-DS für ein Zusatzfeld, allerdings ist das entsprechende Datenfeld für den anzuzeigenden Text leer, weil es keine abweichenden Rechnungsempfänger gibt.
In diesem Fall schlägt die Prüfung nun fehl.

Lösung:
Die Prüfung muss sowohl auf NULL als auch auf ein leeres Datenfeld erfolgen.

Code: Alles auswählen

String r = "";
if( mitglied_zusatzfeld_rechnung_empfaenger_name != null && !mitglied_zusatzfeld_rechnung_empfaenger_name.equals( "" ))
  r = mitglied_zusatzfeld_rechnung_empfaenger_name;
else 
  r = mitglied_vornamename;
return r;

War für mich als Nichtprogrammierer ne ordentliche Sucherei, aber toll, wenn man es dann doch hinbekommen hat.

Gruß @ all
Antworten