Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: FSCLMPMQ

FSCLMPMQ.m

Go to the documentation of this file.
  1. FSCLMPMQ ;SLC/STAFF-NOIS List Manager Protocol Modify Query ;4/22/94 11:04
  1. ;;1.1;NOIS;;Sep 06, 1998
  1. ;
  1. QDESC(ARRAY,DESC,CRITERIA) ; from FSCLDU, FSCLMPMS
  1. N COND,DEFINE,DESCNT,EXT,FCOND,FLD,FLDNAME,LCOND,LINE,OPER,PAREN,STEP,VALNAME,VALUE,X K CRITERIA,DESC
  1. S DEFINE=0,DESC(0)="List: "_FSCLNAME
  1. S PAREN="closed",(DESCNT,FCOND,LINE)=0,STEP=1 F S LINE=$O(ARRAY(LINE)) Q:LINE<1 D
  1. .S X=ARRAY(LINE),OPER=$P(X,U,2),EXT=$P(X,U,3),FLD=$P(X,U,4),COND=$P(X,U,5),VALUE=$P(X,U,6)
  1. .S OPER=$S(OPER="A":"Add",OPER="R":"Remove",OPER="S":"Select",1:"")
  1. .S EXT=$S(EXT="A":"and",EXT="O":"or",1:"")
  1. .S FLDNAME=$P(^FSC("FLD",+FLD,0),U)
  1. .S COND=$P(^FSC("COND",+COND,0),U,2)
  1. .S VALNAME=VALUE I $P(^FSC("FLD",+FLD,0),U,8),"DNP"[$E($P(^(0),U,3)) S VALNAME=$$VALUE^FSCGET(VALUE,7100,+$P(^(0),U,8))
  1. .I $L(VALUE),"FW"[$E($P(^FSC("FLD",+FLD,0),U,3)) S VALNAME=""""_VALUE_""""
  1. .I $L(OPER),$D(CRITERIA) D
  1. ..S $P(CRITERIA(0),U,2)=STEP
  1. ..I PAREN="open" S CRITERIA(STEP,FCOND,0)=CRITERIA(STEP,FCOND,0)_")"
  1. ..D DESC^FSCQD(.DESCNT,.CRITERIA)
  1. ..K CRITERIA
  1. ..S CRITERIA(0)=OPER_"^^0"
  1. ..S FCOND=0,PAREN="closed",STEP=1
  1. .I $L(OPER),'$D(CRITERIA) S CRITERIA(0)=OPER_"^^0"
  1. .I EXT="or" D
  1. ..S STEP=STEP+1,FCOND=0
  1. ..I PAREN="closed" S PAREN="ready"
  1. ..I PAREN="open" S PAREN="closed",LCOND=CRITERIA(STEP-1),CRITERIA(STEP-1,LCOND,1)=CRITERIA(STEP-1,LCOND,1)_")"
  1. .I EXT="and",PAREN="ready" S PAREN="open",CRITERIA(STEP,FCOND,0)="("_CRITERIA(STEP,FCOND,0)
  1. .S FCOND=FCOND+1
  1. .S CRITERIA(STEP)=FCOND
  1. .S CRITERIA(STEP,FCOND)=FLD_U_COND_U_VALUE
  1. .S CRITERIA(STEP,FCOND,0)=FLDNAME_" "_COND_$S($L(VALNAME):" "_VALNAME,1:"")
  1. .S CRITERIA(STEP,FCOND,1)=EXT
  1. I PAREN="open" S CRITERIA(STEP,FCOND,0)=CRITERIA(STEP,FCOND,0)_")"
  1. S $P(CRITERIA(0),U,2)=STEP
  1. I $D(CRITERIA) D DESC^FSCQD(.DESCNT,.CRITERIA)
  1. S DESC(0)=$P(DESC(0)," (MODIFIED)")
  1. Q