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))
|
---|