Inaktiv Darstellungsbedingungen der Zahlungen

Hilfe2015

Aktives Mitglied
17. Juni 2015
17
1
Hallo,

ich brauch mal eure Hilfe, ich möchte neben den Bisherigen Zahlungen die Lieferadresse haben. nur wird mir wenn mehrere Zahlungen getätigt wird auch die Lieferadresse mehrfach angezeigt.
Habe JTL angeschrieben aber da kam nur die Antwort:

"Sie können über eine selbstdefinierte Variable die Positionen der Zahlungen hochzählen lassen und mit Darstellungsbed. über 'cond(xxx=x, true,false)'
die Anzeige nur auf Positionen = 1 beschränken."

Habt Ihr eine Ahnung wie ich das anstelle ich steh auf dem Schlauch😵
 

Anhänge

  • Lieferadresse.JPG
    Lieferadresse.JPG
    47 KB · Aufrufe: 39

gutberle

Sehr aktives Mitglied
29. März 2011
1.295
407
Jeder Text in Deiner Vorlage ist ja entweder eine eigene Zeile oder sogar eine Spalte innerhalb einer Zeile in der Definition der Vorlage selbst. Und jedes dieser Zeilen- oder Spaltenelemente hat eine Darstellungsbedingung, die Du rechts in den Eigenschaften des jeweiligen Elements findest.

Diese Darstellungsbedingung kann entweder True" oder False sein, aber welchen Wert sie annimmt, kann man auch mit einer Formel festlegen, z.B. indem man prüft, ob es hier um die erste Zahlung handelt und nur dann den Wert True setzt. DAs ist das, was JTL mit dem Cond(Bedingung,AktionWennWahr,AktionWennFalsch) sagen will. Cond() steht für Conditional und bedeutet, dass hier in Abhängigkeit von einer Bedingung entweder der eine oder der andere Wert zurückgeliefert wird, also zum Beispiel "True" bei Wahr und "False" bei Unwahr.

Alles, was Du jetzt machen mußt, ist in der Darstellungsbedingung der Lieferadresse eine Formel einzugeben, die dann und nur dann "Wahr" zurückliefert, wenn es sich um die ersten Zahlung handelt. JTL schlägt hierfür eine selbstdefinierte Variable vor, davon kann ich nur abraten, weil die sehr schwer zu handhaben sind! Was aber alternativ geht ist folgendes: Der Befehl Count() zählt einfach pro Auftreten von irgendwas um 1 hoch und weil es keine direkte Variable DieWieVielteZahlungIstDasHier gibt, benutzen wir einfach den Zahlungsbetrag für unsere Zählung - und zwar so...
Code:
Cond(Count(Zahlungen.Betrag, false)=1,True,False)

Das sieht erst mal so aus, als würde hier die Summe der Zahlungsbeträge zurückgeliefert werden, aber der Befehl heißt Count() und nicht Sum() - den gibt es aber auch. Was hier also passiert ist, dass für jede gefundene Zahlung um 1 erhöht wird und in der Cond-Bedingung geprüft wird, ob es sich um die erste Zahlung handelt. Nur dann wird True zurückgeliefert und die Lieferadresse, in deren Darstellungsbedingung Du diese Formel ja abgelegt hast, ausgegeben.
 
  • Gefällt mir
Reaktionen: Hilfe2015 und Indy1

Hilfe2015

Aktives Mitglied
17. Juni 2015
17
1
Vielen Dank für deine Antwort hat mir sehr geholfen, nur sind jetzt die Zahlungen unter die Lieferadresse gerutscht, wie bekomme ich es hin das die anderen Zahlungen unter die erste und neben der Lieferadresse kommt?
Vielen dank im vorraus 🙂
 

Anhänge

  • lieferadresse2.JPG
    lieferadresse2.JPG
    18,5 KB · Aufrufe: 28

gutberle

Sehr aktives Mitglied
29. März 2011
1.295
407
Ok, klar, das ist tatsächlich eine logische Konsequenz, wenn die Lieferadresse eine Spalte in der Zeile ist. Dann rutscht alles nach links, weil die Spalte ja nicht angezeigt, de facto also echt "ausgeblendet" wird.

Was Du also tatsächlich willst, ist, dass die Spalte der Lieferadresse zwar angezeigt wird, aber der Inhalt ausgeblendet wird. - Du ahnst es schon, das ist nur eine Variante der Lösung von oben und wird auch mit Cond() gemacht. Dazu packst Du statt "True" in den AktionWennWahr Teil der Cond() Anweisung einfach die Lieferadresse. Ich kann nicht exakt vorhersagen, wie Du Deine Lieferadresse in der Spalte angibst, aber prototypisch würdest Du den Inhalt der Lieferadresse wie folgt ändern...
Code:
Cond(Count(Zahlungen.Betrag, False)=1,<HierInhaltDerSpalteLieferadresseReinkopieren>,False)

Damit sollte es dann klappen... 🙂

Korrektur: Oben ist mir in der Eile für den AktionWennUnwahr Teil ein "False" statt eines einfachen "" für "keinen Text ausgeben" durchgerutscht. So isses richtig...
Code:
Cond(Count(Zahlungen.Betrag, False)=1,<HierInhaltDerSpalteLieferadresseReinkopieren>,"")
 
Zuletzt bearbeitet:

gutberle

Sehr aktives Mitglied
29. März 2011
1.295
407
... und dass die Darstellungsbedingung der Lieferanschrift dann wieder auf TRUE gestellt werden muss, ist klar, oder?
 

Hilfe2015

Aktives Mitglied
17. Juni 2015
17
1
Vielen vielen dank 🙂
So sieht es schon mal sehr gut aus ich hätte das nie soweit geschafft ohne dich🙂🙂🙂.
so jetzt das letzte Problem (für mich) wie bekomme ich das nun ohne Unterbrechung hin?😵
Vieln Dank für deine Antwort
 

Anhänge

  • Lieferadresse3.JPG
    Lieferadresse3.JPG
    17,3 KB · Aufrufe: 21

gutberle

Sehr aktives Mitglied
29. März 2011
1.295
407
Das geht nicht, wenn Du die Lieferadresse und die Zahlungen in einer einzigen Tabelle behalten willst, denn die Lieferadresse in der Spalte links ist ja zu lang für die Breite der Spalte und wird deshalb automatisch umgebrochen. Damit definiert sie aber automatisch die Höhe der Spalte mit der Zahlungsinfo rechts, zumindest für diese aktuelle Zeile.

Das Einzige, was Du hier tun kannst, ist die beiden Informationen zu trennen, die Lieferadresse also "woanders", sprich außerhalb dieser Tabelle auszugeben. Wenn es sich um einen einzigen Kunden handelt und die Adresse für alle zu listenden Zahlungen gleich ist, wovon ich mal ausgehe, dann sollte es ja möglich sein, die Adresse anderswo zu platzieren ohne die Zuordnung zu verlieren, oder?
 

Ähnliche Themen