42 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			OpenEdge ABL
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			OpenEdge ABL
		
	
	
	
	
	
46400 #include "rundecs.h"
 | 
						|
46410     (*  COPYRIGHT 1983 C.H.LINDSEY, UNIVERSITY OF MANCHESTER  *)
 | 
						|
46420 (**)
 | 
						|
46430 (**)
 | 
						|
46440 FUNCTION COPYDESC(ORIGINAL: OBJECTP; NEWSORT: STRUCTYPE): OBJECTP; EXTERN;
 | 
						|
46450 FUNCTION GETMULT(NEWMULT: OBJECTP): OBJECTP; EXTERN;
 | 
						|
46460 FUNCTION GETSLN(NEWREFSLN:OBJECTP): OBJECTP; EXTERN;
 | 
						|
46470 (**)
 | 
						|
46480 (**)
 | 
						|
46490 FUNCTION SELECTR(AROWED: OBJECTP; TEMPLATE: DPOINT; ROFFSET: INTEGER): OBJECTP;
 | 
						|
46500 (*PSELECTROW*)
 | 
						|
46510   VAR ADESC: OBJECTP;
 | 
						|
46520     BEGIN
 | 
						|
46530     WITH AROWED^ DO
 | 
						|
46540       IF SORT=MULT THEN
 | 
						|
46550         BEGIN
 | 
						|
46560         ADESC := COPYDESC(AROWED, MULT);
 | 
						|
46570         ADESC^.PVALUE := AROWED;
 | 
						|
46580         SELECTR := GETMULT(ADESC);
 | 
						|
46590         END
 | 
						|
46600       ELSE
 | 
						|
46610         BEGIN
 | 
						|
46620         ADESC := COPYDESC(AROWED, REFSLN);
 | 
						|
46630         ADESC^.PVALUE := AROWED;
 | 
						|
46640         SELECTR := GETSLN(ADESC);
 | 
						|
46650         END;
 | 
						|
46660     WITH ADESC^ DO
 | 
						|
46670       BEGIN
 | 
						|
46680       MDBLOCK := TEMPLATE;
 | 
						|
46690       IF ORD(TEMPLATE)=0 (*DRESSED*) THEN SIZE := 1
 | 
						|
46700       ELSE IF ORD(TEMPLATE)<=MAXSIZE (*UNDRESSED*) THEN SIZE := ORD(TEMPLATE)
 | 
						|
46710         ELSE (*STRUCT*) SIZE := TEMPLATE^[0];
 | 
						|
46720       LBADJ := LBADJ-ROFFSET;
 | 
						|
46730       END
 | 
						|
46740     END;
 | 
						|
46750 (**)
 | 
						|
46760 (**)
 | 
						|
46770 (*-02() BEGIN END ; ()-02*)
 | 
						|
46780 (*+01()
 | 
						|
46790 BEGIN (*OF MAIN PROGRAM*)
 | 
						|
46800 END (*OF EVERYTHING*).
 | 
						|
46810 ()+01*)
 |