#include %occErrors #include %occStatus #include %occIO // Koppeling tussen User en IP adres / IO-device = #define clNone $ZH("000000") #define clRed $ZH("000000") #define UserFromDevice(%v) $$$TextBetween(%v,"|TNT|","_") #define SystemUser "4682||0" #define IctSysOp "ICT_SysOp@vanhoecke.be" #define IctMeldingen "ICT_Meldingen@vanhoecke.be" // Constants #define CRLF $C(13,10) #define LF $C(10) #define CR $C(13) #define TAB $C(9) #define NUL $C(0) #define D "\" #define PI 3.141592 #define MAXINT 2147483647 // Math #define Min(%v1,%v2) $S(%v1<%v2:%v1, 1:%v2) #define Max(%v1,%v2) $S(%v1>%v2:%v1, 1:%v2) #define Not(%v) ('(%v)) #define ValIsBetween(%v,%min,%max) ((%v'<(%min))&&(%v'>(%max))) #define true 1 #define True 1 #define false 0 #define False 0 #define Timestamp(%timearg) $zdatetime(%timearg,3,,6) // Time Conversion #define FormatHMS(%v) $TR("HRu MNmin SCs.","HR:MN:SC",$ZT(%v,1)) #define FormatYMDHMS(%v,%sep) $TR($ZDT(%v,8)," :",%sep) // Cache Objects ($$$METH... --> zie %occReference2.INC) #define Server $zconvert($ZU(110),"U") #define NSpace $ZU(5) #define IsClassMethod(%cls,%mth) $$$METHclassmethod($$$MGINFO,%cls,%mth) #define IsWebMethod(%cls,%mth) $$$METHwebmethod($$$MGINFO,%cls,%mth) #define MethodID(%cls,%mth) $$$METHid($$$MGINFO,%cls,%mth) #define IsMethod(%cls,%mth) ($$$MethodID(%cls,%mth)>0) // String #define Strip(%v) $ZSTRIP(%v,"<>CW") #define Trim(%v) $ZSTRIP(%v,"<>W") #define DePunc(%v) $TR($G(%v),",?;.:/=+-_&|'(!)~{}[]^`%$=<>""","") #define DeSpace(%v) $translate(%v," ","") #define UCase(%v) $ZCVT(%v,"U") #define LCase(%v) $ZCVT(%v,"L") // FCase: First character UpperCase, rest is unchanged #define FCase(%v) $ZCVT($E(%v,1),"U")_$E(%v,2,$L(%v)) #define Right(%v,%n) $E(%v,$L(%v)-%n+1,999) #define RightN(%v,%n) $E(%v,$L(%v)-%n+1,999) #define Right1(%v) $E(%v,$L(%v)) #define LastPiece(%v,%d) $P(%v, %d, $L(%v,%d)) #define TextBetween(%v,%f,%t) $P($P(%v,%f,2),%t,1) #define Replace(%v,%f,%t) $$Replace^vhLib.String(%v,%f,%t) // PieceFind: analoog aan $Find(String,SubString) en $ListFind(), maar nu ook de Delimiter opgeven #define PieceFind(%s,%ss,%d) $L($P(%s,%ss),%d) // StartsWith and StartsWithVar : als de tweede parameter (%ss) een variabele is, gebruik $$$StartsWithVar(), voor vaste tekst als zoekstring: gebruik $$$StartsWith() . #define StartsWith(%s,%ss) (%s?1%ss.E) #define StartsWithVar(%s,%ss) (($P(%s,%ss,1)="")&&($L(%s))) #define Contains(%s,%ss) ($F(%s,%ss)>0) #define IfLength(%value,%Prefix,%Suffix) $select($length(%value):%Prefix_%value_%Suffix,1:"") #define HasLength(%val) ($length(%val)>0) #define IsEmptyString(%val) (%val="") #define IsNullOrEmpty(%val) (%val="")||(%val=$c(0)) #define IsNotNullOrEmpty(%val) ('((%val="")||(%val=$c(0)))) #define SingleQuotes(%v) "'"_%v_"'" #define DoubleQuotes(%v) """"_%v_"""" #define TussenQuotes(%v) """"_%v_"""" #define EnkeleQuotes """" #define DubbeleQuotes """""" //Excel format #define ExcelNum(%v) $$ExcelNum^vhLib(%v) #define ExcelDat(%v) $$EXTDATE^vhLib.DataTypes(%v,"DK") #define ExcelDateAsNum(%v) %v-21548 #define ExcelTime(%v) $zt(%v) #define ExcelTimeStamp(%v) $zdt(%v) // Arrays #define NodeHasData(%v) ($D(%v)#10) #define NodeHasSubNodes(%v) ($D(%v)>1) #define aHasData(%v) ($D(%v)#10) #define aHasSubNodes(%v) ($D(%v)>1) /* #define ArrayTT(%r) $C(13,10)_$$ArrayToText^vhLib(%r) */ #def1arg ArrayTT(%r) $C(13,10)_$$ArrayToText^vhLib(%r) #define ArrayTT2(%r,%a) $C(13,10)_$$ArrayToText^vhLib(%r,%a) #define ArrayTT3(%r,%o,%p) $C(13,10)_$$ArrayToText^vhLib(%r,%o,%p) // ListBuilds #define LCVT(%v) $$LCVT^vhLib(%v) #define IsList(%v) $$IsList^vhLib(%v) #define LBDeleteAt(%lb,%i) $LI(%lb,1,%i-1)_$LI(%lb,%i+1,-1) #define DoLBDeleteAt(%lb,%i) Set $LI(%lb,%i,%i)="" #define DoLBDeleteAtIf(%c,%lb,%i) Set:(%c) $LI(%lb,%i,%i)="" // CSP-HTML-URL #define HTML(%v) $$ConvertToHTML^vhRtn1(%v) #define HTML2(%v) $ZCVT(%v,"O","HTML") #define QuoteJS(%v) ##class(%CSP.Page).QuoteJS(%v) #define URL(%v) $ZCVT(%v,"O","URL") #define XML(%v) $ZCVT(%v,"O","UTF8") /* // Gebruik van LBDeleteAt: // =-=-=-=-=-=-=-=-=-=-=-= $$$DoLBDeleteAt(MyLB,5) $$$DoLBDeleteAtIf(Cond,MyLB,5) If (cond) $$$DoLBDeleteAt(MyLB,5) */ #define ClassParameter(%v) ##class(%Library.CompiledParameter).%OpenId(%v).Default #define AddErrorToList(%List,%Code,%Desc) set %List = %List _ $listbuild($listbuild(%Code,%Desc)) #define SystemMail(%v) """"_%v_""" " #define Lock(%i,%t) Lock +^LOCKS(%i):%t #define LockObj(%o,%i,%t) Lock +^LOCKS(%o.%ClassName(1),%i):%t #define LockObjCon(%p,%o,%i,%t) Lock:%p +^LOCKS(%o.%ClassName(1),%i):%t #define UnLock(%i) Lock -^LOCKS(%i) #define UnLockObj(%o,%i) Lock -^LOCKS(%o.%ClassName(1),%i) #define UnLockObjCon(%p,%o,%i) Lock:%p -^LOCKS(%o.%ClassName(1),%i) #define StripC0(%Local) $S($C(0)[$G(%Local):"",1:%Local) #define LeftPadding(%s,%l,%c) $translate($justify(%s,%l)," ",$select(%c="":0,1:%c)) #define ConfigGetString(%s) ##class(TECH.Config.ConfigMgr).Instance().GetString(%s) #define ConfigGetBoolean(%s) ##class(TECH.Config.ConfigMgr).Instance().GetBoolean(%s) #define Implementation(%v,%i) $select($isobject($get(%v)):%v,1:%i) #define Inject(%v,%i) $select($isobject($get(%v)):%v,1:%i) #define LazyInstance(%v,%i) $select($isobject(%v):%v,1:%i) #define LazyLoad(%v,%i) $select($isobject(%v):%v,1:%i) #define LaatsteGlobalReferentie $ZR #define If(%statement,%true,%false) $select(%statement:%true,1:%false) #define IfThen(%statement,%true,%false) if %statement { do %true } else { do %false } #define ConcurrenyNoLocks 0 #define ConcurrenyAtomic 1 #define ConcurrenyShared 2 #define CurrentDate ##class(TECH.Context).Instance().GeefDateTimeAPI().CurrentDate() #define CurrentHorolog ##class(TECH.Context).Instance().GeefDateTimeAPI().CurrentHorolog() #define CurrentTimeStamp ##class(TECH.Context).Instance().GeefDateTimeAPI().CurrentTimeStamp() #define IsValidListOfDT(%v) (($IsObject(%v)) && (%v.%Extends("%Collection.AbstractListOfDT"))) #define KeyValuePair(%k,%v) ##class(TECH.KeyValuePair).%New(%k,%v) #define NOTOK -1