Annotation of freem_fileman/DINIT42.m, revision 1.1

1.1     ! snw         1: DINIT42        ;SFISC/XAK-INITIALIZE VA FILEMAN ;1/10/91  1:43 PM
        !             2:        ;;21.0;VA FileMan;;Dec 28, 1994
        !             3:        ;Per VHA Directive 10-93-142, this routine should not be modified.
        !             4:        S %=47
        !             5: DD     F I=1:5 S X=$E($T(DD+I),4,999),%=%+1 G FUNC:X?.P S ^DD("FUNC",%,0)=$P(X,";"),Y=I F DU=1,2,3,9 S Y=Y+1,X=$E($T(DD+Y),4,999) I X]"" S ^(DU)=X
        !             6:        ;;PARAM
        !             7:        ;;S X=$S(X=""!(X'?.ANP):"",$D(DIPA($E(X,1,30))):DIPA($E(X,1,30)),1:"")
        !             8:        ;;
        !             9:        ;;
        !            10:        ;;RETURNS VALUE OF PARAMETER NAMED BY ARGUMENT
        !            11:        ;;IOM
        !            12:        ;;S X=$S($D(IOM):IOM,1:80)
        !            13:        ;;
        !            14:        ;;0
        !            15:        ;;RETURNS THE NUMBER OF COLUMN POSITIONS ON THE PAGE OR SCREEN (E.G., 80)
        !            16:        ;;DUP
        !            17:        ;;S %=X,X="" Q:X1=""  S $P(X,X1,%\$L(X1)+1)=X1,X=$E(X,1,%)
        !            18:        ;;
        !            19:        ;;2
        !            20:        ;;DUPLICATES THE 1ST ARGUMENT INTO AN 'N'-BYTE STRING, WHERE 'N' IS 2ND ARGUMENT
        !            21:        ;;STRIPBLANKS
        !            22:        ;;X:X[" " "F %=0:0 Q:$A(X)-32  S X=$E(X,2,999)","F %=0:0 S %=$L(X) Q:$A(X,%)-32  S X=$E(X,1,%-1)"
        !            23:        ;;
        !            24:        ;;
        !            25:        ;;DELETES LEADING AND TRAILING SPACES FROM THE ARGUMENT STRING
        !            26:        ;;TRANSLATE
        !            27:        ;;X "F %=1:1:$L(X1) F %Y=0:0 S %Y=$F(X2,$E(X1,%),%Y) Q:'%Y  S I=$E(X,%),X2=$E(X2,1,%Y-2)_I_$E(X2,%Y,999) S:I="""" %Y=%Y-1" S X=X2
        !            28:        ;;
        !            29:        ;;3
        !            30:        ;;REPLACES, IN ARG1, EACH OCCURRENCE OF EACH CHAR IN ARG2 WITH THE CORRESPONDING CHAR IN ARG3
        !            31:        ;;PADRIGHT
        !            32:        ;;S:$L(X1)<X X1=X1_$J("",X-$L(X1)) S X=X1
        !            33:        ;;
        !            34:        ;;2
        !            35:        ;;RETURNS 'ARG1', WITH SPACES ADDED TO GENERATE A STRING 'ARG2' BYTES LONG
        !            36:        ;;FILE
        !            37:        ;;S X=$S('X:X,X'["(":X,'$D(@(U_$E($P(X,+X,2,99),2,99)_"0)")):X,1:$P(^(0),U))
        !            38:        ;;
        !            39:        ;;1
        !            40:        ;;Names file for variable pointer type fields.
        !            41:        ;;USER
        !            42:        ;;S %=$S($D(^VA(200,+DUZ,0)):^(0),1:""),X=$S('DUZ:"??",X="#":DUZ,X="N":$P(%,U,1),X="I":$P(%,U,2),X="T":$S($D(^DIC(3.1,+$P(%,U,9),0)):$P(^(0),U,1),1:""),X="NN":$S($D(^VA(200,+DUZ,.1)):$P(^(.1),U,4),1:""),1:"??") K %
        !            43:        ;;
        !            44:        ;;1
        !            45:        ;;RETURNS USER ATTRIBUTES: #=NUMBER,N=NAME,I=INITIAL,T=TITLE,NN=NICKNAME
        !            46:        ;;VAR
        !            47:        ;;Q:X[U!(X["$C(94)")!X  S X=$S($D(@X):@X,1:"")
        !            48:        ;;
        !            49:        ;;1
        !            50:        ;;RETURNS VALUE OF A LOCAL VARIABLE IF IT'S THERE
        !            51:        ;;SETDATA
        !            52:        ;;S X1=X
        !            53:        ;;
        !            54:        ;;2
        !            55:        ;;SETS FIRST ARGUMENT EQUAL TO THE SECOND ARGUMENT
        !            56:        ;;NOON
        !            57:        ;;S %DT="XR",X="T@NOON" D ^%DT S X=+Y
        !            58:        ;;D
        !            59:        ;;0
        !            60:        ;;RETURNS THE CURRENT DATE AND THE TIME VALUE OF 12:OO.
        !            61:        ;;MID
        !            62:        ;;S %DT="XR",X="T@MID" D ^%DT S X=+Y
        !            63:        ;;D
        !            64:        ;;0
        !            65:        ;;RETURNS THE CURRENT DATE AND THE TIME VALUE OF 24:00.
        !            66:        ;;
        !            67: FUNC   F I=2:1:8 S X=$T(FUNC+I),^DD("FUNC",I+91,0)=$P(X,";",3),^(9)=$P(X,";",4)
        !            68:        G ^DINIT5
        !            69:        ;;MAXIMUM;TAKES MULTIPLE-VALUED FIELD AS ARGUMENT.  RETURNS THE MAXIMUM VALUE OF ALL THE MULTIPLES.
        !            70:        ;;MINIMUM;TAKES MULTIPLE-VALUED FIELD AS ARGUMENT.  RETURNS THE MINIMUM VALUE OF ALL THE MULTIPLES.
        !            71:        ;;NEXT;TAKES SINGLE-VALUED FIELD AS ARGUMENT.  RETURNS THE VALUE THAT THAT FIELD HAS IN THE NEXT ENTRY OR SUB-ENTRY.
        !            72:        ;;PREVIOUS;TAKES SINGLE-VALUED FIELD AS ARGUMENT.  RETURNS THE VALUE THAT THAT FIELD HAS IN THE PREVIOUS ENTRY OR SUB-ENTRY.
        !            73:        ;;TOTAL;TAKES MULTIPLE-VALUED FIELD AS ARGUMENT.  RETURNS THE TOTAL OF ALL THE MULTIPLES FOR WHICH THERE ARE VALUES.
        !            74:        ;;COUNT;TAKES MULTIPLE-VALUED FIELD (OR FILE NAME) AS ARGUMENT.  RETURNS THE NUMBER OF MULTIPLES CURRENTLY EXISTING.
        !            75:        ;;LAST;TAKES MULTIPLE-VALUED FIELD NAME AS ARGUMENT.  RETURNS THE VALUE OF THE LAST MULTIPLE.

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