This example demonstrates the use of the &ATTVL EDA to extract values.
$$
$$ Declarations
$$
GRIPSW/declrv
NUMBER/I
ENTITY/CR(3)
STRING/ATT(12,132),PR(6,132)
CR(1)=CIRCLE/1,1,.5
CR(2)=CIRCLE/2,1,.5
CR(3)=CIRCLE/3,1,.5
$$ DECLARE INTEGER ATTRIBUTE
ATT(1)='HOLE DEPTH'
ATT(2)='2'
$$ DECLARE FLOATING POINT ATTRIBUTE
ATT(3)='HOLE WIDTH'
ATT(4)='1.75'
$$ DECLARE DATE & TIME ATTRIBUTE
ATT(5)='DATE CREATED'
ATT(6)='06/25/92 14:35'
$$ DECLARE A NULL ATTRIBUTE
ATT(7)='NULL DATA'
$$ TO DECLARE A STRING ATTRIBUTE
ATT(9)='HOLE DESC'
ATT(10)='This hole was created '$
+'on jun 25, 92 at 2:35pm and has a NULL attribute.'
$$ DECLARE A REFERENCE
EXPCRE/'DEPTH = 2'
EXPCRE/'WIDTH = 1.75'
ATT(11)='HOLE DIMS'
ATT(12)='This hole is <X2.2@DEPTH> inches deep '$
+'and <X2.2@WIDTH> inches wide.'
ASATT/CR(1),ATT(1..2),1
ASATT/CR(2),ATT(3..4),2
ASATT/CR(3),ATT(5..6),3
ASATT/CR(3),ATT(7..8),4
ASATT/CR(3),ATT(9..10)
ASATT/CR(3),ATT(11..12),6
PR(1)=&ATTVL(CR(1),'HOLE DEPTH',1)
PR(2)=&ATTVL(CR(2),'HOLE WIDTH', 2)
PR(3)=&ATTVL(CR(3),'DATE CREATED',3)
PR(4)=&ATTVL(CR(3),'NULL DATA',4)
PR(5)=&ATTVL(CR(3),'HOLE DESC')
PR(6)=&ATTVL(CR(3),'HOLE DIMS')
PRINT/'HOLE DEPTH REPORT'
DO/L1:,I,1,6
PRINT/PR(I)
L1:
HALT
You can obtain the first title for CR(1) by using the attribute title EDA. That title can then be used to edit the value for the hole depth:
TLE=&ATTTL(CR(1),1,1)
&ATTVL(CR(1),TLE,1)='20'