53%macro mcf_getfmttype(wrap=YES
58%local i var cmpval found;
60%
if %mcf_init(mcf_getfmttype)=1 %then %
return;
62%
if &wrap=YES %then %
do;
63 proc fcmp outlib=&lib..&cat..&pkg;
66function mcf_getfmttype(fmtnm $) $8;
67 if substr(fmtnm,1,1)=
'$' then
return(
'CHAR');
71 fmt=scan(fmtnm,1,
'.');
73 substr(fmt,length(fmt),1) in (
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
'0')
75 if length(fmt)=1 then fmt=
'W';
76 else fmt=substr(fmt,1,length(fmt)-1);
80 if cats(fmt) in (%mf_dttmfmts(DATETIME)) then
return(
'DATETIME');
81 else if cats(fmt) in (%mf_dttmfmts(DATE)) then
return(
'DATE');
82 else if cats(fmt) in (%mf_dttmfmts(TIME)) then
return(
'TIME');
87%
if &wrap=YES %then %
do;
92%let cmpval=%sysfunc(getoption(cmplib));
94%
do i=1 %to %sysfunc(countw(&cmpval,%str( %(%))));
95 %let var=%scan(&cmpval,&i,%str( %(%)));
96 %
if &var=&lib..&cat %then %let found=1;
98%
if &found=0 %then %
do;
99 options insert=(CMPLIB=(&lib..&cat));