| 1 | DDBRZIS ;SFISC/DCL-BROWSER DEVICE UTILITIES ;4:50 AM  9 Apr 2006
 | 
|---|
| 2 |  ;;22.0;VA FileMan;**145,148**;Mar 30, 1999
 | 
|---|
| 3 |  ;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 | OPEN ;
 | 
|---|
| 5 |  ;DDBRZIS AND DDBDMSG ARE KILLED IN POST
 | 
|---|
| 6 |  S DDBRZIS=1,DDBDMSG=$G(DDBDMSG)
 | 
|---|
| 7 |  U IO(0)
 | 
|---|
| 8 |  I $G(DDBDMSG)="" D  Q:DDBDMSG="$$DTOUT$$"
 | 
|---|
| 9 |  .N DIR,X,Y
 | 
|---|
| 10 |  .S DIR(0)="FUO^0:78",DIR("A")="BROWSER TITLE (optional)"
 | 
|---|
| 11 |  .S DIR("B")="VA FileMan Browser"
 | 
|---|
| 12 |  .S DIR("?")="Enter any free text, which will appear in the Title Bar"
 | 
|---|
| 13 |  .D ^DIR
 | 
|---|
| 14 |  .I $G(DTOUT) S DDBDMSG="$$DTOUT$$" K DTOUT,DUOUT,DIRUT,DIROUT Q
 | 
|---|
| 15 |  .S DDBDMSG=$S(Y="":DDBDMSG,1:Y)
 | 
|---|
| 16 |  .Q
 | 
|---|
| 17 |  W !,"...one moment..."
 | 
|---|
| 18 |  U IO
 | 
|---|
| 19 |  Q:DDBDMSG]""
 | 
|---|
| 20 |  I $G(DHD)="W """" D ^DIDH" S DDBDMSG="DATA DICTIONARY" Q
 | 
|---|
| 21 |  S DDBDMSG="VA FileMan Browser"
 | 
|---|
| 22 |  Q
 | 
|---|
| 23 |  ;
 | 
|---|
| 24 | CLOSE ;
 | 
|---|
| 25 |  Q:$G(DDBDMSG)="$$DTOUT$$"
 | 
|---|
| 26 |  S DDBRZIS=$G(DDBRZIS,1)
 | 
|---|
| 27 |  N C,CHAR,DDBROS,EOF,X
 | 
|---|
| 28 |  K ^TMP("DDB",$J)
 | 
|---|
| 29 |  S DDBROS=^%ZOSF("OS"),EOF="EOF-End Of File"
 | 
|---|
| 30 |  S CHAR="" F I=1:1:31 S CHAR=CHAR_$C(I)
 | 
|---|
| 31 |  U IO W !,EOF,!
 | 
|---|
| 32 |  S DDBRZIS("REWIND")=$$REWIND^%ZIS(IO,IOT,IOPAR)
 | 
|---|
| 33 |  I 'DDBRZIS("REWIND") S DDBRZIS=0 U IO(0) W $C(7),!!?5,"<< UNABLE TO REWIND FILE>>",! H 3 Q
 | 
|---|
| 34 |  U IO
 | 
|---|
| 35 |  S C=0
 | 
|---|
| 36 |  F  R X:2 Q:X="EOF-End Of File"  D
 | 
|---|
| 37 |  .S X=$TR(X,CHAR)
 | 
|---|
| 38 |  .S:X']"" X=" "
 | 
|---|
| 39 |  .S C=C+1,^TMP("DDB",$J,C)=$E(X,1,255) Q
 | 
|---|
| 40 |  .Q
 | 
|---|
| 41 |  Q
 | 
|---|
| 42 |  ;
 | 
|---|
| 43 | POST ;
 | 
|---|
| 44 |  I $G(DDBDMSG)="$$DTOUT$$" K DDBDMSG,DDBRZIS W $C(7) Q
 | 
|---|
| 45 |  I $G(DDBRZIS) D BROWSE^DDBR("^TMP(""DDB"",$J)","NR",$G(DDBDMSG))
 | 
|---|
| 46 |  ; *148* Moved to POST-CLOSE EXECUTE of BROWSER device
 | 
|---|
| 47 |  ;I ^%ZOSF("OS")["OpenM",$G(IO("CLOSE"))]"" S DDBRZIS=$ZF(-1,"del "_ IO("CLOSE")_";*")
 | 
|---|
| 48 |  K DDBRZIS,DDBDMSG
 | 
|---|
| 49 |  Q
 | 
|---|
| 50 |  ;
 | 
|---|
| 51 | DEVICE(MSG) ;TEST IF BROWSER IS BEING INVOKED VIA DEVICE HANDLER
 | 
|---|
| 52 |  ;EXTRINSIC FUNCTION
 | 
|---|
| 53 |  I $D(DDBRZIS)#2,$G(MSG)]"" S DDBDMSG=MSG Q 1
 | 
|---|
| 54 |  Q 0
 | 
|---|
| 55 |  ;
 | 
|---|
| 56 | MSG(TXT) ;PASS TEXT FOR BROWSER TITLE WHEN BROWSER INVOKED VIA DEVICE HANDLER
 | 
|---|
| 57 |  ;PROCEDURE CALL
 | 
|---|
| 58 |  S DDBDMSG=$G(TXT)
 | 
|---|
| 59 |  Q
 | 
|---|
| 60 | STR(X) ;  Remove windows
 | 
|---|
| 61 |  N I,Y
 | 
|---|
| 62 |  I $L(X,"|")'>2 Q X
 | 
|---|
| 63 |  I X["|WRAP|"!(X["| NO WRAP|")!(X["|NOWRAP|") S Y="" F I=1:1:$L(X,"|") S:(I#2) Y=Y_$P(X,"|",I)
 | 
|---|
| 64 |  Q $S(X'["|":X,1:$G(Y))
 | 
|---|