Lade...
 

Transform

Transform

Transform(name)

Parameter: Name eines Enumeration-Datenfelds bzw. der Name der Tabelle

Stack
Stack   Beschreibung
Stack(In)   ganze Zahl
Stack(Out)   Zeichenkette

Der Wert vom Stack-Top wird in eine Zeichenkette transformiert. Dabei wird die im Parameter angegebene Transformationstabelle benutzt. Die Tabelle kann direkt oder indirekt mit Bezug auf ein Datenfeld angegeben werden:

  • Der Name hat die Form Filename~Tabellenname. Die angegebene Tabelle wird benutzt.
  • Der Name enthält keine Tilde, d.h. es wurde ein Datenfeld angegeben. Die Verbindung zwischen Datenfeld und Transformationstabelle stellt CLASSIX.INI her. Wird ein Zugriffsausdruck angegeben, bestimmt sein letzter Term die Transformationstabelle.

Findet die Anweisung eine Zeichenkette auf dem Stack-Top, so wird die umgekehrte Transformation durchgeführt:

Stack
Stack   Beschreibung
Stack(In)   Zeichenkette
Stack(Out)   ganze Zahl

Beispiel:

// Get the enum out of an object and transform it:

item Copy(Monitor("CX_DISPO_ACCOUNT").logisticsEnum) Integer Transform("classix.num~logisticsEnum")

 

// The same a little more comfortable

item Copy(Monitor("CX_DISPO_ACCOUNT").logisticsEnum, ENUM)

 

// Do that for initialized integer variables:

Var(defaultSetting)
12 -> defaultSetting

// If the item has no dispo account, use the default setting

item Get(Monitor("CX_DISPO_ACCOUNT")) Dup ifnot { Drop defaultSetting } Integer Transform("classix.num~logisticsEnum")

 

 

Transform(name, trennzeichenFolge)

Parameter: Name eines Enumeration-Datenfelds bzw. der Name der Tabelle, Trennzeichen zwischen zwei Namen

Stack
Stack   Beschreibung
Stack(In)   ganze Zahl
Stack(Out)   Zeichenkette

Für eine Transformationstabelle, die nur Werte 2n enthalten sollte, wird der Wert vom Stack-Top als Bitfeld aufgefasst und man erhält als Ergebnis eine Zeichenkette, die aus den Namen aller Bits = 1 besteht. Aufeinanderfolgende Namen werden durch die im zweiten Parameter angegebene Zeichenfolge getrennt.

Beispiel:

/ Definiton in classix.num

/*
batchErrorEnum
{
  1, T("Andere", "Others"), 0xff                                                               // Bit 0
  2, T("Keine Kosten am Fertigungsteil", "No costs on product"), 0xff                          // Bit 1
  4, T("Keine Kosten am Bestellteil/kein SVP", "No costs on purchase item / no svp"), 0xff     // Bit 2
  8, T("Weder Kostenstelle noch Kostenträger", "Neither cost center nor cost objective"), 0xff // Bit 3
 16, T("Fehlende Sachmerkmale", "Missing attributes"), 0xff                                    // Bit 4
 32, T("Fehlendes Logistikkennzeichen", "Missing logistics enum"), 0xff                        // Bit 5
}

  • /

// Get the enum out of an object and transform it:

63 Transform("classix.num~batchErrorEnum", ";") // -> "Andere;Keine Kosten am Fertigungsteil;Keine Kosten am Bestellteil/kein SVP;Weder Kostenstelle noch Kostenträger;Fehlende Sachmerkmale;Fehlendes Logistikkennzeichen"

 

Die Bit-Transformation in umgekehrter Richtung ist zur Zeit noch nicht verfügbar!  

Hinweis: Transform ist abhängig von der aktuellen Sprache (vergleiche Anweisung Language).
Wenn man den Enumerations-Namen als multilinguale Zeichenkette benötigt, soll Anweisung MLTransform benutzt werden

 

InstantView Scriptsprache