0 ERROR AT OR NEAR LINE 8 IN PROCEDURE TEST_TRN58FOCEXEC * (FOC36355) INVALID TYPE OF ARGUMENT #2 FOR USER FUNCTION DATEDIF (FOC101) ERROR IN DEFINE IN MASTER FILE: APPLICATIONS/APP_APPLICATIONS_REGS_PRE
What am I doing wrong? Any help would be awesome, thanks.This message has been edited. Last edited by: FP Mod Chuck,
WebFocus 8.104 Windows 7 Entreprise, SP1
May 07, 2018, 05:03 PM
Waz
Because your DATE field is format YYMD, I would suggest converting your TERM field to a smart date, YYMD, then just subtract one from the other.
TABLE FILE CAR
PRINT
COMPUTE TERM/A6 = '200601' ;
COMPUTE DATE/YYMD = &YYMD ;
COMPUTE TERMDATE/YYMD = DATECVT(TERM,'A6YYM','YYM');
COMPUTE AGE/D12.2 = (DATE - TERMDATE) / 365.25 ;
BY COUNTRY NOPRINT
Waz...
Prod:
WebFOCUS 7.6.10/8.1.04
Upgrade:
WebFOCUS 8.2.07
OS:
Linux
Outputs:
HTML, PDF, Excel, PPT
In Focus since 1984
Pity the lost knowledge of an old programmer!
May 08, 2018, 12:50 PM
Max Nevill
Waz the migrator accepts those but the problem is that the math is screwed up.
BIRTHDATE = 1976/08/29
TERM = 201709 TERM_DATE = DATECVT(TERM,'A6YYM','YYM') = 2017/09 AGE = DATEDIF( TERM_DATE, BIRTH_DATE , 'D' ) / 365.25 = 71.82
Using AGE =DATEDIF( TERM_DATE, BIRTH_DATE , 'M' ) / 12 = 71.75
One would think I'd get 43 plus a bit.
WebFocus 8.104 Windows 7 Entreprise, SP1
May 08, 2018, 05:01 PM
Waz
With this I get 41.01, which seems correct
TABLE FILE CAR
PRINT
COMPUTE TERM/A6 = '201709' ;
COMPUTE DATE/YYMD = '1976/08/29' ;
COMPUTE TERMDATE/YYMD = DATECVT(TERM,'A6YYM','YYM');
COMPUTE AGE/D12.2 = (TERMDATE - DATE) / 365.25 ;
BY COUNTRY NOPRINT
END
Waz...
Prod:
WebFOCUS 7.6.10/8.1.04
Upgrade:
WebFOCUS 8.2.07
OS:
Linux
Outputs:
HTML, PDF, Excel, PPT
In Focus since 1984
Pity the lost knowledge of an old programmer!
May 08, 2018, 06:37 PM
Max Nevill
Waz, hmm. I looked further and in the migrator had my TERM_DATE field formatted as YYM instead of YYMD.