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,