33%macro mp_getcols(ds, outds=work.cols);
35proc contents noprint data=&ds
36 out=_data_ (keep=name type length label varnum format:);
39data &outds(keep=name type length varnum format label ddtype fmtname);
40 set &dropds(rename=(format=fmtname type=type2));
44 if fmtname=
'' then format=cats(
'$',length,
'.');
45 else if formatl=0 then format=cats(fmtname,
'.');
46 else format=cats(fmtname,formatl,
'.');
51 if fmtname=
'' then format=cats(length,
'.');
52 else if formatl=0 then format=cats(fmtname,
'.');
53 else if formatd=0 then format=cats(fmtname,formatl,
'.');
54 else format=cats(fmtname,formatl,
'.',formatd);
56 if format=:
'DATETIME' or format=:
'E8601DT' or format=:
'NLDATM'
57 then ddtype=
'DATETIME';
58 else if format=:
'DATE' or format=:
'DDMMYY' or format=:
'MMDDYY'
59 or format=:
'YYMMDD' or format=:
'E8601DA' or format=:
'B8601DA'
60 or format=:
'MONYY' or format=:
'NLDATE'
62 else if format=:
'TIME' then ddtype=
'TIME';
63 else ddtype=
'NUMERIC';
65 if label=
'' then label=name;