/**********************************************************************/ array ids {3} $ 8 _temporary_ ('USRABC' 'USRDEF' 'USRGHI'); INIT: userid=symget('sysjobid'); if userid ¬ in ids then do; dsid=open('sasuser.class','I'); _msg_=userid|| ' not authorized for updates, you may browse'; end; else dsid=open('sasuser.class','U'); call setrow(0,0,'','y'); call set(dsid); delcount=0; return; /**********************************************************************/ GETROW: if fetchobs(dsid,_currow_)¬=0 then call endtable(); if userid ¬ in ids then protect action; return; /**********************************************************************/ PUTROW: select (action); when('C') delrow=_currow_ - delcount; rc=fetchobs(dsid,delrow); rc=append(dsid); call execcmd('bottom'); when('D') delrow=_currow_ - delcount; rc=fetchobs(dsid,delrow,'noset'); rc=delobs(dsid); delcount+1; when('U') delrow=_currow_ - delcount; rc=fetchobs(dsid,delrow,'noset'); rc=update(dsid); when('A') rc=append(dsid,'noset'); call execcmd('bottom'); otherwise; end; action=' '; return; /**********************************************************************/ MAIN: if num¬=_blank_ then rc=where(dsid,'age='||num); delcount=0; return; /**********************************************************************/ TERM: rc=close(dsid); return; /**********************************************************************/ INIT: userid=symget('sysjobid'); if userid ¬ in ids then do; dsid=open('sasuser.class','I'); _msg_=userid|| ' not authorized for updates, you may browse'; end; else dsid=open('sasuser.class','U'); call setrow(0,0,'','y'); call set(dsid); delcount=0; return; MAIN: if num¬=_blank_ then rc=where(dsid,'age='||num); delcount=0; return; TERM: rc=close(dsid); return; GETROW: if fetchobs(dsid,_currow_)¬=0 then call endtable(); if userid ¬ in ids then protect action; return; PUTROW: select (action); when('C') delrow=_currow_ - delcount; rc=fetchobs(dsid,delrow,); rc=append(dsid); call execcmd('bottom'); when('D') delrow=_currow_ - delcount; rc=fetchobs(dsid,delrow ,'noset'); rc=delobs(dsid); delcount+1; when('U') delrow=_currow_ - delcount; rc=fetchobs(dsid,delrow,'noset'); rc=update(dsid); when('A') rc=append(dsid,'noset'); call execcmd('bottom'); otherwise; end; action=' '; /**********************************************************************/ INIT: bb=makelist(0,'G'); id=curlist(bb); dsid=open('sasuser.class'); list=datalistc(dsid,'NAME AGE SEX', 'Make 5 Selections','n',5); n=getnitemn(bb,'COUNT'); call setrow(n); return; /**********************************************************************/ TERM: rc=close(dsid); return; /**********************************************************************/ GETROW: name=getnitemc(bb,'NAME',_currow_); age=getnitemn(bb,'AGE',_currow_); sex=getnitemc(bb,'SEX',_currow_); return; /**********************************************************************/ PUTROW: rc=setnitemc(bb,name,'name',_currow_); rc=setnitemn(bb,age,'age',_currow_); rc=setnitemc(bb,sex,'sex',_currow_); return; /**********************************************************************/ INIT: bb=makelist(0,'G'); id=curlist(bb); dsid=open('sasuser.class'); list=datalistc(dsid,'NAME AGE SEX','Make 5 Selections','n',5); n=getnitemn(bb,'COUNT'); call setrow(n); return; MAIN: return; TERM: rc=close(dsid); return; GETROW: name=getnitemc(bb,'NAME',_currow_); age=getnitemn(bb,'AGE',_currow_); sex=getnitemc(bb,'SEX',_currow_); return; PUTROW: rc=setnitemc(bb,name,'name',_currow_); rc=setnitemn(bb,age,'age',_currow_); rc=setnitemc(bb,sex,'sex',_currow_); return; /**********************************************************************/ INIT: control enter; lname=makelist(0,'l'); lage=makelist(0,'l'); lsex=makelist(0,'l'); bb=makelist(); rc=fillist('catalog','sasuser.lists.class.slist',bb); if rc=0 then do; lname=getniteml(bb,'lname'); lage=getniteml(bb,'lage'); lsex=getniteml(bb,'lsex'); end; else do; bb=setniteml(bb,lname,'lname'); bb=setniteml(bb,lage,'lage'); bb=setniteml(bb,lsex,'lsex'); rc=setlattr(lage,'NUMONLY'); end; call setrow(listlen(lname)); return; /**********************************************************************/ MAIN: if word(1,'u')='ADD' then do; name=_blank_; age=_blank_; sex=_blank_; rc=insertc(lname,name,-1); rc=insertn(lage,age,-1); rc=insertc(lsex,sex,-1); end; call setrow(listlen(lname)); return; /**********************************************************************/ TERM: rc=savelist('catalog','sasuser.lists.class.slist',bb); call putlist(bb,'BB IS AS FOLLOWS:',0); rc=dellist(lname); rc=dellist(lage); rc=dellist(lsex); rc=dellist(bb); return; /**********************************************************************/ GETROW: name=getitemc(lname,_currow_); age=getitemn(lage,_currow_); sex=getitemc(lsex,_currow_); return; /**********************************************************************/ PUTROW: if action='A' then do; name=_blank_; age=_blank_ ; sex=_blank_ ; rc=insertc(lname,name,-1); rc=insertn(lage,age ,-1); rc=insertc(lsex,sex ,-1); end; if action='U' then do; rc=setitemc(lname,name,_currow_,'y'); rc=setitemn(lage,age,_currow_,'y'); rc=setitemc(lsex,sex,_currow_,'y'); end; if action='D' then do; rc=delitem(lname,_currow_); rc=delitem(lage,_currow_); rc=delitem(lsex,_currow_); end; action=_blank_; return; /**********************************************************************/ INIT: control enter; lname=makelist(0,'l'); lage=makelist(0,'l'); lsex=makelist(0,'l'); bb=makelist(); rc=fillist('catalog','sasuser.lists.class.slist',bb); if rc=0 then do; lname=getniteml(bb,'lname'); lage=getniteml(bb,'lage'); lsex=getniteml(bb,'lsex'); end; else do; bb=setniteml(bb,lname,'lname'); bb=setniteml(bb,lage,'lage'); bb=setniteml(bb,lsex,'lsex'); rc=setlattr(lage,'NUMONLY'); end; call setrow(listlen(lname)); return; MAIN: if word(1,'u')='ADD' then do; name=_blank_; age=_blank_ ; sex=_blank_ ; rc=insertc(lname,name,-1); rc=insertn(lage,age,-1); rc=insertc(lsex,sex,-1); end; call setrow(listlen(lname)); return; TERM: rc=savelist('catalog','sasuser.lists.class.slist',bb); rc=dellist(lname); rc=dellist(lage); rc=dellist(lsex); rc=dellist(bb); return; GETROW: name=getitemc(lname,_currow_); age=getitemn(lage,_currow_); sex=getitemc(lsex,_currow_); return; PUTROW: if action='A' then do; name=_blank_; age=_blank_ ; sex=_blank_ ; rc=insertc(lname,name,-1); rc=insertn(lage,age ,-1); rc=insertc(lsex,sex ,-1); end; if action='U' then do; rc=setitemc(lname,name,_currow_,'y'); rc=setitemn(lage,age,_currow_,'y'); rc=setitemc(lsex,sex,_currow_,'y'); end; if action='D' then do; rc=delitem(lname,_currow_); rc=delitem(lage,_currow_); rc=delitem(lsex,_currow_); end; action=_blank_; return; /**********************************************************************/