Examples: query, "exact match", wildcard*, wild?ard, wild*rd
Fuzzy search: cake~ (finds cakes, bake)
Term boost: "red velvet"^4, chocolate^2
Field grouping: tags:(+work -"fun-stuff")
Escaping: Escape characters +-&|!(){}[]^"~*?:\ with \, e.g. \+
Range search: properties.timestamp:[1587729413488 TO *] (inclusive), properties.title:{A TO Z}(excluding A and Z)
Combinations: chocolate AND vanilla, chocolate OR vanilla, (chocolate OR vanilla) NOT "vanilla pudding"
Field search: properties.title:"The Title" AND text
Beantwortet
Dynamische Untertabelle(nansicht)

Servus,

ich habe aktuell ein kleines 'Problem' mit einer Untertabelle bzw. vielleicht hat das von euch schon jemand realisiert und könnte mir weiterhelfen.

Ich möchte eine dynamische Untertabelle aufbauen mit Listen. Das heißt ich habe eine Untertabelle mit zwei Spalten (später auch 3).

In Spalte A befindet sich eine Listenauswahl. In Spalte B ebenfalls eine Listenauswahl.
Jedoch ist die Liste abhängig von der Auswahl in Spalte A.

Beispiel:
Spalte A 1. Eintrag wird ausgewählt -> Spalte B Liste zum 1. Eintrag erscheint
Spalte A 2. Eintrag wird ausgewählt -> spalte B Eine andere Liste zum 2. Eintrag erscheint.

Ist so etwas in JobRouter überhaupt möglich?

Viele Grüße
Chris

  
  
Gepostet vor 3 Jahren
Stimmen Neuste

Antworten 6


Die Listen, welche im Prozess erstellt werden können.

Ich glaube aber kaum, dass es geht. Ggf. muss ich mir eine andere Lösung suchen...

  
  
Gepostet vor 3 Jahren

Auch diese Listen liegen in Datenbanktabellen. Du könntest mit den Tabellen JRLISTDATA und JRPROCESSTRANSLATIONS (tranlation_type = 'listentries'; wird für die Bezeichnungen benötigt) die Liste per SQL aus der Datenbank laden und dann hier mit einer WHERE-Bedingung die Filterung vornehmen.

In der WHERE-Bedingung musst du die referenzierte Spalte wie folgt angeben [SUBVIEWNAME_COLUMNNAME]. Falls man das hier durch die Formatierung nicht gut erkennt: Die Namen der Subview und des Dialogelements darin sind mit einem Unterstrich getrennt.

Wenn es jetzt eine Auswahl in der ersten Liste gibt, kannst du einen SQL-Refresh auf die zweite Spalte mit SQL-Liste machen.

1
1
Gepostet vor 3 Jahren

Hallo Chris,

wie Timo schon schrieb, stehen auch die im Prozess angelegten Listen in der DB (wo genau, siehe Timos Eintrag und das Handbuch). Es ist möglich, über JobRouter Dialogfunktionen, die per Event Listener gecallt werden, solche dynamischen Anpassungen (notfalls per DOM-Manipulation über JavaScript) vorzunehmen.
Vorgehen:

  • Event Listener OnChange auf Spalte 1
  • der callt eine Dialogfunktion, die die Daten aus der DB abfragt und zurück gibt
  • diese baust du dann per JS in als -Tag in die Drop-Down ein (jQuery ist da nützlich)

Ich hoffe dies hilft, bei Rückfragen bitte gerne melden.

VG Jan

Edit: Dies ist natürlich am Standard vorbei und die Versionssicherheit ist nicht gewährleistet (erfahrungsmäßig aber gut).

1
1
Gepostet vor 3 Jahren
Bearbeitet vor 3 Jahren
Jan Zimmerbeutel
272 × 4 Administrator
  
  

Ich würde davon abraten das so zu lösen.

Andreas Klein   vor 3 Jahren Melden

Geht es bei deiner Frage um SQL-Listen oder die im Prozess definierten Listen? Für die Erstgenannten geht dies in jedem Fall. Bei "normalen" Listen weiß ich das leider nicht.


Das sollte sich mit zwei SQL Listen in der Untertabellenansicht lösen lassen. Die SQL Liste in Spalte B referenziert die Liste in Spalte A.
Hierfür gibt es in der JobRouter Javascript API jr_subtable_refresh um die SQL Liste in Abhängigkeit neu zu berechnen. Hier ist auch ein gutes Beispiel wie man die beiden Felder miteinander verknüpft.

Siehe hier

SQL-Aufbau

Die Inhalte der SQL-Elemente ergeben sich aus dem gespeicherten SQL. Hier kann auf vorhandene Felder der Prozesstabelle zurückgegriffen werden.

SELECT DISTINCT mimetype FROM JRFILES WHERE mimetype LIKE '%[mySubtableViewName_myColumnName1]%'

Sofern man sich auf eine Spalte aus einer Untertabellenansicht in einem SQL beziehen möchte, ist generell folgende Schreibweise erforderlich:

[<subtableViewName>_<columnName>]
2
2
Gepostet vor 3 Jahren
Andreas Klein
155 × 4 Administrator
  
  

Dies scheint die bessere Lösung und vor allem im Standard zu sein

Jan Zimmerbeutel   vor 3 Jahren Melden

Vielen Dank für euren Input :).
Ohne das jetzt gelesen zu haben, habe ich mir heute auch nochmal gedanken gemacht und kam auf eine ähnliche Idee wie Andreas.

Quasi eine DB-Tabelle (ggf über JobData) und dort die Werte eintragen mit den gewissen Fremdschlüsseln und per SQL rausziehen.

Da probiere ich mich mal.

Ich danke euch schon mal :).

2
2
Gepostet vor 3 Jahren
5K Ansichten
6 Antworten
vor 3 Jahren
vor 3 Jahren
Stichwörter