Suchmöglichkeit über Attribute
Beschreibung
Sie können Objekte nach ihren Attributen suchen (z.B. alle Teile, die schwarz sind).
Funktionalität
Nahezu alle Daten im ClassiX® System können Zusatzinformationen über sogenannte Attribute erhalten. So könnte beispielsweise jeder Firma ein Attribut zugeordnet werden, welches angibt, wie viele Mitarbeiter diese Firma anstellt. Ein Anderes, wie viele Bildschirmarbeitsplätze es dort gibt.
Um jetzt z.B. nach allen Firmen suchen zu können, die mehr als 40 Bildschirmarbeitsplätze haben, ist dieses Modul vorhanden. Es erlaubt eine Kombination von unbegrenzt vielen Attributen, die in der Liste, aus der diese Suche geöffnet wurde, die passenden Objekte heraussucht.
Alle Attribute, nach denen gesucht werden soll, können in die Liste mit dem "Einfügen" Knopf eingefügt werden. Nach dem Einfügen können hier die Vergleichsoperatoren (z.B. =, >, vorhanden, nicht vorhanden) und die eventuell benötigten Vergleichswerte eingestellt werden. Sie werden mit "UND" verknüpft. Wenn also zwei Attribute in diese Liste eingefügt wurden, dann müssen beide Attribute (so wie eingestellt) am Objekt vorhanden sein, um einen Treffer bei der Suche zu erzielen.
Beispiel: Suche über die Firmenliste:
Attribut "ANZAHL_MITARBEITER", Vergleichsoperator ">=" Vergleichswert "40".
Alle Firmen, die das Attribut ANZAHL_MITARBEITER mit einem Wert größer gleich 40 besitzen, werden gefunden.
Knopf | Beschreibung |
---|---|
Ausgewählte Attribute... | - |
: Suchanfrage an alle geöffneten Listenfenster senden | Ist dieses Häkchen gesetzt, so wird die eingegebene Suchanfrage nacheinander an alle derzeit auf dem Bildschirm zu sehenden ClassiX - Listenfenster geschickt, die dann jeweils ihre Suchergebnisse anzeigen |
Einfügen | Selektionsfenster der Attribute aufrufen, um ein zu suchendes Attribut einzufügen. Anschließend können der Suchwert und der Vergleichsoperator eingestellt werden. |
Entfernen | Selektiertes Attribut entfernen |
Vergleichsoperator | Beschreibung |
---|---|
= | gleich |
!= | ungleich |
@ | Objektidentität (gleiche Datenbankadresse - also nicht nur Wertvergleich) |
> | größer |
>= | größer oder gleich |
< | kleiner |
<= | kleiner oder gleich |
vorhanden | Prüft, ob ein Attribut vorhanden ist |
nicht vorhanden | Prüft, ob ein Attribut nicht vorhanden ist |
Knopf | Beschreibung |
---|---|
Einfügen | Selektionsfenster der Attribute aufrufen |
Entfernen | Selektiertes Attribut entfernen |
OK | Suche nach Attributen starten |
Schließen | Das Fenster wird geschlossen |
Verwandte Themen
Technische Dokumentation
Anfrage nach Sachmerkmale Modul
Modulname
queryatt.mod
Klassen
Security
Neben der Beschränkung der Zugriffsrechte über die Klasse und deren Datenfelder kann das Modul über einige der empfangenen Messages in seiner Nutzung beschränkt werden.
Message | Parameter | Funktion | Security |
---|---|---|---|
ATTRIBUTE_SELECTED | Collection Attribut-Objekte | Attribute wurden selektiert | |
CREATE_QUERY_BY_ATTRIBUTE | Empfänger der Antwort | Eingabefenster aufrufen | |
SLOT_ATTRIBUTE_SELECTED | Collection voreingestellter Attribut-Objekte | Attribute wurden selektiert | |
CREATE_QUERY_ATTRIBUTES
|
Überschrift für Suchfenster und Absenderwidget(TOP) | Attributsuchmaske wird geöffnet |
Message | Parameter | Funktion | Empfangs-Modul |
---|---|---|---|
QUERY_BY_ATTRIBUTE_CREATED | Attribut-Objekte, Zeichenkette, Empfänger der Antwort | Querystring zurücksenden | |
SELECT_SLOT_ATTRIBUTE | NULL oder Collection Attribut-Objekte | Selektionsfenster für voreinstellbare Attribute aufrufen | Voreinstellbare Sachmerkmale-Selektionsmodul |
ATTRIBUTE_QUERY_CREATED
|
Attributcollection (transiente Attribute mit Suchparametern TOP) Suchstring (generiert aus Attributen) ... (Suchparameter auf dem Stack aus Attributwerten) |
Antwortmessage auf die Suchanfrage CREATE_QUERY_ATTRIBUTES |
Um eine Suche nach Attributen in ein Modul zu implementieren, könnte folgende Codevorlage dienen:
In die Toolbar der Suchliste wird lediglich dieser Code eingefügt:
Button(SearchButton, TOOLTIP("Nach Sachmerkmalswerten suchen", "Search by attributes values"), 0, 0, "Atribute.bmp") [ SELECT : T("Nach Sachmerkmalswerten suchen", "Search by attributes values") Widget SendMsg(CREATE_QUERY_ATTRIBUTES) ATTRIBUTE_QUERY_CREATED : -> searchAttributes DropAll EndTXN BeginTXN(READ) searchAttributes CX_FORWARDER TRUE Widget(SelectWin) G_FindObjectsByAttributes ClearObox(, ListBox) FillObox(, ListBox) Refresh ]
Hierbei wird nur noch der Klassenname (hier CX_FORWARDER) durch den zu suchenden Klassennamen oder ggf. die Variable objectClass ersetzt.
Das TRUE steuert, ob nur gültige Objekte angezeigt werden (=TRUE) oder auch die ungültigen (=FALSE).
Das TRUE kann auch durch die Variable "validity", die in den meisten Modulen als CX_BIT_PATTERN eingesetzt wird, ersetzt werden. Auch dies wird richtig interpretiert.
Die globale Funktion G_FindObjectsByAttributes durchsucht alle Objekte der übergebenen Klasse nach den ausgewählten Attribute.
Für einige Klassen gelten Sonderregeln:
Klasse | Ausnahmebeschreibung |
---|---|
CX_PARTNER_CAST (Partnerrollen wie Kunden, Lieferanten, Berater...) | Die eigenen Attribute und die Attribute des verbundenen Partners (Firma oder Person) werden in die Suche einbezogen |
CX_ITEM_CAST (Teilerollen wie Verkaufsartikel, Einkaufsartikel..) | Die eigenen Attribute und die Preise , sowie die Attribute des verbundenen Teils werden in die Suche einbezogen. Bei Verkaufsartikeln werden ebenfalls die Kundenvereinbarungen, bei Bestellteilen die Lieferantenvereinbarungen (inkl. derer Preisketten) überprüft. |
CX_BILL_OF_MATERIAL / CX_JOB_SCHEDULE | Die eigenen Attribute, die Attribute der verbundenen Fertigungsrolle(n) und des verbundenen Teils, die Attribute der Unterpositionen, sowie deren Mengen dieser werden in die Suche einbezogen. Die gefundenen Positionen werden in einer Extraliste ausgegeben. Es werden nicht alle Stücklisten-/Arbeitsplanköpfe angezeigt, bei denen lediglich deren Unterpositionen bei die Suche zu einem Treffer führte. Es kann also vorkommen, dass die Liste der Stücklisten / Arbeitspläne leer ist, aber im entsprechenden Positionsfenster Suchergebnisse angezeigt werden. Bei bedingten Positionen werden selbstverständlich auch die einzelnen Positionsvarianten überprüft. |