0

Tourplan Ausgabe

Hallo zusammen, ich versuche die ganze Zeit eine Tourplan Ausgabe zu realisieren. Ich habe eine Tabelle Bandprofil dort ist eine Untertabelle Tourplan. Tourplan ist wiederum mit der Tabelle Verträge verbunden. Sobald ein Vertrag erstellt wird wird ein Eintrag im Tourplan gesetzt. Jetzt möchte ich wenn man auf das Bandprofil geht ein von bis Feld und dann soll er eine Filterung machen und diese sollen dann im Druckmodul ausgegeben werden. Im Druckmodul kann ich händich im Datumsfeld eine Filterung machen ist aber sehr umständlich. Meine andere Idee wäre eine Zwischentabelle zu machen, die Daten aus dem Tourplan filtern von bis und in die Untertabelle zu kopieren mit Variablen. Funktioniert das ähnlich wie bei deinem beispiel Leo mit der Auswertung von Einahmen? Leider reicht der Tourplan im Ical nicht aus.

23 Antworten

null
    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Da gibt es zuerst mehr Fragen als Antworten.
    1. Wie viele Bands werden verwaltet?
    2. Wie sehen die Verträge aus? ist es pro Vertrag nur ein Datum oder mehrere, oder sogar "von bis" Datumsintervalle?
    3. Wie ist die Tabelle Tourplan organisiert? Ist jeder Datensatz als 1 Tag oder auch als Intervall angelegt.

    Falls jeder Datensatz einen Tag beinhaltet, habe ich eine kleine Beispieldatenbank erstellt.

    Leo
    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen
    https://www.dropbox.com/s/11q84vjaluz83gb/BAND.ninox?dl=0

    Hier ist ein Link (über Formatierung geht es nicht)
    • Ninox Premiumpartner
    • Bastian_Vorholt
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Hey Leo vielen Dank das reicht mir schon. Brauch es für mehrere Bands zu verwalten, aber weiß wie ich das dann abändern muss das Script. Hatte auch den Ansatz ungefähr so wie du es gemacht hast aber mit dem Leeren des Datensatzes bin ich nicht drauf gekommen. Darum super Danke nochmal. Gruß Basti
    • Ninox Premiumpartner
    • Bastian_Vorholt
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Also ich denke es reicht mir erstmal, die Bands haben zwar 8 oder 9 Auftritte am Tag, sind Karnevals Bands darum. Aber leider kann Ninox die noch nicht zusammenfassen zu einem Tag im Druckmodul nur über die Gruppierung und da muss man jedesmal die Gruppen anklicken das kann bei 200 Terminen nervig werden.
    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Also, meiner Meinung nach, kann Ninox schon so ziemlich alles.
    Was meinst du mit "Druckmodul"?
    Wenn es um Drucklayout geht (PDF), kann man dort zwar nur die Haupttabelle darstellen, aber die Einträge der Untertabelle (auch mehreren Untertabellen) kann man mit "concat" Funktion wunderbar darstellen.
    • Ninox Premiumpartner
    • Bastian_Vorholt
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Hallo Leo, also ich hätte gerne als Ausgabe die Tage zusammengefasst. Siehe beispiel in der Dropbox.

    https://www.dropbox.com/s/p7a3d1zwvdfisop/Bildschirmfoto%202018-01-07%20um%2008.56.43.png?dl=0

    Mit dem Concat habe ich noch nicht gearbeitet klingt aber interessant.
    • Ninox Premiumpartner
    • Bastian_Vorholt
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Wenn es nicht geht ist es so auch erstmal in Ordnung.
    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Das geht schon. Nur mit ein Paar Einschränkungen. Ninox kann leider die Tabellen nur nach sichtbaren Spalten sortieren. Um die Zeilen richtig zu sortieren muss ich eine Spalte "Nr" zusätzlich einführen, und die muss sichtbar bleiben.
    Wenn du auf Drucken gehst, erscheinen deine Termine so, wie in deinem Beispiel.
    Hier die Datenbank:

    https://www.dropbox.com/s/d5wcrqd9st0f513/BAND2.ninox?dl=0

    Der Trick hier: zuerst einen Array aus Datums ohne Duplikate erstellen
    ---
    split(concat(unique((select Statistik).TOURPLAN.Datum)), ",")
    ---
    und dann in der Schleife Zusatzpsalten erstellen und Datums generieren.
    Dann muss man die Interne Sortierungsspale anlegen:
    ---
    let NN := Datum + TOURPLAN.Uhrzeit;
    cnt((select Statistik)[Datum + TOURPLAN.Uhrzeit < NN]) + 1
    ---
    und nach diese Spalte zu sortieren. Und am Ende noch die "Uhrzeit" so festlegen:
    ---
    if TOURPLAN = null then
    format(Datum, "dddd, DD. MMMM YYYY")
    else
    format(TOURPLAN.Uhrzeit, "hh:mm")
    end

    Ich hoffe, du kannst mir folgen

    Grüße
    Leo
    • Ninox Premiumpartner
    • Bastian_Vorholt
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Hey Leo,

    vielen Dank für die Umsetzung. Leider wird die Uhrzeit nicht richtig übernommen in der Statistik Tabelle. Es steht 5 Uhr da er hat wohl nur die Amerikanische Uhrzeit übernommen, da du ja das script

    if TOURPLAN = null then
    format(Datum, “dddd, DD. MMMM YYYY”)
    else
    format(TOURPLAN.Uhrzeit, “hh:mm”)
    end

    angewandt hast. Leider ist die richtige Uhrzeit auch 16:00 Uhr und nicht 5:00 Uhr wie kommt das durch den cnt vermutlich oder?

    LG Basti
    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Das ist Formatierungssache, habe gar nicht nachgeschaut. Versuch mit "HH:mm"
    • Ninox Premiumpartner
    • Bastian_Vorholt
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Ok jetzt stimmt die Formatierung der Uhrzeit. Leider ist die Uhrzeit in der Statistik eine Stunde weiter als in der Tourplan Tabelle.
    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Sehr interessant. Werde bei Entwickler fragen.
    Versuch mal so:
    ----
    if TOURPLAN = null then
    format(Datum, "dddd, DD. MMMM YYYY")
    else
    text(TOURPLAN.Uhrzeit)
    end
    ---
    • Ninox Premiumpartner
    • Bastian_Vorholt
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Ja so hatte ich es auch gerade versucht, scheint ein fehler in Ninox zu sein, mit der Zeit formatierung. Hab mal testweise ein Uhrzeitfeld Formatiert und da macht er das auch.
    • Ninox Premiumpartner
    • Bastian_Vorholt
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Wofür mache ich eigentlich dieses komma am ende.

    split(concat(unique((select Statistik).TOURPLAN.Datum)), “,”)

    Will den Syntax ja verstehen.
    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Der Befehl "split" hat einen Syntax split(text, "Trennzeichen") und wandelt den Text in einen Array.
    split("Hello World", " ") => ["Hello", "World"].
    Mit concat erzeugst du einen Text, kommagetrennt.
    • Ninox Premiumpartner
    • Bastian_Vorholt
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Ok das hab ich jetzt verstanden. Jetzt versuche ich den Termin in den Kalender zu schreiben so das er im Ninox Kalender erscheint. Leider weiß ich nicht was ich anstelle von calendar eintragen muss.

    createCalendarEvent(calendar, title, from, to)
    Habe es auch noch etwas erweitert deine Umsetzung das ich eine Start Uhrzeit und Enduhrzeit gesetzt habe. Wie gesagt jetzt scheiter ich an dem Syntax den Termin in den Kalender zu tragen.

    Oder wäre es besser das ganze so umzustruckturieren das man in der Tourplan Tabelle direkt ein Terminfeld nimmt.
    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen
    So weit ich weiß, sind die ganzen createCalendarEvent und createCalendarReminder
    nur dafür da, die Einträge in den Mac/iPhone/iPad Kalender zu schreiben.
    Für Ninox Kalender muss du die Einstellungen von Datums- und Terminfelder nehmen (im Kalender anzeigen).
    • Ninox Premiumpartner
    • Bastian_Vorholt
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Hey Leo, ich komme irgendwie nicht weiter. Ich versuche deine Vorlage so umzubauen das ich das ganze mit dem Terminfeld realisieren kann und nicht mit Datum und Uhrzeit Feld. Hab das ganze versucht auch mit einem Trigger zu machen, das nachdem das Terminfeld gesetzt wird die Felder Datum Uhrzeit Start und Uhrzeit Ende Automatisch gefüllt werden. Leider erstellt er dann immer, duplikate. Bei dem Terminfeld habe ich die Möglichkeit die Termine in den Ninox Kalender zu tragen. Wenn ich die Felder von Hand ausfülle funktioniert es auch aber per trigger kommen immer Duplikate.
    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Wenn die Termine im Kalender doppelt erscheinen, kann es nur bedeuten das du die Eigenschaft "Im Kalender anzeigen" in beiden Felder (Termin und Datum/Uhrzeit) auf "Ja" gesetzt hast.
    • Ninox Premiumpartner
    • Bastian_Vorholt
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Ne nicht im Kalender in der Tabelle Statistik erzeugt er zweimal die selbe Tagesbeschriftung.
    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Wenn du Die Termine statt Datum und Uhrzeit einfügen möchtest, habe ich jetzt die Datenbank umgebastelt.

    https://www.dropbox.com/s/pbky818ag62m55o/BAND3.ninox?dl=0

    Leo
    • Ninox Premiumpartner
    • Bastian_Vorholt
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Hey Leo vielen dank, hatte zwischenzeitlich auch mal kurz den gedanken mit substring, aber gut zu wissen das es damit wirklich geht. Mit dem trigger hatte ich wie gesagt schon so gemacht. Also nochmal vielen lieben dank.
    • Ninox Premiumpartner
    • Bastian_Vorholt
    • vor 6 Jahren
    • Gemeldet - anzeigen
    Hallo Leo, hab nochmal was rumprobiert, das Problem mit den Uhrzeiten hab ich rausgefunden. Wenn du eine Uhrzeit formatierst musst du im Script das Datum mit übergeben dann klappt es.

    Also in dem Tourplanbeispiel sollte es so aussehen:

    if TOURPLAN = null then
    format(Datum, "dddd, DD. MMMM YYYY")
    else
    format(TOURPLAN.Datum + TOURPLAN.Uhrzeit, "HH:mm")
    end

Content aside

  • vor 6 JahrenZuletzt aktiv
  • 23Antworten
  • 7990Ansichten