38%macro mp_getcols(ds, outds=work.cols);
40proc contents noprint data=&ds
41 out=_data_ (keep=name type length label varnum format:);
44data &outds(keep=name type length varnum format label ddtype fmtname);
45 set &dropds(rename=(format=fmtname type=type2));
49 if fmtname=
'' then format=cats(
'$',length,
'.');
50 else if formatl=0 then format=cats(fmtname,
'.');
51 else format=cats(fmtname,formatl,
'.');
56 if fmtname=
'' then format=cats(length,
'.');
57 else if formatl=0 then format=cats(fmtname,
'.');
58 else if formatd=0 then format=cats(fmtname,formatl,
'.');
59 else format=cats(fmtname,formatl,
'.',formatd);
61 if upcase(fmtname) in (%mf_dttmfmts(DATETIME)) then ddtype=
'DATETIME';
62 else if upcase(fmtname) in (%mf_dttmfmts(DATE)) then ddtype=
'DATE';
63 else if upcase(fmtname) in (%mf_dttmfmts(TIME)) then ddtype=
'TIME';
64 else ddtype=
'NUMERIC';
66 if label=
'' then label=name;