File:  [Coherent Logic Development] / freem_fileman / USER / DIALOGU.m
Revision 1.1: download - view: text, annotated - select for diffs
Mon Apr 28 14:13:19 2025 UTC (3 months ago) by snw
Branches: MAIN
CVS tags: HEAD
Restructure repository

    1: DIALOGU	;SFISC/MMW - FUNCTIONS FOR DIALOGS ;11/21/94  13:26
    2: 	;;21.0;VA FileMan;;Dec 28, 1994
    3: 	;Per VHA Directive 10-93-142, this routine should not be modified.
    4: 	Q  ;not for interactive use
    5: OUT(Y,DIALF,%F)	;convert FileMan Data to language dependant output format
    6: 	;Y is the value to transform, DIALF is the type of data
    7: 	;%F Only for "FMTE" node. Passed from FMTE^DILIBF, indicates date format.
    8: 	;DIALF must correspond to at least a subscript in the language file
    9: 	;for the english language (entry #1) but may also have corresponding
   10: 	;entries for other languages
   11: 	I $D(Y)[0!($G(DIALF)="") Q ""
   12: 	N DINAKED,DIY S DINAKED=$$LGR^%ZOSV
   13: 	N DILANG S DILANG=+$G(DUZ("LANG")) S:DILANG<1 DILANG=1
   14: 	S DIY=$G(^DI(.85,DILANG,DIALF)) I DIY="" S:DILANG'=1 DIY=$G(^DI(.85,1,DIALF)) I DIY="" S Y="" G Q
   15: 	X DIY
   16: Q	D:DINAKED]""
   17: 	. I DINAKED["(" Q:$O(@(DINAKED))  Q
   18: 	. I $D(@(DINAKED))
   19: 	. Q
   20: 	Q Y
   21: 	;
   22: PRS(D0,X)	;parse language dependant user input
   23: 	;D0 is an entry in the DIALOG file
   24: 	;X is the user input
   25: 	;the function returns the number of the matching command word
   26: 	;plus the corresponding english text. If no match was found -1 will
   27: 	;be returned. If there is no user input the function returns the
   28: 	;null string.
   29: 	N DINAKED,Y S DINAKED=$$LGR^%ZOSV
   30: 	I '$D(^DI(.84,+$G(D0)))!($G(X)']"") S Y=0 G Q
   31: 	N R,I,I1,IL,T,W,%,DILANG
   32: 	S DILANG=+$G(DUZ("LANG")) S:DILANG<1 DILANG=1
   33: 	I DILANG>1,'$O(^DI(.84,D0,4,DILANG,1,0)) S DILANG=1
   34: 	S X=$$OUT(X,"UC"),U="^"
   35: 	S R=$S(DILANG=1:"^DI(.84,"_D0_",2)",1:"^DI(.84,"_D0_",4,"_DILANG_",1)")
   36: 	S (I,I1,%)=0 F  S I=$O(@R@(I)) Q:'I!%  S T=$$OUT(@R@(I,0),"UC") D
   37: 	.F IL=1:1 S W=$P(T,U,IL) Q:W=""!%  S I1=I1+1 S:$E(W,1,$L(X))=X %=I1_U_$P(@R@(I,0),U,IL)
   38: 	I '% S Y=-1 G Q
   39: 	I DILANG=1 S Y=% G Q
   40: 	S (I,I1)=0,%=+% F  S I=$O(^DI(.84,D0,2,I)) Q:'I!(I1=%)  S T=^(I,0) D
   41: 	.F IL=1:1 Q:$P(T,U,IL)=""!(I1=%)  S I1=I1+1,W=$P(T,U,IL)
   42: 	S Y=%_U_$G(W) G Q

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>