SETS:
   TASKS / 
    @OLE( 'C:\LINGO5\SAMPLES\PERTOLE.XLS', 'TASKS')/:
     TIME, ES, LS, SLACK;

   PRED( TASKS, TASKS) / 
    @OLE( 'C:\LINGO5\SAMPLES\PERTOLE.XLS', 
     'BEFORE', 'AFTER')/:Z;
ENDSETS
DATA: TIME = @OLE( 'C:\LINGO5\SAMPLES\PERTOLE.XLS'); @OLE( 'C:\LINGO5\SAMPLES\PERTOLE.XLS') = ES, LS; ENDDATA @FOR( TASKS( J)| J #GT# 1: ES( J) = @MAX( PRED( I, J): ES( I) + TIME( I)) ); @FOR( TASKS( I)| I #LT# LTASK: LS( I) = @MIN( PRED( I, J): LS( J) - TIME( I)); ); @FOR( TASKS( I): SLACK( I) = LS( I) - ES( I)); ES( 1) = 0; LTASK = @SIZE( TASKS); LS( LTASK) = ES( LTASK);