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

XUTMQ0.m

Go to the documentation of this file.
  1. XUTMQ0 ;SEA/RDS - TaskMan: Option, ZTMINQ, Part 2 (Modules) ;4/20/95 10:33
  1. ;;8.0;KERNEL;;Jul 10, 1995
  1. ;
  1. ENTRY G ^XUTMQ
  1. ;
  1. ALL ;BRANCH^XUTMQ--all of one user's tasks.
  1. ;input: ZTKEY,ZTNAME,XUTMUCI
  1. N DIR,DIRUT,DTOUT,DUOUT,X,ZT1,ZT2,ZT3,ZTC,ZTDUZ,ZTF,ZTH,ZTI,ZTOUT
  1. N ZTREC,ZTS,ZTUSER K ^TMP($J)
  1. S ZTC=0,ZTF=1,ZTH="All tasks created by ",ZTOUT=0
  1. D KEY I ZTOUT Q
  1. A1 ;
  1. S ZTS=0 F ZTI=1:1 S ZTS=$O(^%ZTSK(ZTS)) Q:'ZTS D
  1. .I '(ZTI#100) W "."
  1. .I ZTI=10000 D
  1. ..W !!,$C(7),$C(7)
  1. ..W "You need to run XUTMQCLEAN more often or keep fewer tasks each run."
  1. ..W !,"Still searching..."
  1. ..Q
  1. .I $$MATCH(ZTS,ZTDUZ,ZTUSER) D SORT(+$P($G(^%ZTSK(ZTS,0)),U,6),ZTS)
  1. .Q
  1. A2 ;
  1. S ZTS=0 F S ZTS=$O(^%ZTSCH("TASK",ZTS)) Q:'ZTS D
  1. .I $D(^%ZTSK(ZTS,0))#2 Q
  1. .S ZTREC=$G(^%ZTSCH("TASK",ZTS))
  1. .I ZTREC="" Q
  1. .I $P(ZTREC,U,9)'=ZTDUZ,$P(ZTREC,U,9)'=ZTUSER Q
  1. .D SORT($H,ZTS)
  1. .Q
  1. A3 ;
  1. W "finished!",!
  1. G:$O(^TMP($J,0))="" A4
  1. S ZTSAVE("^TMP($J,")="" D EN^XUTMDEVQ("LIST^XUTMQ","TASK LIST",.ZTSAVE)
  1. K ^TMP($J)
  1. Q
  1. S ZT1="" F S ZT1=$O(^TMP($J,ZT1),-1) Q:ZT1="" D I ZTOUT Q
  1. . S ZTS=0 F S ZTS=$O(^TMP($J,ZT1,ZTS)) Q:'ZTS D I ZTOUT Q
  1. .. D PRINT
  1. .Q
  1. I ZTOUT Q
  1. A4 ;
  1. I 'ZTC W !! D W " no tasks in this volume set's Task file.",!
  1. .I ZTKEY W ZTUSER," has"
  1. .E W "You have"
  1. W !
  1. S DIR(0)="E"
  1. S DIR("A")="Press RETURN to continue" I ZTC D
  1. .S DIR("A")="End of listing. "_DIR("A")
  1. D ^DIR K ^TMP($J) Q
  1. ;
  1. FUT ;BRANCH^XUTMQ--one user's future tasks.
  1. ;input: ZTKEY,ZTNAME,XUTMUCI
  1. N DIR,DIRUT,DTOUT,DUOUT,X,ZT,ZT1,ZT2,ZT3,ZTC,ZTDUZ,ZTF,ZTH,ZTOUT
  1. N ZTREC,ZTS,ZTUSER K ^TMP($J)
  1. S X=0,ZTC=0,ZTF=1,ZTH="Scheduled and waiting tasks created by ",ZTOUT=0
  1. D KEY I ZTOUT Q
  1. ;
  1. F1 S ZT1=0 F S ZT1=$O(^%ZTSCH("JOB",ZT1)) Q:ZT1'>0 D
  1. .S ZTS=0 F S ZTS=$O(^%ZTSCH("JOB",ZT1,ZTS)) Q:ZTS="" D
  1. ..I $$MATCH(ZTS,ZTDUZ,ZTUSER) D SORT(ZT1,ZTS)
  1. .Q
  1. ;
  1. F2 S ZT1=0 F S ZT1=$O(^%ZTSCH(ZT1)) Q:'ZT1 D
  1. .S ZTS=0 F S ZTS=$O(^%ZTSCH(ZT1,ZTS)) Q:'ZTS D
  1. ..I $$MATCH(ZTS,ZTDUZ,ZTUSER) D SORT(ZT1,ZTS)
  1. .Q
  1. ;
  1. F3 S ZT1="" F S ZT1=$O(^%ZTSCH("IO",ZT1)) Q:ZT1="" D
  1. .S ZT2="" F S ZT2=$O(^%ZTSCH("IO",ZT1,ZT2)) Q:'ZT2 D
  1. ..S ZTS="" F S ZTS=$O(^%ZTSCH("IO",ZT1,ZT2,ZTS)) Q:ZTS="" D
  1. ...I $$MATCH(ZTS,ZTDUZ,ZTUSER) D SORT(ZT2,ZTS)
  1. .Q
  1. ;
  1. F4 S ZT1="" F S ZT1=$O(^%ZTSCH("LINK",ZT1)) Q:ZT1="" D
  1. .S ZT2="" F S ZT2=$O(^%ZTSCH("LINK",ZT1,ZT2)) Q:'ZT2 D
  1. ..S ZTS=0 F S ZTS=$O(^%ZTSCH("LINK",ZT1,ZT2,ZTS)) Q:'ZTS D
  1. ...I $$MATCH(ZTS,ZTDUZ,ZTUSER) D SORT(ZT2,ZTS)
  1. .Q
  1. W "finished!",!
  1. ;
  1. F5 ;
  1. G:$O(^TMP($J,0))="" F6
  1. S ZTSAVE("^TMP($J,")="" D EN^XUTMDEVQ("LIST^XUTMQ","TASK LIST",.ZTSAVE)
  1. K ^TMP($J)
  1. Q
  1. S ZT1="" F S ZT1=$O(^TMP($J,ZT1),-1) Q:ZT1="" D I ZTOUT Q
  1. . S ZTS=0 F S ZTS=$O(^TMP($J,ZT1,ZTS)) Q:'ZTS D I ZTOUT Q
  1. .. D PRINT
  1. . Q
  1. I ZTOUT Q
  1. ;
  1. F6 I 'ZTC W !! D
  1. .I ZTKEY W ZTUSER," has"
  1. .E W "You have"
  1. .W " no scheduled or waiting tasks in this volume set's Task File.",!
  1. W ! S DIR(0)="E"
  1. S DIR("A")="Press RETURN to continue" I ZTC D
  1. .S DIR("A")="End of listing. "_DIR("A")
  1. D ^DIR K ^TMP($J) Q
  1. ;
  1. KEY ;ALL/FUT--set up variables for chosen user
  1. ;input: ZTKEY,ZTNAME
  1. ;input/output: ZTH,ZTOUT
  1. ;output: ZTDUZ,ZTUSER
  1. N DIR,DIRUT,DTOUT,DUOUT,X,Y
  1. I 'ZTKEY S ZTDUZ=DUZ,ZTUSER=ZTNAME,ZTH=ZTH_"you." Q
  1. W !!,"Select the user whose tasks you wish to see.",!!
  1. S DIR(0)="P^200:AEMNQ"
  1. S DIR("B")=ZTNAME
  1. S DIR("?")="Select the user whose tasks you wish to see."
  1. K D ^DIR K DIR
  1. I $D(DTOUT) W " ** TIMEOUT **",$C(7)
  1. I $D(DUOUT) W " ** ^ ESCAPE **"
  1. I $D(DIRUT) S ZTOUT=1 Q
  1. W !!,"Please wait while I search for the tasks...searching..."
  1. S ZTDUZ=$P(Y,U),ZTUSER=$P(Y,U,2)
  1. I ZTUSER'=ZTNAME S ZTH=ZTH_$P(ZTUSER,",",2,999)_" "_$P(ZTUSER,",")_"."
  1. E S ZTH=ZTH_"you."
  1. Q
  1. ;
  1. MATCH(ZTS,ZTDUZ,ZTREC) ;
  1. ;ALL/FUT--determine whether task was created by user
  1. ;input: task #, user #, user name
  1. ;output: Boolean, does task belong to user?
  1. S ZTREC=$G(^%ZTSK(ZTS,0))
  1. I ZTREC="" Q 0
  1. I $P(ZTREC,U,3)'=ZTDUZ Q 0
  1. I $P(ZTREC,U,10)="" Q 1
  1. Q $P(ZTREC,U,10)=ZTUSER
  1. ;
  1. SORT(ZTDTH,ZTSK) ;
  1. ;ALL/FUT--sort task by start time.
  1. ;input: start time, task number
  1. ;output: ^TMP($J) node
  1. I ZTDTH["," S ZTDTH=$$H3^%ZTM(ZTDTH)
  1. S ^TMP($J,ZTDTH,ZTSK)=""
  1. Q
  1. ;
  1. PRINT ;ALL/FUT--print a task
  1. ;input: ZTH,ZTKEY,ZTNAME,ZTS,XUTMUCI
  1. ;input/output: ZTC,ZTF
  1. ;output: ZTOUT
  1. N DIR,DIRUT,DTOUT,DUOUT,X,Y,ZTSK
  1. I 'ZTC W @IOF,!,ZTH,!
  1. I 'ZTF W !,"-------------------------------------------------------------------------------"
  1. S ZTF=0
  1. D EN^XUTMTP(ZTS)
  1. I $Y'>18 S ZTC=ZTC+1 Q
  1. W ! S ZTF=1,DIR(0)="E" D ^DIR
  1. S ZTOUT=$D(DTOUT)!$D(DUOUT) I ZTOUT Q
  1. W @IOF Q
  1. ;