diff --git a/base/mp_getformats.sas b/base/mp_getformats.sas new file mode 100644 index 0000000..35cb8cc --- /dev/null +++ b/base/mp_getformats.sas @@ -0,0 +1,94 @@ +/** + @file + @brief Export format definitions + @details Formats are exported from the first (if any) catalog entry in the + FMTSEARCH path. + + Formats are taken from the library / dataset reference and / or a static + format list. + + Example usage: + + %mp_getformats(lib=sashelp,ds=prdsale,outds=work.prdfmts) + + @param [in] lib= (0) The libref for which to return formats. + @todo Enable exporting of formats for an entire library + @param [in] ds= (0) The dataset from which to obtain format definitions + @param [in] fmtstring= (0) A list of additional format names + @param [out] outsummary= (work.mp_getformats_summary) Output dataset + containing summary definitions - structure taken from dictionary.formats as + follows: +|libname:$8.|memname:$32.|path:$1024.|objname:$32.|fmtname:$32.|fmttype:$1.|source:$1.|minw:best.|mind:best.|maxw:best.|maxd:best.|d +efw:best.|defd:best.| +|---|---|---|---|---|---|---|---|---|---|---|---|---| +|||||$|F|B|1|0|32767|0|1|0| +|||||$|I|B|1|0|32767|0|1|0| +|||/opt/sas/sas9/SASHome/SASFoundation/9.4/sasexe|UWIANYDT|$ANYDTIF|I|U|1|0|60|0|19|0| +|||/opt/sas/sas9/SASHome/SASFoundation/9.4/sasexe|UWFASCII|$ASCII|F|U|1|0|32767|0|1|0| +|||/opt/sas/sas9/SASHome/SASFoundation/9.4/sasexe|UWIASCII|$ASCII|I|U|1|0|32767|0|1|0| +|||/opt/sas/sas9/SASHome/SASFoundation/9.4/sasexe|UWFBASE6|$BASE64X|F|U|1|0|32767|0|1|0| +|||/opt/sas/sas9/SASHome/SASFoundation/9.4/sasexe|UWIBASE6|$BASE64X|I|U|1|0|32767|0|1|0| +|||/opt/sas/sas9/SASHome/SASFoundation/9.4/sasexe|UWFBIDI|$BIDI|F|U|1|0|32767|0|1|0| +|||||$BINARY|F|B|1|0|32767|0|8|0| +|||||$BINARY|I|B|1|0|32767|0|8|0| + + @param [out] outdetail= (work.mp_getformats_detail) The output dataset to + contain the format definitions (from proc format CNTLOUT). Sample data: + + |NAME $|LENGTH 8|VARNUM 8|LABEL $|FORMAT $49|TYPE $1 |DDTYPE $| + |---|---|---|---|---|---|---| + |AIR|8|2|international airline travel (thousands)|8.|N|NUMERIC| + |DATE|8|1|DATE|MONYY.|N|DATE| + |REGION|3|3|REGION|$3.|C|CHARACTER| + +