This combines the variable name and the actual value in the variable.
data x1x;
set x1;
DET1R_v=catx('-',vname(DET1R),vvalue(DET1R));
DET2R_v=catx('-',vname(DET2R),vvalue(DET2R));
DET3R_v=catx('-',vname(DET3R),vvalue(DET3R));
run;
PROC TABULATE data=x1x NOSEPS MISSING FORMAT=7. THREADS;
CLASS ADMYR DET1R_v DET2R_v DET3R_v;
TABLES ALL DET1R_v DET2R_v DET3R_v, ADMYR / PRINTMISS MISSTEXT='0';
RUN;