Codeblock Onlinehilfe

TBeasCustomCbServiceParam

TBeasCustomCbServiceParam

Diese Klasse stellt die Basis-Klasse für den Zugriff auf beas-Service-Parameter im Codeblock dar.

Eigenschaften

Eigenschaft

Beschreibung

Name:C


ParamCount:N

Anzahl der enthaltenen Unter-Elemente

ParamType:N

Typ des Haupt-Elements 0 - "Simple" 1 - "Complex" 2 - "Array"

Tag:N


Methoden

Methode

Beschreibung

AssignTo(Dest:O)

Element komplett auf ein anderes Element kopieren Dest:O - TBeasCustomServiceParamItem-Objekt

Assign(Source:O)

Element komplett von einem anderen Element kopieren Source:O - TBeasCustomServiceParamItem-Objekt

InitCbParam()

Haupt-Element initialisieren, entspricht InitParamType("Complex")

InitCbParamFromJSON(aJSONString:C)


InitParamType(aType:N)

Typ des Haupt-Elements setzen aType:N - Typ siehe ParamType

Clear()

Haupt-Element zurücksetzen und alle Unter-Elemente löschen

IsEmpty():L

True, falls keine Unter-Elemente vorhanden sind

ParamExists(aName:C):L

prüfen ob ein Unter-Element mit diesem Namen existiert aName:C - Name des Unter-Elements oder eine Kette aus Namen mit "." getrennt z.b. "Element1.Element1VonElement1"

IsSameParam(aParam:O):L

prüfen ob das Element identisch ist aParam:O - TBeasCustomCbServiceParam-Objekt mit welchen der Vergleich erfolgen soll

IsReadOnly():L

ReadOnly-Modus aktiv

CanChangeParams():L

Prüfung ob Unter-Elemente verändert werden dürfen

CanAddParams():L

Prüfung ob Elemente hinzugefügt werden dürfen

CanDeleteParams():L

Prüfung ob Unter-Elemente gelöscht werden dürfen

AddParam(aName:C, aValue:U):O

Element vom Typ "Simple" hinzufügen aName:C - Name des Elements aValue:U - Wert des Elements

AddComplexParam(aName:C):O

Element vom Typ "Complex" hinzufügen aName:C - Name des Elements

AddArrayParam(aName:C):O

Element vom Typ "Array" hinzufügen aName:C - Name des Elements

DeleteParam(aName:C)

Element löschen Existiert dieser Name nicht wird eine Exception ausgelöst. aName:C - Name des Unter-Elements oder eine Kette aus Namen mit "." getrennt z.b. "Element1.Element1VonElement1"

DeleteAllParams()

Alle Unter-Elemente löschen

Param(aParamName:C):O

Zugriff auf ein Unter-Element mit diesem Namen. Existiert dieser Name nicht wird eine Exception ausgelöst. aName:C - Name des Unter-Elements oder eine Kette aus Namen mit "." getrennt z.b. "Element1.Element1VonElement1"

ParamValue(aName:C):U

Zugriff auf den Wert eines Unter-Elements. Existiert dieser Name nicht wird eine Exception ausgelöst. aName:C - Name des Unter-Elements oder eine Kette aus Namen mit "." getrennt z.b. "Element1.Element1VonElement1"

ParamValueDef(aName:C, aDefaultValue:U):U

Zugriff auf den Wert eines Unter-Elements. Existiert dieser Name nicht wird der Default-Wert zurück gegeben. aName:C - Name des Unter-Elements oder eine Kette aus Namen mit "." getrennt z.b. "Element1.Element1VonElement1" aDefaultValue:U - Default-Wert, falls aName nicht existiert

ParamName(aIndex:N):C

Name eines Unter-Elements über den Index ermitteln aIndex:N - Index des Unter-Elements

UpdateElementValue(aName:C, aValue:U)


CbCopyTo(aServiceParam:O)

Alle Einstellungen und Unter-Elemente kopieren aServiceParam:O - TBeasCustomCbServiceParam-Objekt auf welches kopiert werden soll

CbToJSONString():C

Ausgabe als JSON-Formatierter Text

CbToJSONStringIndent():C

Ausgabe als JSON-Formatierter Text mit Einzügen

Beispiel

//******************************************************************************//******************************************************************************
// Parameter aufbauen mit Kontakten und einem Context
// Mit diesem Parameter werden dann einige Add/Delete/usw. Funktionen ausgeführt
// und den Parameter ggf. zur Anzeige ausgegeben
//******************************************************************************//******************************************************************************
|oParams, oContacts, oContext|

//******************************************************************************
// neuen Kontakt hinzufügen
//******************************************************************************
function AddContact(cName, nAge, cGender, aHobbies)
  |oContact, oHobbies, i|

  oContact := oContacts.AddComplexElement(''),
  oContact.AddElement('name', cName),
  oContact.AddElement('age', nAge),
  oContact.AddElement('gender', cGender),
  oHobbies := oContact.AddArrayElement('hobbies'),
  for i := 1 to ALen(aHobbies) do
     oHobbies.AddArrayValue(aHobbies[i]),
  next,
end,

//******************************************************************************
// spezielles Hobby aus allen Kontakten entfernen
//******************************************************************************
function DeleteContactHobby(cHobby)
  |oHobbies, i, j|

  for i := 0 to oContacts.ElementCount - 1 do
     oHobbies := oContacts.Element(Str(i) + '.' + 'hobbies'),
     for j := oHobbies.ElementCount - 1 downto 0 do
        if oHobbies.ElementValue(Str(j)) = cHobby then
           oHobbies.DeleteElement(Str(j)),
        endif,
     next,
  next,
end,

//*****************************************************************************<h3>
oParams := CreateObject('TBeasCbServiceOutputParam'),
oParams.InitCbParam(),
oContacts := oParams.AddArrayParam('contacts'),
oContext  := oParams.AddComplexParam('context'),

// Context befüllen
oContext.AddElement('sender', 'codeblock'),
oContext.AddElement('time', Now()),
oContext.AddElement('showjson', True),  // hiermit wird die Ausgabe gesteuert

// Kontakte hinzufügen
AddContact('Karl',    27, 'm', {'Fußball', 'Handball'}),
AddContact('Osmana',  43, 'w', {'Essen', 'Lesen'}),
AddContact('Phillip', 19, 'm', {'Fußball', 'Basketball', 'Kino'}),
AddContact('Swenja',  33, 'w', {'Schwimmen', 'Tanzen'}),
AddContact('Patrik',  57, 'm', {'Formel1'}),

if oParams.ParamValueDef('context.showjson', False) then
   writeln('--- Parameter ---'),
   writeln(oParams.CbToJSONStringIndent()),
endif,

// alle Hobbies "Fußball" entfernen
DeleteContactHobby('Fußball'),
if oParams.ParamValueDef('context.showjson', False) then
   writeln('--- Hobbie Fußball entfernt ---'),
   writeln(oParams.CbToJSONStringIndent()),
endif,

// Kontext "sender" entfernen
oContext.DeleteElement('sender'),
if oParams.ParamValueDef('context.showjson', False) then
   writeln('--- Kontext sender entfernt ---'),
   writeln(oParams.CbToJSONStringIndent()),
endif,

// alle Kontakte entfernen
oContacts.DeleteAllElements(),
if oParams.ParamValueDef('context.showjson', False) then
   writeln('--- Kontakte entfernt ---'),
   writeln(oParams.CbToJSONStringIndent()),
endif,

// Kontakt-Parameter komplett zurücksetzen
oContacts.Clear(),  // hier wird auch der Name des Elements entfernt!
if oParams.ParamValueDef('context.showjson', False) then
   writeln('--- Kontakte entfernt ---'),
   writeln(oParams.CbToJSONStringIndent()),
endif,

Weitere Verknüpfungen