Annotation of freem_fileman/DIALOGU.m, revision 1.1.1.1

1.1       snw         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>