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*)
 |