Archiv des Intrexx Live! Forums

Hier sehen Sie die Foreneinträge aus dem Intrexx Live! Forum. Bis November 2016 war es das Forum für alle Fragen rund um die Software Intrexx von United Planet.
Seit November 2016 gibt es ein neues moderiertes Forum, das Intrexx Community Forum. Nutzen Sie bitte unbedingt dieses für aktuelle Fragen, Antworten und Informationen.

Wichtig: Dieses Forum dient als Archiv. Die Einträge beziehen sich oft auf ältere Versionen von Intrexx und entsprechen nicht mehr den aktuellen technischen Gegebenheiten.
Daher sollten alle Inhalte ausschließlich von Experten genutzt werden. Bei unsachgemäßer Anwendung kann es zu zeitaufwändigen Problemen oder Datenverlust kommen.
Übersicht > Intrexx Professional: Programming > Ansichtstabelle Filtern nach dynamischen Bereichen

Ansichtstabelle Filtern nach dynamischen Bereichen

Hallo zusammen,

ich nutze Intrexx 6 und möchte Daten in drei Tabellen jeweils unterschiedliche Filterungen durchführen.
Die Herausforderung ist für mich hierbei, dass ich die anzuzeigenden Zeiträume nicht händisch aktualisieren möchte, sondern
die hinterlegte Filter-Logik dies eigenständig tun soll. Leider weiß ich nicht, wie ich Intrexx das beibringen könnte und bitte um eure Hilfe.
Nachfolgend erleutere ich die drei Tabellen und welche Filterkriterien an sie gerichtet sind.

In der Datengruppe befindet sich ein Datums-Datenfeld "Leistungserbringung".

Tabelle 1 --> Daten aus dem Vorjahr anzeigen:
Es sollen alle Datensätze angezeigt werden, bei denen die Leistungserbringung ein Datum aus dem vergangenen Jahr enthält. D.h. heute, im Jahr 2016, hätte ich gerne alle Datensätze in der Tabelle, deren Leistungserbringung im Zeitraum 01.01.2015 - 31.12.2015 enthalten sind. Ohne beim Jahreswechsel etwas händisch umprogrammieren zu müssen (wie z.B. <=31.12.2016 und >=01.01.2016), sollen im Jahr 2017 automatisch alle Datensätze aus dem Zeitraum 01.01.2016 - 31.12.2016 angezeigt werden etc.

Tabelle 2 --> Daten aus dem Vormonat anzeigen:
Es sollen alle Datensätze angezeigt werden, bei denen die Leistungserbringung ein Datum aus dem vergangenen Monat enthält. D.h. heute, im Februar 2016, hätte ich gerne alle Datensätze in der Tabelle, deren Leistungserbringung im Zeitraum 01.01.2016 - 31.01.2016 enthalten sind.
Ohne beim Monatswechsel etwas händisch umprogrammieren zu müssen (wie z.B. <=31.02.2016 und >=01.02.2016), sollen im Monat März automatisch alle Datensätze aus Februar 2016 angezeigt werden etc.

Tabelle 3 --> Daten aus dem aktuellen Monat anzeigen:
Es sollen alle Datensätze angezeigt werden, bei denen die Leistungserbringung ein Datum aus dem aktuellen Monat enthält. D.h. heute, am 23.02.2016, hätte ich gerne alle Datensätze in der Tabelle, deren Leistungserbringung im Zeitraum 01.02.2016 - 23.02.2016 enthalten sind.
Ohne beim Monatswechsel etwas händisch umprogrammieren zu müssen (wie z.B. <=heute und >=01.02.2016), sollen im Monat März automatisch alle Datensätze aus dem Monat März 2016 angezeigt werden.

Kann mir hier jemand helfen, wie ich eine Filterung für diese Szenarien realisieren kann?

Ich danke vorab für eure Unterstützung. attention

Es grüßt
Zoth
23.02.2016 13:53 von Zoth
Filter 1:

Datengruppe --> Datentenfeld Operation "Gleich" Als Vergleichswert Systemwert Heute (mit Uhrzeit) und bei Anpassung trägst du im Feld Jahr -1 ein

Filter 2 währe dann Monat -1
23.02.2016 14:06 von cbarth
Filter 1:

Datengruppe --> Datentenfeld Operation "Gleich" Als Vergleichswert Systemwert Heute (mit Uhrzeit) und bei Anpassung trägst du im Feld Jahr -1 ein

Filter 2 währe dann Monat -1
cbarth, danke für deine Antwort.
Leider funktioniert sie nicht so, wie ich es mir vorstelle. huh

Ich habe für meine Tabelle 1 den von dir genannten Filter 1 gesetzt.
Leider erhalte ich dann garkein resultat. Selbst wenn doch, dürfte m.E. diese Logik im Idealfall eine Liste ausspucken, bei der das Datum bei genau heute vor einem Jahr liegt.
Mir geht es darum, dass die Tabelle jeden Datensatz mit Datum vom 01.01.2015 bis 31.12.2015 enthält, so lange wir noch das Jahr 2016 haben. Sobald wir das Jahr 2017 schreiben,
soll der Bereich nicht händisch in Intrexx auf 01.01.2016 bis 31.12.2016 angepasst werden, sondern Intrexx soll das eigenständig erkennen.

Wie beispielhaft zwei Datenbankwerte aussehen (in diesem Fall allerdings beide 2015), habe ich dem Post als Bild angehängt.

Der Algorithmuss müsste für Tabelle 1 sinngemäß also etwa so aussehen:
1. Nehme aktuelle Jahreszahl (also 2016)
2. Ziehe 1 von der Jahreszahl ab (also 2016 - 1 = 2015)
3. Nehme den statischen Starttag (also 01.01.) und hänge das errechnete Jahr (2015) an (also 01.01.2015)
4. Nehme den statischen Endtag (also 31.12.) und hänge das errechnete Jahr (2015) an (also 31.12.2015)
5. Zeige alle Datensätze, für die die Datenfeldbedingung gilt: 01.01.2015 >= "Datum Leistungserbringung" <= 31.12.2015

Für die Tabelle 2 sähe der Algorithmus analog dem obigen - nur für den Monat statt für's Jahr - aus:
1. Nehme aktuellen Monat (also 02) und aktuelles Jahr (also 2016)
2. WENN Monat != 01, ziehe 1 von der Monatszahl ab (also 02 - 1 = 01), SONST 12 und Jahr = aktuelles Jahr - 1 (also 12.2015) ( - Der Sonst-Fall tritt ein, wenn's Januar ist, da sonst der Monat 0 wäre, er dann aber 12 sein müsste)
3. Nehme den statischen Starttag (also 01.) und hänge den errechneten Monat mit dem Jahr an (also 01.01.2016)
4. Nehme den statischen Endtag (also 31.01.) und hänge den errechneten Monat mit dem Jahr an (also 31.01.2016)
5. Zeige alle Datensätze, für die die Datenfeldbedingung gilt: 01.01.2016 <= "Datum Leistungserbringung" <= 31.01.2016

Für die Tabelle 3 sähe der Filter-Algorithmus wie folgt aus:
1. Nehme aktuellen Monat (also 02) und aktuelles Jahr (also 2016)
2. Nehme den statischen Starttag (also 01.) und hänge den aktuellen Monat und das Jahr an (also 01.02.2016)
3. Nehme den statischen Endtag (Heute) und hänge den aktuellen Monat und das Jahr an (also 23.02.2016) (Das Datum kann nie älter sein, als der heutige Tag)
4. Zeige alle Datensätze, für die die Datenfeldbedingung gilt: 01.02.2016 <= "Datum Leistungserbringung" <= 23.02.2016

Ich weiß nur nicht, wie ich Intrexx sowas beibringe.
Bitte daher weiterhin um Hilfe. attention
23.02.2016 16:22 von Zoth
Hallo Zoth,

du hast ja konkrete Vorstellungen wie es geht. Ich würde es über die Abhängigkeit der einzelne Tabelle lösen. Zu diesem Zweck würde ich 6 Eingabefelder in den verstekten Bereich oder in eine ausgeblendete Gruppe
legen. Also ein Pärchen (von Datum bis Datum) für Vorjahr ein Pärchen (von Datum bis Datum) für Vormonat und ein Pärchen (von Datum bis Datum) für den aktuellen Monat.
Ein JS beim onload der Seite füllt diese Felder. Die Abhängigkeiten der Tabellen würd ich dann auch im onload der Seite machen.

Ich hoffe damit hast du nun einen Ansatz...
24.02.2016 07:07 von cbarth
Auch wenn "nur" das Jahr oder der Monat verglichen werden soll, muss im Filter das komplette Tagesdatum "verglichen" werden.
Daten aus dem vergangenem Jahr sind also Daten größer als 1.1. <aktuelles Jahr-1> bis kleiner als 1.1.<aktuelles Jahr>
Du brauchst also für das vergangene Jahr 2 Filtereinträge: LeistungserbringungsDatum GrößerGleich und bei Tag = 1, Monat = 1, Jahr = -1
und
LeistungserbringungsDatum KleinerAls Tag = 1, Monat = 1, Jahr freilassen (=aktuelles Jahr).

Klappt das?

Beatrix
24.02.2016 09:19 von Beatrix
Hallo zusammen,

zunächst einmal vielen Dank für eure Antworten.

Hallo Zoth,

du hast ja konkrete Vorstellungen wie es geht. Ich würde es über die Abhängigkeit der einzelne Tabelle lösen. Zu diesem Zweck würde ich 6 Eingabefelder in den verstekten Bereich oder in eine ausgeblendete Gruppe
legen. Also ein Pärchen (von Datum bis Datum) für Vorjahr ein Pärchen (von Datum bis Datum) für Vormonat und ein Pärchen (von Datum bis Datum) für den aktuellen Monat.
Ein JS beim onload der Seite füllt diese Felder. Die Abhängigkeiten der Tabellen würd ich dann auch im onload der Seite machen.

Ich hoffe damit hast du nun einen Ansatz...
(at)cbarth:
Leider wüsste ich nicht, wie ich deinen Vorschlag realisieren soll. (bei onload Seite füllen und nach Abhängigkeiten filtern) Kenne mich mit JS nicht aus.


(at)Beatrix:
Ich habe es versucht (siehe angehängte Grafik), allerdings konnte ich nicht das gewünschte Ergebnis erreichen.
Durch diese Bedingung würde heute am 24.02.2016 (bei dem linken Fenster) das Datum 25.03.2015 und (beim rechten Fenster) das Datum 25.03.2016 erzeugt,
da ja die Zahlen im Bereich "Anpassung" bei Tag, Monat und Jahr jeweils um den dort eingetragenen Wert erhöht / erniedrigt werden.

Durch die UND - Verknüpfungen mit den <=> - Operatoren käme als Suchkriterium heraus:
Leistungserbringung >= 25.03.2015 UND Leistungserbringung <25.03.2016 (Siehe angehängten Screenshot)

Was für den ersten Fall (Werte aus dem Vorjahr) aber gewünscht wäre, wäre der Intervall 01.01.2015 - 31.12.2016.
D.h. die Bedingung müsste lauten Leistungserbringung >= 01.01.2015 UND Leistungserbringung <=31.12.2015

Hmmm nicht so einfach. attention
Gibt es weitere Ideen?

Zoth
24.02.2016 17:36 von Zoth
Komisch, bei mir funktioniert es. Ich habe mehrere Anwendungen mit Archiv-Ansichten, wo die Datensätze des vergangenen Jahres automatisch reinrutschen...

ich dachte immer, Anpassung mit Angabe Zahl bedeutet die absolute Zahl, Erhöhung oder Verringerung des aktuellen Wertes sei Angabe Zahl mit PLUS oder MINUS davor?

Beatrix
25.02.2016 07:27 von Beatrix
Hallo Beatrix,

dein Post hat mich auf die Idee gebracht, alle Werte nochmal genau zu prüfen.
Dabei habe ich festgestellt, dass im Rahmen meiner Testdaten, die Ursache in der Uhrzeit liegt.
Wenn ich zusätzlich die Zeiten auch vorgebe mit 0 Stunden 0 Minuten und 0 Sekunden (siehe Screenshot im Anhang),
funktioniert es. thumbsup

(at)cbarth und Beatrix:
Vielen Dank für eure Hilfe!!! thumbup

Zoth
26.02.2016 10:18 von Zoth
Zurück | Alles über Intrexx | Impressum | Datenschutzerklärung

Über United Planet
© 2019 United Planet GmbH
Schnewlinstraße 2
79098 Freiburg