code
Userdata
Name
Astradyne (UK) Ltd
Scriptlanguage
Plain Text
Tabwidth
4
Date
Mon, 21 May 2007 20:18:52 +0100
IP
192.168.0.33
Description
A sub-procedure that can be used to retrieve system values into an ILE program.
Code
*****************
*** COPY BOOK ***
*****************
D* Common API Error Structure
D/IF NOT DEFINED(API_ERROR)
D/DEFINE API_ERROR
D ApiError DS
D ApiBytes 10I 0 Inz(%Size(ApiError))
D ApiBytesOut 10I 0
D ApiErrID 7A
D ApiReserved 1A
D ApiErInDta 256A
D/ENDIF
D RtvSysVal pr 2080a Varying
D iSysval 10a Const
D QwcRsvAL pr ExtPgm('QWCRSVAL')
D valRcvVar Like(RcvVariable)
D valRcvVarLen 10i 0 Const
D valNoSysVals 10i 0 Const
D valSysValName 10a Const
D valErrCode Like(ApiError)
D RcvVariable ds
D rcvNbrSysVals 10i 0
D rcvOffSysVals 10i 0
D rcvSysValTbl Like(SysValInfTbl)
D SysValInfTbl ds
D tblSysVal 10a
D tblDtaTyp 1a
D tblInfSts 1a
D tblDtaLen 10i 0
D tblDtaVal 2080a
D tblChar001 1a Overlay(tblDtaVal : 1)
D tblChar002 2a Overlay(tblDtaVal : 1)
D tblChar003 3a Overlay(tblDtaVal : 1)
D tblChar004 4a Overlay(tblDtaVal : 1)
D tblChar005 5a Overlay(tblDtaVal : 1)
D tblChar006 6a Overlay(tblDtaVal : 1)
D tblChar007 7a Overlay(tblDtaVal : 1)
D tblChar008 8a Overlay(tblDtaVal : 1)
D tblChar009 9a Overlay(tblDtaVal : 1)
D tblChar010 10a Overlay(tblDtaVal : 1)
D tblChar013 13a Overlay(tblDtaVal : 1)
D tblChar020 20a Overlay(tblDtaVal : 1)
D tblChar030 30a Overlay(tblDtaVal : 1)
D tblChar050 50a Overlay(tblDtaVal : 1)
D tblChar080 80a Overlay(tblDtaVal : 1)
D tblChar150 150a Overlay(tblDtaVal : 1)
D tblChar160 160a Overlay(tblDtaVal : 1)
D tblChar250 250a Overlay(tblDtaVal : 1)
D tblChar315 315a Overlay(tblDtaVal : 1)
D tblChar500 500a Overlay(tblDtaVal : 1)
D tblBin004 10i 0 Overlay(tblDtaVal : 1)
D* Figurative constants...
D Binary c Const('B')
D Char c Const('C')
D Locked c Const('L')
*****************
*** PROCEDURE ***
*****************
P RtvSysVal b Export
D* Procedure interface
D RtvSysVal pi 2080a Varying
D iSysVal 10a Const
D Wk010a s 10a
D wSysVal s 10a
D Pos s 5p 0
D Len s 5p 0
C* Procedure calculation specifications
C* Call the API...
C Reset ApiError
C Eval wSysVal = CvtCase(iSysVal : 10 : '*UPPER')
C CallP QwcRsvAL(RcvVariable :
C %Len(RcvVariable) :
C 1 :
C wSysVal :
C ApiError )
C* If any errors generated then return an error flag...
C If ApiBytesOut <> 0
C Return '*ERROR: ' + ApiErrID
C* ...otherwise return the appropriate value...
C Else
C Eval Pos = rcvOffSysVals - 8 + 1
C Eval Len = %Len(SysValInfTbl) - Pos + 1
C Eval SysValInfTbl = %Subst(RcvSysValTbl :
C Pos : Len)
C Select
C When tblDtaTyp = Binary
C Movel tblBin004 wk010a
C Return Wk010a
C When tblDtaTyp = Char And tblDtaLen = 0001
C Return tblChar001
C When tblDtaTyp = Char And tblDtaLen = 0002
C Return tblChar002
C When tblDtaTyp = Char And tblDtaLen = 0003
C Return tblChar003
C When tblDtaTyp = Char And tblDtaLen = 0004
C Return tblChar004
C When tblDtaTyp = Char And tblDtaLen = 0005
C Return tblChar005
C When tblDtaTyp = Char And tblDtaLen = 0006
C Return tblChar006
C When tblDtaTyp = Char And tblDtaLen = 0007
C Return tblChar007
C When tblDtaTyp = Char And tblDtaLen = 0008
C Return tblChar008
C When tblDtaTyp = Char And tblDtaLen = 0009
C Return tblChar009
C When tblDtaTyp = Char And tblDtaLen = 0010
C Return tblChar010
C When tblDtaTyp = Char And tblDtaLen = 0013
C Return tblChar013
C When tblDtaTyp = Char And tblDtaLen = 0020
C Return tblChar020
C When tblDtaTyp = Char And tblDtaLen = 0030
C Return tblChar030
C When tblDtaTyp = Char And tblDtaLen = 0050
C Return tblChar050
C When tblDtaTyp = Char And tblDtaLen = 0080
C Return tblChar080
C When tblDtaTyp = Char And tblDtaLen = 0150
C Return tblChar150
C When tblDtaTyp = Char And tblDtaLen = 0160
C Return tblChar160
C When tblDtaTyp = Char And tblDtaLen = 0250
C Return tblChar250
C When tblDtaTyp = Char And tblDtaLen = 0315
C Return tblChar315
C When tblDtaTyp = Char And tblDtaLen = 0500
C Return tblChar500
C When tblDtaTyp = Char And tblDtaLen = 2080
C Return tblDtaVal
C Other
C Return '*ERROR: Locked'
C EndSl
C EndIf
P RtvSysVal e
for more source code examples, visit the
»
Astradyne (UK) Source Code Library
«