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