Tage zwischen Daten in Untertabelle
Hallo zusammen,
ich hab ein Start Reisedatum Start (mit Uhrzeit) und ein Reisedatum Ende (mit Uhrzeit).
Ich hätte gerne, dann wenn die beiden Daten ausgefüllt wurden, dass eine Untertabelle entsteht mit allen Tagen die eben zu dem Intervall gehören, aufgelistet werden.
Also 12.01.2021 - 14.01.2021
Dann entsteht eine Untertabelle:
12.01.2021
13.01.2021
14.01.2021
Kann man das irgendwie umsetzen?
Vielen Dank!
19 Antworten
-
Hallo, man könnte das bspw. mit einer Schaltfläche machen (Trigger ginge wahrscheinlich auch, wäre aber aufwändiger):
if Start and Ende then
let me := this;
let vDat := date(Start);
while vDat <= Ende do
let newDate := (create UNTERTABELLE);
newDate.(HAUPTTABELLE := me);
newDate.(Datum := vDat);
vDat := date(year(vDat), month(vDat), day(vDat) + 1)
end
end
-
Hallo,
ich hab das für die Erfassung von Reisekosten-Abrechnungen auch schon umgesetzt - zudem dynamisch, d.h. wenn ich die Daten ändere, werden bereits angelegte Reisetage außerhalb des Reisezeitraums automatisch gelöscht. Jeweils als Änderungstrigger bei Start- und Enddatum:
let my := this;
let myStart := date(year('Datum Abfahrt'), month('Datum Abfahrt'), day('Datum Abfahrt'));
let myEnd := date(year('Datum Rückkehr'), month('Datum Rückkehr'), day('Datum Rückkehr'));
for d in select Reisetag where Reisekosten = my do
if d.Reisetag < my.'Datum Abfahrt' or d.Reisetag > my.'Datum Rückkehr' or my.Reisedauer = 1 then
delete d
end
end;
if Reisedauer > 1 then
for i from myStart to myEnd + 1 step 1000 * 60 * 60 * 24 do
let myDate := first(select Reisetag where Reisetag = i and Reisekosten = my);
if not myDate then
let newDate := (create Reisetag);
newDate.(
Reisekosten := my;
Reisetag := i
)
end
end
end
Anmerkung: Ich lege Reisetage nur an, wenn die Reise länger als 1 Tag ist - anderenfalls genügt der rudimentäre Reisekosten-Datensatz. Und: Da ich gerade auf dem Sprung bin direkt mein Code an mein Datenmodell angepasst, müsste also auf das vorhandene Datenmodell angepasst werden.
lg, Torsten
-
Hallo Torsten,
genau darum geht es bei mir auch. Ich suche eine Lösung für eine Reisekostenabrechnung.
Ich denn dabei auch berücksichtigt, dass bei z.B. 3 Tagen Abwesenheit, der erste/letzte Tag als Anreise/Abreise gezählt wird und nur der Zwischentag die vollen 28€ in DE erhält?
Wäre es möglich, dass du mir dein Datenmodell als Download zur Verfügung stellst?
Liebe Grüße
Sebastian
-
Hallo,
ja, ist es. Außerdem pflege ich Reiseziele (je Reisetag) mit jeweils gültigen Verpflegungspauschalen.
Datenmodell muss ich mal schauen, wie ich das funktional aus meiner Datenbank "herausoperiert" bekomme. Bin gerade unterwegs, schau's mir später an.
lg, Torsten
-
Das wäre super. Schon einmal vielen Dank!
-
Hallo Torsten,
entschuldige die "Störung", hast du nochmal nachgesehen?
Vielen Dank!
-
Örgs,
nein und beinahe vergessen - Danke für die Erinnerung, ich bemühe mich, das noch heute Nachmittag zu erledigen.
lg, Torsten
-
Hallo Sebastian,
sooooo, ich hab mich mal ran gemacht. War in der Tat nicht ohne, weil beim Import die internen Indizes neu aufgebaut werden und so manche Funktion in's Nirwana zeigt. Ich hoffe, ich hab alles so erwischt, dass die Funktion gewährleistet oder zumindest nachvollziehbar ist.
https://www.dropbox.com/s/db93nowins1m9u7/Reisekosten.ninox?dl=0
Viel Erfolg!
-
Wow! Vielen vielen Dank!
Ich versuche es gerade für mich in meiner Gesamt-Datenbank nachzubauen... wenn ich das datum der Rückkehr eingebe dann erscheinen die Tage auch in der Untertabelle allerdings übernimmt er die pauschalen Beiträge für VMA und Übernachtung nicht... Ich finde den Haken nicht.
Hast du eine Idee? Spielt der Status eine Rolle? Weil den habe ich erstmal weggelassen...
Lieben Dank
-
Hallo,
aus der Ferne schwer zu beurteilen. In jedem Fall spielt der Status für das Heranziehen der Pauschalen keine Rolle. Vielmehr habe ich das Umbiegen der Feldbezüge in Funktionen beim Import im Verdacht. :-/
Schade, dass es das Mittwochs-Webinar bei Ninox nicht mehr gibt. Wäre wohl ein gut lösbares Problem, wenn man auf die DB schauen könnte.
lg, Torsten
-
Hi Torsten,
bei der "nach Änderung" war als fixer Wert die 13 eingetragen, weil Deutschland die 13 bei den Pauschbeträgen war. Bei mir habe ich nur Deutschland aktuell, sodass ich die 13 zu einer 1 ändern musste. Jetzt funktioniert es! Vielen Dank!
-
Torsten Stang Ich wollte mich auch grade mal daran machen das umzusetzen, allerdings wäre es natürlich klasse nicht das Rad neu erfinden zu müssen. Leider ist der Dropbox Link nicht mehr aktuell. Wärest du bereit das nochmal hochzuladen?
-
Hallo Jan,
hier nochmal der Link zur DB:
https://www.dropbox.com/s/zizf5hf78numb4z/Reisekosten.ninox?dl=0
-
Hallo zusammen,
auf der Suche nach einer Lösung zum Thema Reisekostenabrechnung, bin ich hier fündig geworden.
Torsten Stangzunächst vielen DAnk für Deine Mühe und Bereitstellung der Datenbank.
Ich habe diese nun improtiert und versuche die anzupassen. Dabei sehe ich gerade, dass ich der Tabelle 'Mitarbeiter' in zwei Feldern, Fehler aufgetaucht sind.
Ich kann diese leider nicht so genau zuordnen. Könntest Du mir bitte evtl helfen?
zB Feld 1 (fx) - Resturlaub 31.12. aktuelles Jahr:
let myDate := date(year(today()), 12, 31);
sum(B1[B = 1 and D <= myDate].Benutzer) - sum(B1[B = 2 and D <= myDate].Benutzer)Feld 2 (Button) - Urlaubsanspruch aktuelles Jahr:
let my := this;
let myAnspruch := Q;
let myYear := year(today());
let myCom := "Urlaubsanspruch " + myYear;
let myDate := date(myYear, 1, 1);
let new := ERR("Eine Tabelle wurde nicht gefunden: S");
new.(Reisekosten := my);
new.(Nachname := 1);
new.(Vorname := myDate);
new.('Geburts-Datum' := myDate);
new.(Benutzer := myAnspruch);
new.('E-Mail' := myCom)ps: ich sehe gerade, dass auch in der Untertabelle Reisekosten der Tabelle 'Mitarbeiter' sind einige Button mit Fehler angezeigt.
Vielen Dank schon mal.
Gruß Kruna
-
Hallo Thorsten, wie schnell doch so ein Jahr vergeht ;-) und wieder (immer noch) bin ich bei dem Thema Reisekostenabrechnung beschäftigt, nur das ich dieses Thema jetzt in Ninox brauchen werde.
Ich habe nun Deine DB ganz gut angepasst und es funktioniert soweit alles ganz gut - bis auf einen Punkt, den ich einfach nicht gelöst bekomme.
Ich versuche mal folgend zu erklären:
Wenn 'Datum Abfahrt' und 'Datum Rückkehr' zwei Tage+ beinhalten, dann erscheint die Ansicht Reisetage, indem auch das Reiseziel angegeben wird.Wie schaffe ich es denn, dass bei nur einem Tag >8Std, der Datensatz in der Ansicht erscheint, incl. Reiseziel. Hintergrund ist, dass ich versuche ein Drucklayout für eine monatliche Reiskostenabrechnung zu erstellen und komme da nicht weiter.
Hättest Du eine Idee für mich oder könntest mir btte weiterhelfen.
Vieln Dank schon mal.
Gruß Kruna
-
Hallo Thorsten, ich habe es gerade mal ausprobiert (if-Abfrage (Zeile 13) und my.Reisedauer = 1" (Zeile 9) weglassen) und es hat geklappt - die Ansicht Reisetage wird 'angelegt' ! Super und tausend dank.
Gruß Kruna
Content aside
- vor 3 MonatenZuletzt aktiv
- 19Antworten
- 914Ansichten
-
3
Folge bereits