[613] | 1 | DDBRAP ;SFISC/DCL-BROWSER WP ANCHOR PROCESSOR ;NOV 04, 1996@13:53
|
---|
| 2 | ;;22.0;VA FileMan;;Mar 30, 1999
|
---|
| 3 | ;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
| 4 | Q
|
---|
| 5 | WP(DDBROOT,DDBRFLG,DDBRTLE) ;
|
---|
| 6 | ;Pass existing wp root, flag=c/clear all -indexes, title
|
---|
| 7 | I $G(DDBROOT)="" Q
|
---|
| 8 | I '$D(@DDBROOT) Q
|
---|
| 9 | S DDBROOT=$NA(@DDBROOT),DDBRFLG=$G(DDBRFLG),DDBRTLE=$G(DDBRTLE)
|
---|
| 10 | N DDBRINDX,DDBRSUB,DDBRSUBL,DDBNROOT,DDBSROOT,DDBAXRT,DDBRCHK,DDBRCHK1
|
---|
| 11 | N DDBRSX,DDBRSXL,DDBRI,DDBRSXP,DDBRX,DDBRTLER
|
---|
| 12 | S DDBRINDX=0,DDBNROOT=$$NROOT(DDBROOT),DDBAXRT=$NA(@DDBNROOT@("A")),DDBRCHK1=0
|
---|
| 13 | Q:DDBNROOT=""!(DDBAXRT="")
|
---|
| 14 | K @DDBAXRT
|
---|
| 15 | F S DDBRINDX=$O(@DDBROOT@(DDBRINDX)),DDBRCHK=1 Q:DDBRINDX'>0 D:$L($G(@DDBROOT@(DDBRINDX,0)),"$.$")>1 I DDBRCHK,$L($G(@DDBROOT@(DDBRINDX)),"$.$")>1 S DDBRCHK1=1 D
|
---|
| 16 | .S DDBRCHK=0
|
---|
| 17 | .I DDBRCHK1 S DDBRSX=@DDBROOT@(DDBRINDX),DDBRSXL=$L(DDBRSX,"$.$")
|
---|
| 18 | .E S DDBRSX=@DDBROOT@(DDBRINDX,0),DDBRSXL=$L(DDBRSX,"$.$")
|
---|
| 19 | .F DDBRI=2:2:DDBRSXL S DDBRSXP=$P(DDBRSX,"$.$",DDBRI) S:'$D(@DDBAXRT@(DDBRSXP)) @DDBAXRT@(DDBRSXP)=DDBRINDX
|
---|
| 20 | .Q
|
---|
| 21 | S DDBRX=""
|
---|
| 22 | I DDBRTLE]"" D
|
---|
| 23 | .I '$D(@DDBNROOT@("TITLE")) S @DDBNROOT@("TITLE")=DDBRTLE
|
---|
| 24 | .Q
|
---|
| 25 | I $G(@DDBNROOT@("TITLE"))']"" D
|
---|
| 26 | .Q:$$QL(DDBROOT)'>1
|
---|
| 27 | .S DDBRTLER=$NA(@DDBROOT,$$QL(DDBROOT)-1)
|
---|
| 28 | .S DDBRTLE=$P($G(@DDBRTLER@(0)),"^")
|
---|
| 29 | .I DDBRTLE]"" S @DDBNROOT@("TITLE")=DDBRTLE Q
|
---|
| 30 | .Q
|
---|
| 31 | S @DDBNROOT@("DATE")=$H
|
---|
| 32 | Q
|
---|
| 33 | ;
|
---|
| 34 | NROOT(DDBROOT) ; *FUNCTION* return new (negative) root for wp field X-REF
|
---|
| 35 | ;Q $NA(@DDBROOT@(.001)) ;tested ok
|
---|
| 36 | Q $NA(@DDBROOT@(-1)) ;tested ok and in use
|
---|
| 37 | ;Q $NA(@DDBROOT@(0,0)) ;tested ok
|
---|
| 38 | ;
|
---|
| 39 | BINDEX(DDBROOT,DDBRNR,DDBRNRN) ; *FUNCTION* return "B" index root
|
---|
| 40 | N DDBRSUBL,DDBSROOT
|
---|
| 41 | S DDBRSUBL=$$QL(DDBROOT)
|
---|
| 42 | Q:DDBRSUBL'>1 ""
|
---|
| 43 | S DDBSROOT=$NA(@DDBROOT,(DDBRSUBL-2))
|
---|
| 44 | S DDBRNR=DDBSROOT,DDBRNRN=$$QS(DDBROOT,DDBRSUBL)
|
---|
| 45 | Q $NA(@DDBSROOT@("B"))
|
---|
| 46 | ;
|
---|
| 47 | IENROOT(DDBROOT,DDBRLEV) ;pass root,.variable~by reference to return
|
---|
| 48 | ; $qs(ddbroot,$ql(ddbroot))~
|
---|
| 49 | N DDBRSUBL,DDBSROOT
|
---|
| 50 | S DDBRSUBL=$$QL(DDBROOT)
|
---|
| 51 | Q:DDBRSUBL'>1 ""
|
---|
| 52 | S DDBRLEV=$$QS(DDBROOT,DDBRSUBL)
|
---|
| 53 | Q $NA(@DDBROOT,(DDBRSUBL-2))
|
---|
| 54 | ;
|
---|
| 55 | EN ;create anchors and jumps on existing wp entry
|
---|
| 56 | N DDBC,DDBFLG,DDBL,DDBPMSG,DDBSA,DDBX,IOTM,IOBM
|
---|
| 57 | I '$$TEST^DDBRT W $C(7),!!,"This terminal does not support scroll region or reverse index",!! Q
|
---|
| 58 | D LIST^DDBR3(.DDBX)
|
---|
| 59 | I DDBX'>0 W:DDBX=0 $C(7),!!,"No Text",!! Q
|
---|
| 60 | S DDBSA=DDBX(6)
|
---|
| 61 | S DDBFLG=DDBX(4)
|
---|
| 62 | S DDBPMSG=DDBX(5)
|
---|
| 63 | W !,"...compiling anchors and hypertext jumps..."
|
---|
| 64 | D WP(DDBSA,$G(DDBRFLG),DDBPMSG)
|
---|
| 65 | W !,"done!",!
|
---|
| 66 | Q
|
---|
| 67 | ;
|
---|
| 68 | ENP ;create anchors & jumps and 'P'urge non-referenced jumps
|
---|
| 69 | N DDBRFLG
|
---|
| 70 | S DDBRFLG="P"
|
---|
| 71 | G EN
|
---|
| 72 | ;
|
---|
| 73 | ENC ;create anchors and jumps and "C"lear out all jumps prior to building
|
---|
| 74 | N DDBRFLG
|
---|
| 75 | S DDBRFLG="C"
|
---|
| 76 | G EN
|
---|
| 77 | ;
|
---|
| 78 | ; THE FOLLOWING CODE WAS COPIED FROM KERNEL'S XLFUTL ROUTINE
|
---|
| 79 | QL(X) ;$QLENGTH OF GLOBAL STRING
|
---|
| 80 | N %,%1
|
---|
| 81 | S %1="" F %=0:1 Q:%1=$NA(@X,%) S %1=$NA(@X,%)
|
---|
| 82 | Q %-1
|
---|
| 83 | ;
|
---|
| 84 | QS(X1,X2) ;$QSUBSCRIPT OF GLOBAL STRING
|
---|
| 85 | N %,%1,Y
|
---|
| 86 | I X2=-1,X1?1"^"1"[".E1"]".E Q $TR($P($P($NA(@X1,0),"]"),"[",2),"""")
|
---|
| 87 | I X2=-1,X1?1"^"1"|".E1"|".E Q $TR($P($NA(@X1,0),"|",2,$L($NA(@X1,0),"|")-1),"""")
|
---|
| 88 | I X2=0,(X1'?1"^"1"[".E)&(X1'?1"^"1"|".E) Q $NA(@X1,X2)
|
---|
| 89 | I X2=0,X1?1"^"1"[".E1"]".E Q "^"_$P($NA(@X1,X2),"]",2,999)
|
---|
| 90 | I X2=0,X1?1"^"1"|".E Q "^"_$P($NA(@X1,X2),"|",$L($NA(@X1,X2),"|"))
|
---|
| 91 | S %1=$NA(@X1,X2-1)
|
---|
| 92 | I $E(%1,$L(%1))=")" S %1=$E(%1,1,$L(%1)-1)
|
---|
| 93 | S Y=$P($NA(@X1,X2),%1,2,999),Y=$E(Y,1,$L(Y)-1)
|
---|
| 94 | I X2=1,$E(Y)="(" S Y=$E(Y,2,999)
|
---|
| 95 | I X2>1,$E(Y)="," S Y=$E(Y,2,999)
|
---|
| 96 | I $A(Y)=34,$A(Y,$L(Y))=34 S Y=$E(Y,2,$L(Y)-1)
|
---|
| 97 | Q Y
|
---|
| 98 | ;
|
---|
| 99 | GETR(DDBRWPDD,DDBRENS,DDBRFLG) ;return root
|
---|
| 100 | ;pass Word-processing DD#, entries (external format)[separated by(:)]
|
---|
| 101 | ;ie.999008.02,ENTRYONE:SUBENTRY)
|
---|
| 102 | ;
|
---|
| 103 | N DDBRA,DDBROOT,DDBREL,DDBRLVLS,DDBRI,DDBREN,DDBRIEN,DDBRDA,DDBRX,DDBRDD,DDBREEN,X,Y
|
---|
| 104 | Q:'$$UP^DIQGU(DDBRWPDD,.DDBRA)
|
---|
| 105 | S DDBREL=$L(DDBRENS,":"),DDBRLVLS=$O(DDBRA("")),DDBREN=1,DDBRIEN=","
|
---|
| 106 | I $G(DDBRFLG)'["I",$G(DUZ(0))'="@" D Q:$G(DIERR) ""
|
---|
| 107 | .N DIFILE,DIAC,%
|
---|
| 108 | .S DIFILE=+DDBRA(DDBRLVLS),DIAC="RD"
|
---|
| 109 | .D ^DIAC
|
---|
| 110 | .Q:%
|
---|
| 111 | .D ERR("Read access denied, for file #"_DIFILE)
|
---|
| 112 | .Q
|
---|
| 113 | I ("-"_DDBREL)'=DDBRLVLS Q ""
|
---|
| 114 | F DDBRI=DDBRLVLS:1:-1 D Q:$G(DIERR)
|
---|
| 115 | .S DDBRDD=+DDBRA(DDBRI),DDBREEN=$P(DDBRENS,":",DDBREN),DDBREN=DDBREN+1
|
---|
| 116 | .D DA^DILF(DDBRIEN,.DDBRDA)
|
---|
| 117 | .S DDBRIEN=","_+$$DIC($$ROOT^DILFD(DDBRDD,DDBRIEN),DDBREEN,.DDBRDA)_DDBRIEN
|
---|
| 118 | .Q
|
---|
| 119 | I $G(DIERR) K DIERR,^TMP("DIERR",$J) Q ""
|
---|
| 120 | S DDBRX=$$GET^DIQG(+DDBRA(-1),$P(DDBRIEN,",",2,99),$O(^DD(+DDBRA(-1),"SB",+DDBRA(0),"")),"B")
|
---|
| 121 | I $G(DIERR) K DIERR,^TMP("DIERR",$J) Q ""
|
---|
| 122 | Q $P(DDBRX,"$CREF$",2)
|
---|
| 123 | ;
|
---|
| 124 | DIC(DIC,X,DA) ;dic call for exaxt match
|
---|
| 125 | Q:DIC=""!(X="") ""
|
---|
| 126 | S DIC(0)="X" S:$E(X)="`" DIC(0)="N"
|
---|
| 127 | D ^DIC
|
---|
| 128 | Q $G(Y)
|
---|
| 129 | ;
|
---|
| 130 | ERR(DDBERR) N P S P(1)=DDBERR
|
---|
| 131 | I $G(U)="^" N U S U="^"
|
---|
| 132 | D BLD^DIALOG(1700,.P)
|
---|
| 133 | Q
|
---|