Reusable Part S_154RIW: Domino Item Wrapper Component

LANSA

Reusable Part S_154RIW: Domino Item Wrapper Component
Name: S_154RIW

Description: The following RDMLX reusable part is a wrapper component designed to contain and yield the current value of a Domino database cell.
;
* ======================================;
* ======================================;
* ======================================;
* S_154RIW : Domino Item Wrapper Component;
* ======================================;
* ======================================;
* ======================================;
* ;
* Disclaimer: The following material is supplied as example material only. ;
* ---------------- No warranty concerning this material or its use in any way;
* whatsoever is expressed or implied. ;
* ;
;
FUNCTION OPTIONS(*DIRECT);
BEGIN_COM DISPLAYPOSITION(1) HEIGHT(16) LEFT(0) TABPOSITION(1) TABSTOP(False) TOP(0) WIDTH(20);
;
Define #Dom_EXIST RefFld(#Std_Codes) Default(N) ;
Define #Dom_NAME *char 65;
Define #Dom_TYPE *dec 3 0 Default(2);
Define #Dom_AVAL *char 256;
Define #Dom_NVAL *dec 15 5 ;
Define #DOM_NDEC *dec 7 0 ;
Define #DOM_KEYN *dec 7 0 ;
;
Define_Pty Item Get(GetItem) Set(SetItem);
Define_Pty Type Get(GetType) Set(SetType);
Define_Pty NumericValue get(GetNumericValue) Set(SetNumericValue);
Define_Pty AlphaValue Get(GetAlphaValue) Set(SetAlphaValue) ;
Define_Pty NumDecimals Get(GetNoDecimals) Set(SetNoDecimals) ;
Define_Pty KeyNum Get(GetKeyNo) Set(SetKeyNo) ;
;
Def_Cond *Exists '#Dom_EXIST = Y';
Def_Cond *IsKey ' (#Dom_EXIST = Y) and (#Dom_KEYN > 0)';
;
Define_Evt ItemValueExists;
Define_Evt KeyValueExists;
Define_Map *Input #Std_Num #KeyNumber;
Define_Map *Input #Sysvar$Av #Expression;
;
* =========================================================================================== ;
;
PtyRoutine SetItem;
Define_Map *Input #Std_Text #Prop001;
Change #Dom_NAME #Prop001.Value ;
Change #Dom_EXIST Y ;
EndRoutine ;
;
* =========================================================================================== ;
;
PtyRoutine GetItem;
Define_Map *Output #Std_Text #Prop002;
Set #Prop002 Value(#Dom_NAME) ;
EndRoutine ;
;
* =========================================================================================== ;
;
PtyRoutine SetType;
Define_Map *Input #Std_Num #Prop003;
Change #Dom_TYPE #Prop003.Value ;
EndRoutine ;
;
* =========================================================================================== ;
;
PtyRoutine GetType;
Define_Map *Output #Std_Num #Prop004;
Set #Prop004 Value(#Dom_TYPE) ;
EndRoutine ;
;
* =========================================================================================== ;
;
PtyRoutine SetNumericValue;
Define_Map *Input #Std_NumL #Prop005;
Change #Dom_NVAL #Prop005.Value ;
EndRoutine ;
;
* =========================================================================================== ;
;
PtyRoutine GetNumericValue;
Define_Map *Output #Std_NumL #Prop006;
Set #Prop006 Value(#Dom_NVAL) ;
EndRoutine ;
;
* =========================================================================================== ;
;
PtyRoutine SetAlphaValue;
Define_Map *Input #Sysvar$Av #Prop007;
Change #Dom_AVAL #Prop007.Value ;
EndRoutine ;
;
* =========================================================================================== ;
;
PtyRoutine GetAlphaValue;
Define_Map *Output #Sysvar$Av #Prop008;
Set #Prop008 Value(#Dom_AVAL) ;
EndRoutine ;
;
* =========================================================================================== ;
;
PtyRoutine SetNoDecimals;
Define_Map *Input #Std_num #Prop009;
Change #Dom_NDEC #Prop009.Value ;
EndRoutine ;
;
* =========================================================================================== ;
;
PtyRoutine GetNoDecimals;
Define_Map *Output #Std_Num #Prop010;
Set #Prop010 Value(#Dom_NDEC) ;
EndRoutine ;
;
* =========================================================================================== ;
;
PtyRoutine SetKeyNo;
Define_Map *Input #Std_Num #Prop011;
Change #Dom_KEYN #Prop011.Value ;
EndRoutine ;
;
* =========================================================================================== ;
;
PtyRoutine GetKeyNo;
Define_Map *Output #Std_Num #Prop012;
Set #Prop012 Value(#Dom_KEYN) ;
EndRoutine ;
;
* =========================================================================================== ;
;
MthRoutine EnumerateValues;
If *Exists ;
Signal ItemValueExists;
Endif ;
EndRoutine ;
;
* =========================================================================================== ;
;
MthRoutine EnumerateKeys;
If *IsKey ;
;
Define #WorkDec0 *dec 15 0 ;
Define #WorkDec1 *dec 16 1 ;
Define #WorkDec2 *dec 17 2 ;
Define #WorkDec3 *dec 18 3 ;
Define #WorkDec4 *dec 19 4 ;
Define #WorkDec5 *dec 20 5 ;
Define #WorkDec6 *dec 21 6 ;
Define #WorkDec7 *dec 22 7 ;
Define #WorkDec8 *dec 23 8 ;
Define #WorkDec9 *dec 24 9 ;
Define #WorkChar *char 31;
Define #WorkDec15 RefFld(#Dom_NVAL) ;
Define #WorkSign *char 1;
;
Use TConcat ('(' #Dom_NAME ' =') (#SysVar$Av ) ;
;
Case #DOM_Type;
When '= 2';
Use TConcat (#SysVar$Av *Blanks *Quote #Dom_AVAL *Quote) (#SysVar$Av) ;
OtherWise ;
Change #WorkDec15 #Dom_NVAL ;
If '#WorkDec15 < 0';
Change #WorkDec15 '0 - #WorkDec15' ;
Change #WorkSign '''-''';
Else ;
Change #WorkSign *Null;
Endif ;
Case #Dom_NDEC;
When '= 1';
Change #WorkDec1 #WorkDec15 ;
Use Numeric_String (#WorkDec1) (#WorkChar) ;
When '= 2';
Change #WorkDec2 #WorkDec15 ;
Use Numeric_String (#WorkDec2) (#WorkChar) ;
When '= 3';
Change #WorkDec3 #WorkDec15 ;
Use Numeric_String (#WorkDec3) (#WorkChar) ;
When '= 4';
Change #WorkDec4 #WorkDec15 ;
Use Numeric_String (#WorkDec4) (#WorkChar) ;
When '= 5';
Change #WorkDec5 #WorkDec15 ;
Use Numeric_String (#WorkDec5) (#WorkChar) ;
When '= 6';
Change #WorkDec6 #WorkDec15 ;
Use Numeric_String (#WorkDec6) (#WorkChar) ;
When '= 7';
Change #WorkDec7 #WorkDec15 ;
Use Numeric_String (#WorkDec7) (#WorkChar) ;
When '= 8';
Change #WorkDec8 #WorkDec15 ;
Use Numeric_String (#WorkDec8) (#WorkChar) ;
When '= 9';
Change #WorkDec9 #WorkDec15 ;
Use Numeric_String (#WorkDec9) (#WorkChar) ;
Otherwise ;
Change #WorkDec0 #WorkDec15 ;
Use Numeric_String (#WorkDec0) (#WorkChar) ;
Endcase ;
Use TConcat (#SysVar$Av #WorkSign #WorkChar) (#SysVar$Av) ;
EndCase ;
;
Use TConcat (#SysVar$Av ')' ) (#SysVar$Av) ;
;
Signal KeyValueExists Expression(#SysVar$av) KeyNumber(#Dom_KEYN);
;
Endif ;
EndRoutine ;
;
* =========================================================================================== ;
;
MthRoutine Destroy;
Change #Dom_EXIST N ;
Change #Dom_TYPE 2;
Change (#Dom_KEYN #Dom_NDEC #Dom_NAME #Dom_AVAL #Dom_NVAL) *Null ;
EndRoutine ;
;
;
END_COM ;