- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
FS_INDEX, Abfrage im Ausgabekanal leer
Hallo zusammen,
wir haben aktuell ein Problem bei der Ausgabe des FS_INDEX. Der Kunde hat Termine die an diversen Attribute gekoppelt sind. Er mรถchte aber bei der Auswahl der Termine in den FS_INDEX nur die Termine eines bestimmten Attributes sehen. Ich habe dies รผber eine neue Combobox, einer Query und Regeln gelรถst. Die Combobox lรคdt eine Liste der Attribute, der Query an der FS_INDEX ist zunรคchst auf -1 gestellt. รber Regeln wird der Param entsprechend des Auswahl in der Combobox angepasst.
<RULES>
<RULE>
<IF>
<NOT>
<PROPERTY name="EMPTY" source="st_filter"/>
</NOT>
</IF>
<WITH>
<PROPERTY name="VALUE" source="st_filter"/>
</WITH>
<DO>
<PROPERTY name="query.id" source="st_checklist"/>
</DO>
</RULE>
</RULES>
(st_filter > Combobox, st_checklist > Index)
Dies funktioniert auch soweit fรผr das eigentliche Problem. Das heisst, nach Auswahl eines Attributes kann man mittels FS_INDEX nur noch entsprechende Termine auswรคhlen fรผhrt jedoch zu Problemen bei der Ausgabe. Wenn man versucht รผber die Eintrรคge zu iterieren, sind diese zwar da - das heisst es wird genauso oft durch die Values iteriert wie Values ausgewรคhlt wurden - diese sind aber leer. Ich vermute es hat was damit zu tun, dass der Query standardmรครig auf -1 gesetzt wird, hab aber vielleicht auch einfach nur keine andere Erklรคrung. Wenn ich den Query-part aus dem FS_INDEX entferne, kann ich zumindest super auf die Eintrรคge zugreifen.
Kennt jemand das Problem und weiร wie ich an die Daten komme?
Danke und Grรผรe,
Andreas
- Labels:
-
Developers
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Andreas,
bei der Ausgabe werden die Regeln nicht ausgewertet, entsprechend verbleibt die query.id auf -1 und jeder Zugriff auf die Daten liefert kein Ergebnis.
Besser ist hier, dass bei nicht gesetztem Parameter immer Zugriff auf alle Daten mรถglich ist. Um deinen Auswahleffekt zu erreichen, kรถnntest du mit einer zweiten Regel dafรผr sorgen, dass bei leerem Filter -1 als Parameterwert gesetzt wird. Dies sollte deine Anforderung umsetzen.
Beste Grรผรe
Stefan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo,
viele Dank fรผr die Antwort. Klingt auch sehr plausibel. Hat aber in der Praxis leider keine รnderung gebracht.
Ich habe die Param-Zeile jetzt heraus genommen. Und in der Tat, solange man das Dropdown-Menรผ nicht anfasst und den Param dadurch verรคndert, funktioniert es. Sobald man jedoch, den Param mittels Dropdown anpasst, sind die Ergebnisse weiterhin leer. Gibt es noch Ideen? Auffรคllig ist auch, dass ich, wenn ich per Combobox die Auswahl eingrenzt habe und danach die Combobox zurรผcksetze, die Auswahl begrenzt bleibt. Wie kann ich den Parameter zurรผcksetzten...das wรคre vielleicht noch was fรผr ein ON_SAVE Event.
Ich poste mal zusรคtzlich noch den Code fรผr Formular, und Filter.
Formulare:
<CMS_INPUT_COMBOBOX name="st_filter" allowEmpty="yes" hFill="yes" useLanguages="no">
<CMS_INCLUDE_CONTENT type="entries" table="Checkliste_fuer_Aussteller.veranstaltung">
<LABEL lang="*">#row.getValue("Name")</LABEL>
</CMS_INCLUDE_CONTENT>
</CMS_INPUT_COMBOBOX>
<FS_INDEX name="st_checklist">
<SOURCE name="DatasetDataAccessPlugin">
<QUERY name="Checkliste.termine_nach_id"/>
<TEMPLATE uid="Checkliste.termine"/>
</SOURCE>
</FS_INDEX>
Filter termine_nach_id:
<QUERY entityType="Termine">
<FILTERPARAM parameter="id" datatype="java.lang.Integer" value="1984"/>
<EQ attribute="termin.fs_id" parameter="id"/>
</QUERY>
Danke und Grรผรe,
Andreas
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Andreas,
bin jetzt nicht ganz sicher, ob ich deine Umsetzung verstehe. Deine Query oben schrรคnkt ja initial immer auf 1984 ein, sind denn dann alle Datensรคtze sichtbar?
"wenn ich per Combobox die Auswahl eingrenzt habe und danach die Combobox zurรผcksetze, die Auswahl begrenzt bleibt. Wie kann ich den Parameter zurรผcksetzten."
Das liegt an dem IF in deiner Regel, wรผrde ich mal vermuten. Denn die wird ja nur ausgefรผhrt, wenn die Combobox nicht leer ist.
Beste Grรผรe
Stefan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ja, da bin ich auch schon drรผber gestolpert, aber bevor ich eine Auswahl treffe werden in der Tat alle Datensรคtze angezeigt.
Ich wรผรte jetzt aber auch nicht wie man den Filter so schreibt, dass er zwar eine ID als Parameter entgegennimmt, aber trotzdem alle Datensรคtze anzeigt, wenn kein Parameter gesetzt ist.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Andreas,
ja, da hast du vermutlich Recht bzgl. Filter mit optionalem Parameter. Ich frage da noch bei jemandem nach, aber bei Zahlenwerten kรถnnte es sein, dass es nicht geht. Wรคre es eine Textspalte, kรถnnte man wohl einfach einen % reinschreiben.
Beste Grรผรe
Stefan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Andreas,
hat ein wenig gedauert, aber deine Einschรคtzung hat sich bestรคtigt. Optional filtern geht hier nicht.
Einen Workaround kรถnnte man รผber eine versteckte Komponente ermรถglichen, die dann als eigentlicher Wertetrรคger fรผr die Ausgabe etc. dient. Wรคre dann eine Schatten-FS_INDEX-Komponente ohne Query-Einschrรคnkung, die jeweils eine Kopie der Auswahlkomponente erhรคlt (z. B. zum Zeitpunkt des Speicherns).
Beste Grรผรe
Stefan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo,
ein Kollege hatte gerade noch eine Lรถsungsidee, die sich umsetzen lรคsst, wenn du eine neue Spalte im Datenbankschema definieren kannst. Dann kรถnnte man eine quasi-bedingte Abfrage basteln.
Vorgehen:
- Neue Spalte, die fรผr alle Datensรคtze auf 0 gesetzt ist.
- Zweiter Parameter auf die neue Spalte in der Query mit Default 0.
- Beide Parameter per Oder verknรผpfen.
- Zweite Regel schreiben, die zusรคtzlich zum ersten Parameter den zweiten Parameter auf 1 setzt.
In der UI greift dann immer der erste Parameter. Bei der Ausgabe greift dann der zweite Parameter des Oders und alle Daten sind erreichbar.
Beste Grรผรe
Stefan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Andreas,
vielleicht geht es sogar noch etwas einfacher (ohne neue Spalte sondern man nimmt einfach die FS_ID):
Grundansatz ist derselbe, also ein zweiter Parameter (also eine zweite Bedingung, die mit der "eigentlichen" per ODER verknรผpft ist). Bedingung wรคre
fs_id < DUMMY_PARAM. Initial setzt man den Dummy-Param auf den Maximalwert so dass er alle Werte liefert. รber die Regel im Formular setzt man ihn dann auf 0 oder auch den Minimalwert, so dass da dann nur noch der "eigentliche" Filterparameter greift.
Viele Grรผรe
Michael
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Andreas,
benรถtigst Du noch weitere Hilfe oder haben Dir Michaels und Stefans Antworten bereits geholfen? In diesem Fall wรคre es super, wenn Du die "richtige Antwort" entsprechend markierst.
Viele Grรผรe
Michaela

