Lade...
 

Anfrage nach Sachmerkmale

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.

Felder
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
Knöpfe
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

CX_ITEM

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.

Empfangene Messages
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  

 

Gesendete Messages
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.

 

 

 

Operativer Betrieb