EasyCatalog Funktionen

Eine EasyCatalog-Palette mit XREFFIELDLIST durchsuchen

Eine EasyCatalog-Palette mit XREFFIELDLIST durchsuchen

Diese Funktion ist eine Weiterentwicklung der Funktion XREFFIELD, mit der man eine EasyCatalog-Palette - entweder die, von der aus die Funktion aufgerufen wurde - oder auch eine weitere Palette, nach einem Schlüssel durchsuchen kann und aus der Zeile, in der der Schlüssel gefunden wurde, den Wert einer anderen Spalten zurückgegben kann.

Die Funktion XREFFIELDLIST erweitert die o. g. Funktion nun so, dass nicht nur der Wert "nur" einer Fundstelle zurückgegeben werden kann, sondern mehrere Werte von allen Fundstellen, die zu dem gesuchten Schlüssel passen. Praktischwerise können die gefundenen Werte auch gleich zu einer Liste mit beliebigen Trennzeichen verkettet werden, wobei zwischen erstem, letztem und reglulärem Trennzeichen unterschieden werden kann.

Die Funktion und Ihre Parameter sehen wie folgt aus:

XREFFIELDLIST(
Zu durchsuchendes Feld,
Gesuchter Wert,
Zurückzugebendes Feld,
[erstes Trennzeichen],
[reguläres Trennzeichen],
[letztes Trennzeichen],
[zu durchsuchende, ggf. externe, Palette]
)

Beispiel: Passende Zubehör-Artikelnummern suchen und als Liste formatieren

Ein recht häufige Anwendung ist, passendes Zubehör zu einem Artikel anhand einer Zubehörliste aus der gleichen oder einer anderen Palette suchen und als Liste formatiert auszugeben.

Mit der Funktion "XREFFIELDLIST" und den untenstehenden Parametern kann man genau das machen und ein entsprechendes Ergebnis erzielen (weitere Details siehe auch im Screenshot):

XREFFIELDLIST('passendeBohrer', FIELDSTR('Artikelnr'), '_Bohrfutter-Verweis',',^n', ',^n', ',^n')

Mit der der obenstehenden Funktion suchen wir im Feld "passendeBohrer" nach dem Wert in der Spalte "Artikelnr", für jede Zeile. Pro Zeile, in der im Feld "passendeBohrer" die Artikelnummer der Ausgangszeile gefunden wird, wird der Inhalt des Feldes "_Bohrfutter-Verweis" an eine Liste angehängt und danach jeweils ein Trennzeichen angefügt.

In unserem Beispiel wird immer ein Komma gefolgt von von einem Zeilenumbruch (^n) angefügt. Das Ergebnis ist eine komma-separierte Liste, im Screenshot unten rechts zu sehen.

EasyCatalog-Zusatzfeld-Funktion: DSSTATUS

EasyCatalog-Zusatzfeld-Funktion: DSSTATUS

Mit der EasyCatalog-Zusatzfeld-Funktion "DSSTATUS" kann für ein Feld ermittelt werden, welchen internen Status es innerhalb der EasyCatalog-Palette hat. Das ist bspw. dann interessant, wenn man nach einer Synchronisation zwischen Feldinhalten unterscheiden möchten, die:

  • sich geändert haben (Rückgabe der Funktion: String "updated")
  • neu hinzugekommen sind (Rückgabe der Funktion: String "inserted")
  • unverändert geblieben sind (Rückgabe der Funktion: String "unchanged")
  • gelöscht wurden (Rückgabe der Funktion: Leerer Wert, also "")

Die Funktion kann in einem EasyCatalog-Zusatzfeld entweder atomar oder in komplexen Ausdrücken, bspw. innerhalb einer IF-Abfrage verwendet werden, bspw. um das entsprechende EasyCatalog-Zusatzfeld als Schalter für das Einblenden eines Störers zu nutzen.

Konfigurationen in der EasyCatalog-Palette einblenden

Konfigurationen in der EasyCatalog-Palette einblenden

Alle Konfigurationen, die zu einer EasyCatalog-Palette gehören, können über den Spaltenköpfen als Karteikartenreiter eingeblendet werden. Klickt man auf eine "Konfigurations-Reiter", wird automatisch die entsprechende Konfiguration geladen und der entsprechende Reiter wird blau dargestellt.

Um die Reiter einzublenden bewegt man die Maus über die Darstellung der Daten oder die Spaltenköpfe und klickt die rechte Maustaste. Dann den Menüpunkt "Paletten-Voreinstellungen anwählen und in dem dann erscheinenden Dialog die Checkbox bei "Konfigurationen zeigen" setzen. Anschließend werden die "Konfigurations-Reiter" in der Palette über den Spaltenköpfen angezeigt.

EasyCatalog-Zusatzfeld-Funktion: ENV()

Die EasyCatalog-Zusatzfeld-Funktion "ENV()" ermöglicht es, Informationen über die EasyCatalog- und System-Arbeitsumgebung zu ermitteln und in einem EasyCatalog-Zusatzfeld zu speichern.

Es stehen folgende Parameter für die Funktion zur Verfügung:

  1. datasourcename: Name der aktuellen Datenquelle der EasyCatalog-Palette, innerhalb derer der ENV-Befehl ausgeführt wird
  2. version: Versionsnummer der installierten EasyCatalog-Version
  3. buildno: Buildnummer der installierten EasyCatalog-Version
  4. username: Names des auf der Maschine eingeloggten Benutzers
  5. osversion: Versionsnummer des jeweiligen Betriebssystems
  6. platform: Plattform, auf der EasyCatalog betrieben wird
  7. decimalpt: Zeichen, das als Dezimaltrenner verwendet wird
  8. thousandpt: Zeichen, das als Tausendertrenner verwendet wird
  9. applicationname: Name der Anwendung, mit der EasyCatalog betrieben wird
  10. applicationversion: Versionsnummer der Anwendung, mit der EasyCatalog betrieben wird
  11. workspacefolder: Verzeichnispfad des EasyCatalog-Workspaces
  12. datasourcelastsynctime: Datum und Uhrzeit, zu dem die aktuelle EasyCatalog-Palette zuletzt mit Datenquelle abgeglichen wurde

EasyCatalog-Zusatzfeld-Funktion: CASE

EasyCatalog-Zusatzfeld-Funktion: CASE

Mit einer Fall-Unterscheidung, programmiertechnisch auch als CASE-Anweisung bekannt, können viele unterschiedliche "Wenn-Dann-Unterscheidungen" innerhalb eines Statements behandelt werden.

EasyCatalog kennt die die Funktion

case
schon seit CS4. Bislang fehlte aber der "else"-Zweig.

Dieser ist nun mit der neuen Version CC2017 für die CASE-Funktion ergänzt worden, sodass Verzweigungen der Form:

CASE (FIELDSTR(FeldA)
'key01', 'value01',
'key02, 'value02',
'key03, 'value03',
*, 'valueSonst')

möglich sind.

"ValueSonst" muss dabei natürlich kein fester Wert sein, sondern kann auch aus einem anderen Feld der Palette geholt werden, bspw.:

  • aus einem Feld der jeweils gleichen Zeile mit FIELDSTR() oder FIELDVAL()
  • zeilenübergreifend aus einer Gruppe mit Hilfe einer der Gruppenfunktionen von EasyCatalog
  • oder auch nach einem bestimmten "Suchkriterium" mit Hilfe der Funktion XREFFIELD(). Dann sogar auch aus einer ganz anderen Palette, als der, in der der CASE-Befehl in einer Spalte ausgeführt wird, wenn dies in XREFFIELD() entsprechend spezifiziert ist.