[FONT=courier new]FUNCTION fn-getSlots RETURNS INTEGER
(INPUT currperiod AS INTEGER,
INPUT invPeriod AS INTEGER):
/*------------------------------------------------------------------------------
Purpose: calculate the period and place in correct slot [1-6]
Notes:
------------------------------------------------------------------------------*/
DEFINE VARIABLE cslot AS CHAR NO-UNDO FORMAT "x(20)".
DEFINE VARIABLE cPeriod AS CHAR NO-UNDO.
DEFINE VAR i AS INTEGER NO-UNDO.
DEFINE VARIABLE li-Position AS INTEGER NO-UNDO.
ASSIGN cslot = "6,5,4,3,2,1".
REPEAT i = 1 TO 6:
IF i = 1 THEN
cperiod = STRING(currperiod).
ELSE ASSIGN cperiod = cperiod + ',' + STRING(currperiod).
IF currperiod MOD 100 = 1 THEN
ASSIGN currperiod = currperiod - 89.
ELSE ASSIGN currperiod = currperiod - 1.
END.
ASSIGN li-position = LOOKUP (STRING(invPeriod), cPeriod).
IF li-position = 0 THEN RETURN li-position.
IF invperiod > currperiod THEN RETURN 7.
RETURN INTEGER ( ENTRY (li-position,cSlot)).
END FUNCTION.
MESSAGE fn-getSlots (201106, 201107) VIEW-AS ALERT-BOX INFO BUTTONS OK.
[/FONT]