Annotation of freem_fileman/DIQGDDT.m, revision 1.1

1.1     ! snw         1: DIQGDDT        ;SFISC/DCL-DATA DICTIONARY ATTRIBUTE TEXT ;10:22 AM  16 Nov 1994;
        !             2:        ;;21.0;VA FileMan;;Dec 28, 1994
        !             3:        ;Per VHA Directive 10-93-142, this routine should not be modified.
        !             4: LIST(TYPE,DIDARRAY,TP,EQL)     ;DO CALL
        !             5:        ;TYPE="FILETXT" OR "FIELDTXT"
        !             6:        ;DIDARRAY=TARGET ARRAY - IS LOCAL ARRAY PASSED BY REFERENCE WHICH WILL BE SEEDED WITH FILE OR FIELD ATTRIBUTES
        !             7:        ;TP=TEXT PIECE USING ; AS DELIMITER
        !             8:        ;EQL=EQUAL TO - NULL IS DEFAUL OR PIECE OF TXT
        !             9: ENLST  S:$G(TP)'>0 TP=4 S:$G(EQL)'>0 EQL=99
        !            10:        N DIQGI,DIQGX,DIQGY F DIQGI=1:1 S DIQGX=$T(@TYPE+DIQGI),DIQGY=$P(DIQGX,";",TP) Q:DIQGY=""  D
        !            11:        .S DIDARRAY(DIQGY)=$P(DIQGX,";",EQL)
        !            12:        .S:$P(DIQGX,";",5)]"" DIDARRAY(DIQGY,"#(word-processing)")=$S($G(DIQGDFLG)["L":"",1:$P(DIQGX,";",5))
        !            13:        .I $P(DIQGX,";",6)]"" D
        !            14:        ..N TYPE
        !            15:        ..S TYPE=$P(DIQGX,";",7)
        !            16:        ..N DIQGI,DIQGX,DIQGYS
        !            17:        ..F DIQGI=1:1 S DIQGX=$T(@TYPE+DIQGI) Q:$P(DIQGX,";",4)=""  D
        !            18:        ...S DIQGYS=$P(DIQGX,";",4),DIDARRAY(DIQGY,"#",DIQGYS)=""
        !            19:        ...Q
        !            20:        .Q
        !            21:        ;DIQGI,DIQGY ARE SCRATCH VARIABLES USED TO BUILD ARRAY
        !            22:        ;DIQGI INDEXES TEXT AND DIQGY CONTAINS THE ATTRIBUTE NAME
        !            23:        Q
        !            24: DD     N %,%ZISOS,A,D0,D1,D2,DA,DIC,DIW,DIWF,DIWL,DIWR,DIWT,DK,DL,DN,DX,I,POP,S,X,Y,DIQGF,DIQGFN
        !            25:        S DIC=1,DIC(0)="AEMQ" D ^DIC Q:Y'>0  ;Select file
        !            26:        S DIC="^DD("_+Y_",",DIQGFN=+Y
        !            27:        D F(DIQGFN,.DIQGF)
        !            28:        D ^%ZIS Q:POP  U IO
        !            29:        S DIC="^DIC(",DA=DIQGFN
        !            30:        D EN^DIQ
        !            31:        S X=""
        !            32:        F  S X=$O(^DIC(DIQGFN,0,X)) Q:X=""  W !,X,"=",^(X)
        !            33:        S DIQGF="" F  S DIQGF=$O(DIQGF(DIQGFN,DIQGF)) Q:DIQGF=""  D
        !            34:        .W !,$$L("=",IOM),!,"DD NUMBER: ",DIQGF,!
        !            35:        .S DA="" F  S DA=$O(DIQGF(DIQGFN,DIQGF,DA)) Q:DA=""  D
        !            36:        ..W !,$$L("-",IOM),!
        !            37:        ..S DIC="^DD("_DIQGF_"," D EN^DIQ
        !            38:        ..Q
        !            39:        .Q
        !            40:        W !!,"End of Report",!!
        !            41:        D ^%ZISC
        !            42:        Q
        !            43:        ;
        !            44: L(X,RM)        Q $TR($J("",RM)," ",X)
        !            45:        ;
        !            46: F(DIQGDICN,DIQGFSTA,DIQGSEL,DIQGDEL)   ;
        !            47:        ;  DIQGDICN file number
        !            48:        ;  DIQGFSTA Field Selected Target Array(can be passed by reference or
        !            49:        ;                                       as a reference)
        !            50:        ;  DIQGSEL Selection Marker(optional)
        !            51:        ;  DIQGDEL Deselection Marker (optional)
        !            52:        N %,%Y,DA,DDC,DIC,DIQGDWN,DIQGTGA,X,Y
        !            53:        I $D(@("^DIC("_DIQGDICN_",0)")) W !!?4,"'",$P(^(0),"^"),"' FILE",!
        !            54:        S:'$D(DIQGSEL) DIQGSEL="+" S:'$D(DIQGDEL) DIQGDEL="-"
        !            55:        S DIC="^DD("_DIQGDICN_",",DIC(0)="AEMQ",X=$E($G(DIQGFSTA)),DIQGTGA=(X="^"!(X=".")) S:X="." DIQGFSTA=$E(DIQGFSTA,2,99)
        !            56: M      S DIC("W")="W:$P(^(0),U,2) $S($P(^DD(+$P(^(0),U,2),.01,0),U,2)[""W"":""  (word-processing)"",1:""  (multiple)"") W:$D("_$S(DIQGTGA:"@DIQGFSTA@(DIQGDICN,+$E(DIC,5,99),+Y)",1:"DIQGFSTA(DIQGDICN,+$E(DIC,5,99),+Y)")_") DIQGSEL"
        !            57:        D ^DIC I Y'>0,$D(@(DIC_"0,""UP"")")) S DIC="^DD("_+^("UP")_"," G M ;Select field/back out of multiples
        !            58:        S DIQGDWN="" I Y>0,$P(@(DIC_+Y_",0)"),U,2) S DIQGDWN=+$P(^(0),U,2) I $P(^DD(+$P(^(0),U,2),.01,0),U,2)'["W" D T(DIQGDWN) S DIC="^DD("_DIQGDWN_"," G M
        !            59:        I Y>0,DIQGDWN>0 D T(DIQGDWN) G M
        !            60:        I Y>0 D T() G M
        !            61:        Q
        !            62: T(DWN) ;
        !            63:        D @$S(DIQGTGA:"TAR(+$E(DIC,5,99),+Y,$G(DWN))",1:"TBR(+$E(DIC,5,99),+Y,$G(DWN))")
        !            64:        Q
        !            65: TAR(DDFN,FLD,DWNFN)    ;Target array is in DIQGFSTA As a global/local Reference
        !            66:        I DWNFN S @DIQGFSTA@(DIQGDICN,DWNFN)=DDFN_"^"_FLD
        !            67:        I '$D(@DIQGFSTA@(DIQGDICN,DDFN,FLD)) S @DIQGFSTA@(DIQGDICN,DDFN,FLD)=$S(DWNFN:DWNFN,1:"") Q
        !            68:        I DWNFN,$D(@DIQGFSTA@(DIQGDICN,DWNFN))>9 Q
        !            69:        N X S X=$G(@DIQGFSTA@(DIQGDICN,DDFN,FLD)) I X K @DIQGFSTA@(DIQGDICN,$P(X,"^"))
        !            70:        K @DIQGFSTA@(DIQGDICN,DDFN,FLD) W DIQGDEL Q
        !            71:        Q
        !            72: TBR(DDFN,FLD,DWNFN)    ;Target array DIQGFSTA is a local array passed By Reference
        !            73:        I DWNFN S DIQGFSTA(DIQGDICN,DWNFN)=DDFN_"^"_FLD
        !            74:        I '$D(DIQGFSTA(DIQGDICN,DDFN,FLD)) S DIQGFSTA(DIQGDICN,DDFN,FLD)=$S(DWNFN:DWNFN,1:"") Q
        !            75:        I DWNFN,$D(DIQGFSTA(DIQGDICN,DWNFN))>9 Q
        !            76:        N X S X=$G(DIQGFSTA(DIQGDICN,DDFN,FLD)) I X K DIQGFSTA(DIQGDICN,$P(X,"^"))
        !            77:        K DIQGFSTA(DIQGDICN,DDFN,FLD) W DIQGDEL Q
        !            78:        Q
        !            79:        ;
        !            80:        ;ATRBUTE FLD #;ATRBUTE NAME;1=WORD PROCESSING
        !            81: FILETXT        ;
        !            82:        ;;.01;NAME;
        !            83:        ;;1;GLOBAL NAME;
        !            84:        ;;1.1;ENTRIES;
        !            85:        ;;4;DESCRIPTION;1
        !            86:        ;;20;DEVELOPER;
        !            87:        ;;21;DATE;
        !            88:        ;;31;DD ACCESS;
        !            89:        ;;32;DD ACCESS;
        !            90:        ;;33;WR ACCESS;
        !            91:        ;;34;DEL ACCESS;
        !            92:        ;;35;LAYGO ACCESS;
        !            93:        ;;36;AUDIT ACCESS;
        !            94:        ;;50;LOOKUP PROGRAM;
        !            95:        ;;51;VERSION;
        !            96:        ;;51.1;DISTRIBUTION PACKAGE;
        !            97:        ;;51.2;PACKAGE REVISION DATA;
        !            98:        ;;54;ARCHIVE FILE;
        !            99:        ;;100.6;REQUIRED IDENTIFIERS;;1;RI
        !           100:        ;;
        !           101: FIELDTXT       ;
        !           102:        ;;.01;LABEL;
        !           103:        ;;.1;TITLE;
        !           104:        ;;.2;SPECIFIER;
        !           105:        ;;.24;DECIMAL DEFAULT;
        !           106:        ;;.25;TYPE;
        !           107:        ;;.26;COMPUTE ALGORITHM;
        !           108:        ;;.28;MULTIPLE-VALUED;
        !           109:        ;;.3;POINTER;
        !           110:        ;;.4;GLOBAL SUBSCRIPT LOCATION;
        !           111:        ;;.5;INPUT TRANSFORM;
        !           112:        ;;1.1;AUDIT;
        !           113:        ;;1.2;AUDIT CONDITION;
        !           114:        ;;2;OUTPUT TRANSFORM;
        !           115:        ;;3;HELP-PROMPT;
        !           116:        ;;4;XECUTABLE HELP;
        !           117:        ;;8;READ ACCESS;
        !           118:        ;;8.5;DELETE ACCESS;
        !           119:        ;;9;WRITE ACCESS;
        !           120:        ;;9.01;COMPUTED FIELDS USED;
        !           121:        ;;10;SOURCE;
        !           122:        ;;21;DESCRIPTION;1
        !           123:        ;;23;TECHNICAL DESCRIPTION;1
        !           124:        ;;50;DATE FIELD LAST EDITED;
        !           125:        ;;200;FIELD LENGTH;
        !           126:        ;
        !           127: RI     ;REQUIRED IDENTIFIERS
        !           128:        ;;1;FIELD;
        !           129:        ;;

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