Domino 9 und frühere Versionen > Entwicklung
Stammdaten nach Gültigkeitsdatum auslesen
Joe:
Hallo liebe Notes-Gemeinde!
Ich stehe mal wieder auf dem Schlauch (oder habe nur ein Brett vor'm Kopf). Im Zusammenhang mit einer Reisekostenabrechnung soll ich Stammdaten hinterlegen, die einen Tagessatz abhängig von der Stundenanzahl ergeben. Das ist ja noch nicht schlimm. Allerdings soll der Tagessatz variabel gehalten werden können, z.B. vom 01.01.03-31.12.03 -> 24 EUR, vom 01.01.04-31.12.04 -> 25 EUR. Das berechnete Betragsfeld in der Maske soll anhand des eingegebenen Datums und der Stundenzahl den in diesem Zeitraum gültigen Tagessatz auslesen. Ich möchte dies über ein Profildokument lösen, in dem die gültigen Tagessätze eingetragen werden, weiß bloß nicht wie! :-(
Vielleicht mit Mehrfachwerten im Feld des Profildokuments?!??? Wie lese ich den Wert entsprechend des Datums dann aus? Hat jemand eine Idee?????? Bin für jede Hilfe dankbar.
koehlerbv:
Steht Dir nur Formelsprache zur Verfügung, oder kannst Du das mit LS angehen ?
Eine flexible Lösung (was wissen wir schon, was sich evtl. per 01.04.2004 ändert ?) ist m.E. mit Formeln nicht machbar. Mit LS könnte man hingegen pro Periode ein Setup-Dokument erstellen. Dann wärst Du programmtechnisch diese Sorge ein für alle mal los.
Sagst Du mal an ?
Bernhard
Joe:
Hallo Bernhard,
ich bin zwar mit der Formelsprache großgeworden, aber LS ist mir mittlerweile nicht mehr fremd. Bin zwar kein Papst in LS, aber bisher läuft es ganz gut. Der Ansatz klingt interessant! Welche Lösung siehst du?
Ich mach jetzt aber erst mal Feierabend, habe zum Glück noch andere Hobbies. Bis morgen! Joe
Gandhi:
Wenn er an das Profildokument so rankommt, warum nicht mit Formula?
Kann er doch die Werte in verschiedene Felder oder in ein Array schreiben....
Wie viele Werte aber müssen darein und wo genau ist Dein Problem eigentlich?
Um die Werte aus einer Liste auszulesen folgende Denkansätze:
1. Datumliste mit Wertliste synchron halten: Dat1:Dat2:Dat3 ; Wert1:Wert2:Wert3
2. herausfinden welches Datum aktuell ist. Bei 2 Daten trivial (Dat1<@Today -> Dat2). Bei sehr vielmehr als 2 Daten unter Formula...unter R5.....knifflig!
3. Mittels @subset Anweisungen den richtigen Wert ausschneiden (Die Parameter hierzu erhältst Du aus den @if Anweisungen nach Datum)
So würde ich das (grob) angehen
Oder: Warum über ein Profil-Dokument?
Mach doch einfach normale Dokumente - mit neuer Maske in einer versteckten Ansicht. Sortiert nach Datum und so ausgewählt, dass nur Dokumente, deren Wert gültig ist, noch in der Ansicht sind. Das älteste gültige wäre dann ganz oben und Du kannst es superbequem per Lookup anziehen.
Eigentlich eleganter, als mit Profildokumenten - die sind ja auch nur für statische Informationen gedacht.
koehlerbv:
Hallo, Joe,
das Problem bei der ganzen Sache ist - wenn ich näher darüber nachdenke - Aufwand und Nutzen.
Grosser Aufwand (nur mit LS machbar):
Setup-Dokumente mit folgenden Feldern:
"GültigVon", "GültigBis" und zwei korrespondieren Multi-Value-Feldern (die ordentlich auf korrekte Ausfüllung geprüft werden müssen !) "MaxStunden" und "Betrag".
Dann kannst Du bei der Berechnung der Werte in der RK-Abrechnung durch die Ansicht rödeln, das passende SetupDoc ermitteln (Reisetag >= GültigVon & Reisetag <= GültigBis), dann die entsprechenden Stunden ermitteln und den korrespondierenden Betrag ermitteln.
Voraussetzung hierfür ist: Du lässt nur pro Dok einen Reisetag zu. Ist es eine Periode, könnte die ja auch in einen Wechsel der Berechnungsart fallen. Dann wird es noch aufwändiger.
Wegen der Felder "Reisedauer" und "Betrag": Das könnte sich ja auch ändern, wenn einer in Berlin mal schlecht geschlafen hat ...
Einfacher und evtl. doch machbar (siehe oben: Aufwand und Nutzen):
Du gehst davon aus, das immer nur zwei Berechnungsverfahrens-Perioden denkbar sind und die Stundengrundlagen gleich bleiben.
Ein Setup-Dokument (kann dann auch ein ProfileDoc sein, aber siehe hierzu bitte Gandhis Beitrag, dem ich voll beistimme). Dort steht der Stichtag der Änderung des Berechnungsverfahrens. Dann prüfst Du auf "älter oder neuer ?" und ziehst dann die entsprechenden Werte in temporäre Variablen und machst darauf basierend Deine Berechnungen.
Wie gesagt: Aufwand und Nutzen musst Du abwägen. Die grosse offene Frage: Lässt Du Dienstreisen über eine Periode von Tagen zu oder muss für jeden Tag ein eigener Eintrag gemacht werden ? Letzteres macht es für Dich viel einfacher, ersteres: Fill Schpass ! Ich hatte das mal mit einer Patientenverwaltung und der Abrechnung des Zuzahlungsbetrages. Der Wechsel des Procederes fand ja in der Regel mitten im Kliniksaufenthalt statt ... Und damals (ja - ist schon 'ne Weile her ;-) gab es nur @functions ... Das war ein (Programmier-)Spass ...
Servus,
Bernhard
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln