0

Datum im Carbone.io Drucklayout richtig formatieren

Hallo zusammen,

ich versuche aktuell meine alten Drucklayouts alle zu dynamischen Layouts zu konvertieren.
Folgendes Problem bekomme ich aber einfach nicht in den Griff:

Urspungsdaten aus Datenbank:
 

Freitag 03.11.2023 17:00 bis 20:00
Samstag 04.11.2023 09:00 bis 12:00

 

Code:

d.Veranstaltungstage[i, Art=Aufbau].Datum:formatD(' dddd DD.MM.YYYY ') } {d.Veranstaltungstage[i, Art=Aufbau].Beginn} bis {d.Veranstaltungstage[i, Art=Aufbau].Ende}
{d.Veranstaltungstage[i+1, Art=Aufbau]].Datum:formatD(' dddd DD.MM.YYYY ')} {d.Veranstaltungstage[i+1, Art=Aufbau].Beginn} bis {d.Veranstaltungstage[i+1, Art=Aufbau].Ende}

 

Ergebnis:

Saturday 11.03.2023 17:00 bis 20:00
Tuesday 11.04.2023 09:00 bis 12:00

 

Das Problem:
Der Tag wird in englisch geschrieben und das Datum wird in MM.DD.YYYY ausgegeben. Der Monat steht also zuerst.
Wie kann ich das ändern? Die Informationen in der Ninox und Carbone.io Dokumentation haben mich bis jetzt nicht zum Ziel geführt.

https://docs.ninox.com/en/print/print-customization/formatters/date-manipulation

Wie kann ich die carbone Option "lang" mit übergeben?

Ohne den Codeteil

:formatD(' dddd DD.MM.YYYY '

 

ist das Ergebnis in Ordnung aber ohne Wochentag Angabe:
 

03.11.2023 17:00 bis 20:00
04.11.2023 09:00 bis 12:00

 

Viele Grüße

5 Antworten

null
    • UweG
    • vor 8 Monaten
    • Gemeldet - anzeigen

    Hallo

    Mit dem dym. Print kann man aus Ninox heraus keinen JSON-Body erstellen, der ausser den Printvariablen auch 'Options' enthält.
    Das funktioniert nur, wenn man direkt (eigenen Carbone Account) mit carbone arbeitet.
    Hier musst du probieren, dir im selbst erstellten JSON-Body die zu druckende Variable so zu bauen, wie sie in Carbone aussehen soll.

    • Ninox-Professional
    • planoxpro
    • vor 8 Monaten
    • Gemeldet - anzeigen

    Ich würde mal versuchen, das Datum schon in Ninox per format() auf die gewünschte Weise in ein (verstecktes) Textfeld zu schreiben (Trigger oder fx) und dieses im Template zu adressieren.

      • Michi.1
      • vor 8 Monaten
      • Gemeldet - anzeigen

      mit Carbone Account:

      let Datum := format(Testdatum, "dddd DD.MM.YYYY ");
      let myTemplate := 'carbone template id';
      let vBody := {
              data: {
                  vzeit: Datum
              },
              convertTo: "pdf",
              reportName: Ort + ".pdf"
          };
      body_Daten := text(vBody);
      

      body_Daten: {"data":{"vzeit":"Freitag 15.09.2023 "},"convertTo":"pdf","reportName":".pdf"}

    • UweG
    • vor 8 Monaten
    • Gemeldet - anzeigen

    Am besten ist es, wenn man statt des vereinfachten dyn. Prints (Carbone-Aeiablen = Ninox-Feldnamen) von Anfang an einen selbst definierten JSON-Body erstellt.
    Dies kann man in dem entsprechenden Drucktemplate mit einem Schiebeschalter einstellen und im zuhehörigen Scriptfeld so erstellen, wie er in Carbone dargestellt werden soll.
    Bsp inkl.  einer verknüpften Tabelle:
    {
    vName : Name,
    vTbl : for i in VerkTabelle do
    {
    vPosition : i.Position,
    vDatum : i.format(Datum, "DD.MM.YYYY"),
    vZahl : i.format(Zahl,"#,##,0.00")
    }
    end
    }

    Wen nman ein deutsches Zahlenformat benötigt im Ausdruck, sollte man die Formatierung im Zahlenfeld als '#.##0,00' vorgeben und im JSON-Body dieses als Text versenden:
    vZahl : i.text(Zahlenfeld)

    Das Erstellen eines individuellen JSON-Body ist auch manchmal notwendig, wenn der einfache dyn. Print immer einen Fehler erzeugt.
    Das kommt willkürlich bei manchen Tabellen vor und lässt sich nur mit einem selbst erstellten JSON-Body umgehen.

      • Ninox-Professional
      • planoxpro
      • vor 8 Monaten
      • Gemeldet - anzeigen

      Das ist die Profi-Lösung. 😉

Content aside

  • vor 8 MonatenZuletzt aktiv
  • 5Antworten
  • 55Ansichten
  • 4 Folge bereits