MORDER/12 = DECODE INONTH(10 '1' 11 '2' 12 '3' 1 '4' 2 '5' 3 '6' 4 '7' 5 '6' 7 '8' 8 '9' 10 '8' 11 '9');
MORDER/12 = DECODE INONTH(6 '1' 7 '2' 8 '3' 9 '4' 10 '5' 11 '6' 12 '7' 1 '8' 2 '9' 3 '10' 4 '11' 5 '12');
DEFINE FILE xyz subMth /I2 = IF UsrSelectedMth EQ 1 THEN 0 ELSE UsrSelectedMth - 1; addMth /I2 = 12 - subMth; mthOrd /I2 = IF MthFld GE UsrSelectedMth THEN MthFld - subMth ELSE MthFld + addMth; END
mthOrd/I2 = IF MthFld GE usrSelectdMth THEN MthFld - subMth ELSE MthFld + addMth ; DEFINE FILE WF_RETAIL THEDATE/YYMD WITH ID_SALES = '&YYMD'; UsrSelectedMth/I2 = DPART(THEDATE, 'MM', 'I11'); subMth/I2 = IF UsrSelectedMth EQ 1 THEN 0 ELSE UsrSelectedMth - 1 ; addMth/I2 = 12 - subMth ; mthOrd/I2 = IF MthFld GE usrSelectdMth THEN MthFld - subMth ELSE MthFld + addMth ; END TABLE FILE WF_RETAIL PRINT UsrSelectedMth subMth addMth -*mthOrd BY THEDATE IF RECORDLIMIT EQ 1 END -EXIT
DEFINE FILE GGSALES INDATE/YYMD = '20090601'; INMONTH/M = INDATE; ININT/I2 = INMONTH; -* FILEMONTH/M = DATE; FILEINT/I2 = FILEMONTH; -* SORTORDER/I2 = IF FILEINT EQ ININT THEN 1 ELSE IF FILEINT GT ININT THEN FILEINT - ININT + 1 ELSE (12 - ININT + 1) + FILEINT; END TABLE FILE GGSALES PRINT REGION NOPRINT INDATE AS 'Incoming Date' INMONTH NOPRINT ININT NOPRINT -* DATE AS 'File Date' FILEMONTH NOPRINT FILEINT NOPRINT -* SORTORDER AS 'Sort Order' BY SORTORDER NOPRINT IF RECORDLIMIT EQ 30 END
Incoming Date File Date Sort Order ------------- --------- ---------- 2009/06/01 1997/06/01 1 2009/06/01 1997/06/01 1 2009/06/01 1997/07/01 2 2009/06/01 1997/07/01 2 2009/06/01 1996/07/01 2 2009/06/01 1997/07/01 2 2009/06/01 1997/08/01 3 2009/06/01 1996/09/01 4 2009/06/01 1997/09/01 4 2009/06/01 1996/09/01 4 2009/06/01 1997/09/01 4 2009/06/01 1996/09/01 4 2009/06/01 1997/09/01 4 2009/06/01 1997/10/01 5 2009/06/01 1997/10/01 5 2009/06/01 1996/10/01 5 2009/06/01 1996/10/01 5 2009/06/01 1996/11/01 6 2009/06/01 1996/11/01 6 2009/06/01 1997/11/01 6 2009/06/01 1996/12/01 7 2009/06/01 1997/12/01 7 2009/06/01 1996/12/01 7 2009/06/01 1997/01/01 8 2009/06/01 1997/03/01 10 2009/06/01 1997/03/01 10 2009/06/01 1997/04/01 11 2009/06/01 1997/04/01 11 2009/06/01 1997/05/01 12 2009/06/01 1997/05/01 12
quote:Originally posted by Tomsweb:
Is MthFld defined here?
DEFINE FILE GGSALES INDATE/I8YYMD = 19960301; INMONTH/I2 = DTPART(DATECVT(INDATE, 'I8YYMD', 'YYMD'), MONTH); -* FILEMONTH/I2 = DTPART(DATECVT(DATE, 'I8YYMD', 'YYMD'), MONTH); -* SORTORDER/I2 = IF (13 - INMONTH + FILEMONTH) GT 12 THEN (13 - INMONTH + FILEMONTH - 12) ELSE (13 - INMONTH + FILEMONTH); END
In FOCUS since 1986 | WebFOCUS Server 8.2.01M, thru 8.2.07 on Windows Svr 2008 R2 | ||
WebFOCUS App Studio 8.2.06 standalone on Windows 10 |
SORTORDER/I2 = MOD(FILEINT - ININT + 12, 12) + 1 ;