0

Drucken von Variablen

Hallo,

ich habe in meiner Anwendung eine Variable gebildet: AN.

Im druck möchte ich nun den Inhalt der Variable bewerten und entsprechend reagiern

If AN then Drucke Angebot else Drucke Rechnung.

Wie kann ich die Variable auslesen?

4 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Hallo, man kann auch im Drucklayout if-Abfragen vornehmen. Wenn man in ein Druckfeld hineinklickt, dann erscheint an der rechten, oberen Feldecke ein blaues Quadrat mit Zahnradsymbol. Klickt man jetzt auf dieses Zahnrad, dann öffnet sich der gewohnte Editor zur Eingabe einer Formel. Will man bspw. anhand der Variable die Überschrift ändern und es gibt nur zwei Optionen, "A" für Angebot, "R" für Rechnung, dann ginge es so:
    ------------------------------
    if AN = "A" then
       "Angebot"
    else
       if AN = "R" then
         "Rechnung"
       else
         "Variabe nicht gesetzt!"
       end
    end
    ------------------------------
    Bei mehr als zwei Möglichkeiten kann man zur Abfrage auch switch nutzen:
    ------------------------------
    let XY := AN
    switch case XY do
       case "A": "Angebot"
       case "R": "Rechnung"
       case "T": "Trallala"
       [usw.]
    end
    ------------------------------
    Wie immer gilt: Nach bestem Wissen und Gewissen, aber ohne Gewähr. ;)

    • info.9
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Klappt noch nicht ganz.

    Die Variable wird in der Anwendung gebildet wie hier:

    var BelegArt := "AN";
    printRecord(this.Nr, "Beleg")

    In der Vorlage kommt aber immer : "Tabellenspalte BelegArt nicht gefunden" wenn ich die Variable wie oben in einer if-Bedingung anspreche-

    Was mache ich falsch bei der Übergabe der Variablen von der Anwendung in die Druckvorlage?

    • Ninox-Professional
    • planoxpro
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Hm, ich bin mir nicht sicher, ob ich das Problem richtig verstehe, aber Variablen haben ja nur eine temporäre Funktion und können immer nur im jeweiligen Script genutzt werden. Danach werden sie "vergessen". Du müsstest den Wert also bleibend in ein Datenfeld schreiben, um ihn später im Drucklayout abfragen zu können. Entweder manuell (Textfeld) oder über ein Auswahlfeld. Nehmen wir beispielhaft mal letzteres: Erstelle in deiner Ausgangstabelle, "Dokumente", "Rechnungen" oder wie immer sie heißen mag, ein Feld namens "Belegart" vom Typ "Auswahl". Dort trägst du als Werte ein:

    -------------------

    Angebot
    Rechnung

    -------------------

    Nun kannst du zu jedem Datensatz auswählen, um was es sich handelt, "Angebot" oder "Rechnung". Und dann im Drucklayout abfragen. Was allerdings gar nicht mehr nötig wäre, denn die Begriffe stünden ja nun schon als Text zur Verfügung. Das heißt, man könnte im Drucklayout jetzt direkt den Wert des Feldes "Belegart" auslesen:

    ------------------

    text(Belegart)

    ------------------

    Als Ergebnis stünde da halt "Angebot" oder "Rechnung", je nachdem, was du im Datenatz ausgewählt hattest.

    Oder habe ich das Problem tatsächlich ganz falsch verstanden?

    • info.9
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Vielen Dank. Du hast mir sehr geholfen. Ich bin davon ausgegangen dass es globale Variablen gibt oder eine Möglichkeit die Variablen mit dem Funktionsaufruf printrecord mit zu übergeben.

Content aside

  • vor 6 JahrenZuletzt aktiv
  • 4Antworten
  • 2766Ansichten