Lade...
 

CX_TERMED_VALIDITY

CX_TERMED_VALIDITY

Klassenhierarchie
Beschreibung:

Diese Hilfsklasse repräsentiert den Gültigkeitszeitraum des Objektes in ClassiX®-System. Die Objekte ab Klasse CX_TERMED besitzen Pointer 'validity':
                            validity = NULL ... Gültigkeit unbeschränkt
                           validity = Objekt CX_TERMED_VALIDITY ... Objekt nur innerhalb des Zeitintervalls gültig

Die Objekte dieser Klasse werden implizit mit Funktion SpanDateValidity() (der Klasse CX_TERMED) erzeugt.
CX_TERMED_VALIDITY erbt von CX_VALIDITY (abstrakte Basisklasse) die Fähigkeit, mehrere, mit verschiedenen Gültigkeiten beinhaltete Objekte (CX_TERMED) zu einem Cluster zusammenzufassen. Wenn im ClassiX®-System zu einem Objekt eines solchen Clusters navigiert wird, erhält man automatisch das gerade gültige Objekt (oder NULL, wenn kein Objekt des Clusters gültig ist).

Code-Beispiel:
Module(Validity, HELP("validity.htm")) [ Var(p, a, a2, d, widgets, example) Define(CreatePerson)     CreatePersObject(CX_PERSON) -> p     p Put(name), p Put(firstName); Define(CreateAddress)     CreatePersObject(CX_STREET_ADDRESS) -> a     a Put(street), a Put(city), a Put(zipCode); Define(SessionDate)     GetObject p Call(SetSessionDate)     p FillWindow; Define(Example1)     CreateTransObject(CX_DATE) -> d     "-" d String + PutValue(, access[0].SpanDateValidity())     "Maik„ferstieg 3a", "21077", "Hamburg",      d 1 + String "-" d 8 + -> d d String + + // for 8 day only     widgets PutValue(, STACK), Unlock(, b); Define(Example2)     "Savignyplatz 5", "10623", "Berlin",     d 1 + String "-" +     widgets PutValue(, STACK), Unlock(, b); INITIALIZE: "Petra" "Panther" CreatePerson             "37083" "G”ttingen" "Weender Straáe 8" CreateAddress             1 p Put(sexEnum)             a p Insert(access, objects),              [ "street", "zipCode", "city", "SpanDateValidity()" ]             -> widgets              1 -> example ] Window(win1, LOAD, 4, 1, 718, 100, T("Gültigkeit", "Validity", "Validit‚")) [ INITIALIZE: p FillWindow ] { Menu { Item(T("neue Adresse", "new Address"))     [ SELECT: OpenWindow(win2)]     Item(T(Sprache, Language, Language))     { Item(T(deutsch, german, allemand))       [ SELECT: 0 Language(VIEW)]        Item(T(englisch, english, anglais))       [ SELECT: 1 Language(VIEW)]     }     Item(Exit)     [ SELECT: TerminateApp ] } Prompt(p0, FONT(0), 27, 11, T(Name, Name, Nom)) String(CX_PERSON::name, 111, 11, 190) Prompt(p1, FONT(0), 27, 25, T(Vorname, "First Name", "Pr‚nom")) String(CX_PERSON::firstName, 111, 25, 188) Enumeration(CX_PERSON::sexEnum, 111, 39, 120, 37) Prompt(ps, 27, 60, T(Sitzungsdatum, "Session Date")) Date(d, 175, 60, 120) [ C_UP: GetObject 1 + PutObject, SessionDate    C_DOWN: GetObject 1 - PutObject, SessionDate    SELECT: SessionDate ] Group(g0, 334, 11, 340, 50, T(Adresse, Address)) {     Prompt(p3, FONT(0), 8, 13, T("Straáe", "Street", Rue))     String(CX_PERSON::access[0].street, 80, 13, 235)     Prompt(p4, FONT(0), 8, 25, T(Stadt, City, "Cit‚"))     String(CX_PERSON::access[0].zipCode, 80, 25, 68)     String(CX_PERSON::access[0].city, 150, 25, 165)     Prompt(p5, FONT(0), HIDDEN, 8, 37, T("gültig", valid))     String(CX_PERSON::access[0].SpanDateValidity(), HIDDEN, 80, 37, 235) } } Window(win2, 75, 77, 770, 95, T("Neue Adresse", "New Address")) [ INITIALIZE: Alert(, g1) p FillWindow(, g0) ] { Menu { Item(i0, T(Beispiel, Example)) [ INITIALIZE: example 2 > if Lock   SELECT: example case 1: Example1, Incr(example)                        2: Example2, Incr(example)                   endCase ] } Group(g0, 33, 3, 340, 55, T(alt, old)) {     Prompt(FONT(0), 8, 13, T("Straáe", "Street", Rue))     String(CX_PERSON::access[0].street, 80, 13, 235)     Prompt(FONT(0), 8, 25, T(Stadt, City, "Cit‚"))     String(CX_PERSON::access[0].zipCode, 80, 25, 68)     String(CX_PERSON::access[0].city, 150, 25, 165)     Prompt(FONT(0), 8, 40, T("gültig", valid))     String(CX_PERSON::access[0].SpanDateValidity(), 80, 40, 235)     [ F3: "-" CreateTransObject(CX_DATE) String + PutValue ] } Group(g1, 390, 3, 340, 55, T(neu, new)) {     Prompt(p3, FONT(0), 8, 13, T("Straáe", "Street", Rue))     String(CX_STREET_ADDRESS::street, 80, 13, 235)     [ ALTERED: Unlock(, b)]     Prompt(p4, FONT(0), 8, 25, T(Stadt, City, "Cit‚"))     String(CX_STREET_ADDRESS::zipCode, 80, 25, 68)     [ ALTERED: Unlock(, b)]     String(CX_STREET_ADDRESS::city, 150, 25, 165)     [ ALTERED: Unlock(, b)]     Prompt(FONT(0), 8, 40, T("gültig", valid))     String(CX_STREET_ADDRESS::SpanDateValidity(), 80, 40, 235)     [ ALTERED: Unlock(, b)     F3: CreateTransObject(CX_DATE) String "-" + PutValue ] } Button(b, NON_SELECTABLE, 30, 59, 100, 8, T(zuordnen, assign)) [ SELECT: CreatePersObject(CX_STREET_ADDRESS) -> a2         a2 p Call(access[0], Link)         p DrainWindow(, g0)         a2 DrainWindow(, g1) // now show validity in window 1, too          Show(win1, p5) Show(win1, access[0].SpanDateValidity())         p FillWindow(win1)     CloseWindow ]  }