ENPLS2 ;WISC/SAB - Select Items from List ;7/21/95 ;;7.0;ENGINEERING;**23**;Aug 17, 1993 EN ; entry point ; input global ; ^TMP($J,"SCR)=number of entries in list^screen title ; ^TMP($J,"SCR",0)=col 1 x pos;col 1 hdr^...^col n x pos;col n hdr ; ^TMP($J,"SCR",id)=col 1 value^col 2 value^...^col n value ; output ; optional ENACL( selected items ; ; initialize variables N ENI,ENID,ENF,ENI,ENS,ENX,ENY K ENACL S $P(ENF("DASH"),"-",80)="" ; get screen info S ENX=^TMP($J,"SCR") S ENF("IDM")=$P(ENX,U) S ENF("HD")=$P(ENX,U,2) ; get column info S ENX=^TMP($J,"SCR",0),ENF("CM")=0 F ENI=1:1 S ENY=$P(ENX,U,ENI) Q:ENY="" D . S ENF("CM")=ENF("CM")+1 . S ENF("C"_ENI,"X")=$P(ENY,";",1) . S ENF("C"_ENI,"L")=$P(ENY,";",2) . S ENF("C"_ENI,"HD")=$P(ENY,";",3) S ENF("SM")=(ENF("IDM")-1)\15+1 S ENF("S")=1 BLD ; build screen K ENS S ENS("IDL")=1+(ENF("S")-1*15) S ENS("IDM")=$S(15+(ENF("S")-1*15)>ENF("IDM"):ENF("IDM"),1:15+(ENF("S")-1*15)) ; display screen D SHD F ENID=ENS("IDL"):1:ENS("IDM") D W ! . S ENX=^TMP($J,"SCR",ENID) . W $J(ENID,3) . F ENI=1:1:ENF("CM") W ?ENF("C"_ENI,"X"),$P(ENX,U,ENI) ACT ; prompt for selection W ! S DIR("A")="Enter a list or range to select (1-"_ENF("IDM")_"): "_$S(ENF("S")0600:2,1:1) D ^DIR K DIR Q:$D(DIRUT) S ENYR=Y F ENIDX="F","G" D . S ENDA=0 F S ENDA=$O(^ENG("PROJ",ENIDX,ENYR,ENDA)) Q:'ENDA D . . S ENY0=$G(^ENG("PROJ",ENDA,0)) Q:$P(ENY0,U)=""!($P(ENY0,U,6)'=ENPR) . . S ^TMP($J,"R",$P(ENY0,U))=$P(ENY0,U)_U_$P(ENY0,U,3)_U_ENDA I '$D(^TMP($J,"R")) W !!,"No Projects matched selection criteria!",! Q S ENI=0,ENPN="" F S ENPN=$O(^TMP($J,"R",ENPN)) Q:ENPN="" S ENI=ENI+1,^TMP($J,"SCR",ENI)=^(ENPN) S ^TMP($J,"SCR")=ENI_U_"PROGRAM ("_ENPR_") PROJECTS WITH FUNDING YEAR "_ENYR S ^TMP($J,"SCR",0)="5;11;PROJECT #^19;50;TITLE" D ^ENPLS2 ; save selected projects (if any) S ENC=0,ENJ="" F S ENJ=$O(ENACL(ENJ)) Q:ENJ="" D . F ENK=1:1 S ENI=$P(ENACL(ENJ),",",ENK) Q:ENI="" D . . S ENY=^TMP($J,"SCR",ENI),^TMP($J,"L",$P(ENY,U))=$P(ENY,U,3),ENC=ENC+1 S:ENC ^TMP($J,"L")=ENC_$S(ENTY="F":U_ENFY,1:"") K ^TMP($J,"R"),^TMP($J,"SCR") Q ;ENPLS2