28%macro mddl_sas_cntlout(libds=WORK.CNTLOUT);
33'Format Type: either N (num fmt), C (char fmt), I (num infmt) or J (char infmt)'
34 ,FMTNAME
char(32) label=
'Format name'
36'CALCULATED Position of record by FMTNAME (reqd for multilabel formats)'
37 ,START
char(32767) label=
'Starting value for format'
43 ,END
char(32767) label=
'Ending value for format'
44 ,LABEL
char(32767) label=
'Format value label'
45 ,MIN num length=3 label=
'Minimum length'
46 ,MAX num length=3 label=
'Maximum length'
47 ,DEFAULT num length=3 label=
'Default length'
48 ,LENGTH num length=3 label=
'Format length'
49 ,FUZZ num label=
'Fuzz value'
50 ,PREFIX
char(2) label=
'Prefix characters'
51 ,MULT num label=
'Multiplier'
52 ,FILL
char(1) label=
'Fill character'
53 ,NOEDIT num length=3 label=
'Is picture string noedit?'
54 ,SEXCL
char(1) label=
'Start exclusion'
55 ,EEXCL
char(1) label=
'End exclusion'
57'More info: https://core.sasjs.io/mddl__sas__cntlout_8sas_source.html'
58 ,DECSEP
char(1) label=
'Decimal separator'
59 ,DIG3SEP
char(1) label=
'Three-digit separator'
60 ,DATATYPE
char(8) label=
'Date/time/datetime?'
61 ,LANGUAGE
char(8) label=
'Language for date strings'
65 %let libds=%upcase(&libds);
66 %
if %index(&libds,.)=0 %then %let lib=WORK;
67 %
else %let lib=%scan(&libds,1,.);
69 proc datasets lib=&lib noprint;
70 modify %scan(&libds,-1,.);
72 pk_cntlout=(type fmtname fmtrow)
76%mend mddl_sas_cntlout;