| 1 | FSCQB ;SLC/STAFF-NOIS Query Browse ;1/19/98  11:26
 | 
|---|
| 2 |  ;;1.1;NOIS;;Sep 06, 1998
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | BROWSE(LIST,LISTNAME,LISTCNT,MSG,PREOP,LISTDEF) ; from FSCLD, FSCLMPO, FSCLMPQQ, FSCLMPQU, FSCOPT
 | 
|---|
| 5 |  N ANDOR,CNT,DESC,DESCNT,DONE,DTOUT,DUOUT,FINISH,OPER,LDCNT
 | 
|---|
| 6 |  S LDCNT=0
 | 
|---|
| 7 |  S DEFINE=$S($D(LISTDEF):1,1:0)
 | 
|---|
| 8 |  S FINISH=$S(DEFINE:"Define",1:"List")
 | 
|---|
| 9 |  S DESCNT=0,DESC(DESCNT)="List: "_LISTNAME
 | 
|---|
| 10 |  S DONE=0 F  Q:DONE  D
 | 
|---|
| 11 |  .N CRITERIA
 | 
|---|
| 12 |  .I 'DEFINE,$G(PREOP)'=FINISH W !!,"Currently, "_LISTCNT_" calls are in this list."
 | 
|---|
| 13 |  .I $G(PREOP)'=FINISH S CNT="" F  S CNT=$O(DESC(CNT)) Q:CNT=""  D
 | 
|---|
| 14 |  ..W !,DESC(CNT)
 | 
|---|
| 15 |  .I '$L($G(PREOP)) D OPER^FSCQCA
 | 
|---|
| 16 |  .I $L($G(PREOP)) W:PREOP'=FINISH !?4,PREOP," where:" S OPER=PREOP,PREOP=FINISH
 | 
|---|
| 17 |  .I $D(DUOUT) S MSG="EXIT",DONE=1 Q
 | 
|---|
| 18 |  .I $D(DTOUT) S MSG="TIMEOUT",DONE=1 Q
 | 
|---|
| 19 |  .I OPER="List" S DONE=1 Q
 | 
|---|
| 20 |  .I OPER="Define" S DONE=1 Q
 | 
|---|
| 21 |  .I DEFINE S LISTCNT=1,PREOP=""
 | 
|---|
| 22 |  .S CRITERIA(0)=OPER_"^^0"
 | 
|---|
| 23 |  .D CRITERIA
 | 
|---|
| 24 |  .I MSG="EXIT" S MSG=1 W !,"No Action Taken",! Q
 | 
|---|
| 25 |  .I MSG="TIMEOUT" S DONE=1 W !,"No Action Taken",! Q
 | 
|---|
| 26 |  .D DESC^FSCQD(.DESCNT,.CRITERIA)
 | 
|---|
| 27 |  .I 'DEFINE D QUERY^FSCQR(.LIST,.LISTCNT,.CRITERIA) K ^TMP("FSC NEWLIST",$J),^TMP("FSC USELIST",$J)
 | 
|---|
| 28 |  I DEFINE M @LISTDEF@("DESC")=DESC
 | 
|---|
| 29 |  Q
 | 
|---|
| 30 |  ;
 | 
|---|
| 31 | CRITERIA ;
 | 
|---|
| 32 |  N COND,DONE,FIELD,FIELDCNT,FPASS,NAME,PAREN,PREVF,PREVS,REASK,STEP,TYPE,VALUE
 | 
|---|
| 33 |  S (DONE,FIELDCNT,PREVS,PREVF,REASK,STEP)=0,FPASS=1,PAREN="closed",ANDOR=""
 | 
|---|
| 34 |  F  Q:DONE  D
 | 
|---|
| 35 |  .I 'FPASS D
 | 
|---|
| 36 |  ..I MSG="REASK" D
 | 
|---|
| 37 |  ...W !!?12,"*** You have entered a criteria that is not complete. ***",$C(7)
 | 
|---|
| 38 |  ...W !,"The partial entry was: ",ANDOR," ",$P(FIELD,U,2)," ",$P(COND,U,5)," ",$P(VALUE,U,2)
 | 
|---|
| 39 |  ...I '$D(CRITERIA(1)) S MSG="EXIT" W !,"Reenter criteria" Q
 | 
|---|
| 40 |  ...D CRITERIA^FSCQD(.CRITERIA)
 | 
|---|
| 41 |  ...W !,"Continue editing from this criteria.",!
 | 
|---|
| 42 |  ..I MSG="EXIT" S MSG=1 Q
 | 
|---|
| 43 |  ..I MSG'="REASK" D STORE^FSCQCS S (FIELD,COND,VALUE)=""
 | 
|---|
| 44 |  ..S MSG=1
 | 
|---|
| 45 |  ..D ANDOR^FSCQCA W !
 | 
|---|
| 46 |  ..I $D(DTOUT) S MSG="TIMEOUT",DONE=1 Q
 | 
|---|
| 47 |  ..I $D(DUOUT) S MSG="EXIT",DONE=1
 | 
|---|
| 48 |  ..I ANDOR="" S DONE=1
 | 
|---|
| 49 |  ..I DONE,PAREN="open" S CRITERIA(STEP,FIELDCNT,0)=CRITERIA(STEP,FIELDCNT,0)_")"
 | 
|---|
| 50 |  .I DONE Q
 | 
|---|
| 51 |  .I '$L(ANDOR) S FPASS=1
 | 
|---|
| 52 |  .W !
 | 
|---|
| 53 |  .S (FIELD,COND,VALUE)=""
 | 
|---|
| 54 |  .D FIELD^FSCQCA,CHECK Q:DONE  Q:MSG="REASK"
 | 
|---|
| 55 |  .S FPASS=0
 | 
|---|
| 56 |  .D COND^FSCQCA($P(FIELD,U,4)),CHECK Q:DONE  Q:MSG="REASK"
 | 
|---|
| 57 |  .D VALUE^FSCQCAV(COND,$P(FIELD,U,4)),CHECK Q:DONE  Q:MSG="REASK"
 | 
|---|
| 58 |  .S FPASS=0
 | 
|---|
| 59 |  Q
 | 
|---|
| 60 |  ;
 | 
|---|
| 61 | CHECK I $D(DTOUT) S MSG="TIMEOUT",DONE=1 Q
 | 
|---|
| 62 |  I Y="^^"!(FPASS&(Y=""!$D(DUOUT))) S MSG="EXIT",DONE=1 Q
 | 
|---|
| 63 |  I 'FPASS,Y=""!$D(DUOUT) S MSG="REASK" Q
 | 
|---|
| 64 |  S MSG=$G(MSG,1)
 | 
|---|
| 65 |  Q
 | 
|---|