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>