Annotation of freem_fileman/USER/DICL1.m, revision 1.1
1.1 ! snw 1: DICL1 ;SEA/TOAD-VA FileMan: Lookup: Lister, Part 2 ;11/28/94 08:34 ;
! 2: ;;21.0;VA FileMan;;Dec 28, 1994
! 3: ;Per VHA Directive 10-93-142, this routine should not be modified.
! 4:
! 5: PREP
! 6: N DIEN,DIENTRY,DIOUT1,DIOUT2,DISUB1
! 7: S DIOUT1=0
! 8: S DIENTRY=DIFROM
! 9: D DA^DILF(DIFIEN,.DIEN)
! 10: I DINDEX("WAY")=1 S DILIST("ORDER")=0
! 11: E S DILIST("ORDER")=DINUMBER+1
! 12:
! 13: REVERSE
! 14: N DIREVERS,DITO,DITOIN
! 15: I DINUMBER="*",DINDEX("WAY")=-1 D
! 16: . S DIREVERS=1
! 17: . S DITO=DIFROM
! 18: . S DITOIN=DIFROM("IEN")
! 19: . S DINDEX("WAY")=1
! 20: . S DIFROM=DIPART
! 21: . I DIFROM'="" S DIUSEFRM=1
! 22: . S DIFROM("IEN")=""
! 23: R1 . S DIENTRY=DIPART
! 24: . S DILIST("ORDER")=0
! 25: . Q
! 26: E D
! 27: . S DIREVERS=0
! 28: . S DITO=""
! 29: . S DITOIN=""
! 30: . Q
! 31:
! 32: PREP2 ; prepare to list entries
! 33: N DICODE,DID,DIDT,DIDVAL
! 34: N DIMSG,DIOUT3,DISKIP,DIVAL,X,Y
! 35: N DICOUNT D
! 36: . S DICOUNT=0
! 37: . S DICOUNT("MAX")=DINUMBER
! 38: . S DICOUNT("JUST LOOKING")=0
! 39: . S DICOUNT("LAST ENTRY")=""
! 40: . S DICOUNT("LAST IEN")=""
! 41: S DIENTRY("PREVIOUS")="",DIENTRY("PREVIOUS EXTERNAL")=""
! 42: P1 I +DIPART'=DIPART S DICOUNT("MORE?")=0
! 43: E D
! 44: . I DINDEX("WAY")=1,+DIFROM=DIFROM S DICOUNT("MORE?")=1 Q
! 45: . I DINDEX("WAY")=-1,+DIFROM'=DIFROM S DICOUNT("MORE?")=1 Q
! 46: . S DICOUNT("MORE?")=0 Q
! 47: I DINDEX("TYPE")="P",DIFLAGS'["I" D
! 48: . S DIFLAGS=DIFLAGS_"p"
! 49: . D POINT(.DIFILE,.DIROOT,.DINDEX,.DIFROM)
! 50:
! 51: LONG
! 52: D
! 53: . N DILENGTH S DILENGTH=+$P(DINDEX("NODE"),">",2)
! 54: . I 'DILENGTH S DILENGTH=99999
! 55: . S DIFROM=$E(DIFROM,1,DILENGTH)
! 56: . S DIPART=$E(DIPART,1,DILENGTH)
! 57: . S DITO=$E(DITO,1,DILENGTH)
! 58:
! 59: GETLIST
! 60: ; I $G(ZRT) S ZRT(ZRT)="BRANCH^"_$ZH,ZRT=ZRT+1
! 61: D LIST^DICL2
! 62:
! 63: FINAL
! 64: I $G(DIERR) K @DILIST D OUT^DICL Q
! 65: I DICOUNT=0,$O(@DIROOT@(DINDEX,""))="",$O(@DIROOT@(0)) D Q
! 66: . S DIERN=420,DIPE(1)=DINDEX,DIPE("FILE")=DIFILE D ERROUT^DICL
! 67: S @DILIST@(0)=DICOUNT_U_DICOUNT("MAX")_U_DICOUNT("MORE?")
! 68: K DIFROM("LOOKING FOR START")
! 69: I DICOUNT("MORE?") D
! 70: . S DIFROM=DIENTRY
! 71: . S DIFROM("IEN")=$S(DIFLAGS'["p":DIEN,1:$G(DICOUNT("LAST IEN")))
! 72: E S DIFROM="",DIFROM("IEN")=""
! 73: Q
! 74:
! 75: POINT(DIFILE,DIROOT,DINDEX,DIFROM) ;
! 76: ; prepare to list a pointer index
! 77: S DIFILE("MAIN")=DIFILE
! 78: S DIROOT("MAIN")=DIROOT
! 79: S DIROOT("MAIN O")=DIROOT("O")
! 80: D FOLLOW^DICL3(.DIFILE,.DIROOT,DINDEX("PTR"),DINDEX("NODE"))
! 81: N TEMP M TEMP=DINDEX K DINDEX M DINDEX("MAIN")=TEMP
! 82: S DINDEX="B",DINDEX("WAY")=DINDEX("MAIN","WAY")
! 83: D INDEX^DICU1(.DIFILE,.DINDEX,DIROOT)
! 84: S DIFROM("LOOKING FOR START")=DIFROM'=""&(DIFROM("IEN")'="")
! 85: Q
! 86:
! 87:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>