Annotation of freem_fileman/DDXPLIB.m, revision 1.1.1.1

1.1       snw         1: DDXPLIB        ;SFISC/DPC-EXPORT LIBRARY ;1/25/93  13:05
                      2:        ;;21.0;VA FileMan;;Dec 28, 1994
                      3:        ;Per VHA Directive 10-93-142, this routine should not be modified.
                      4: FLDNM(DDXPXTNO)        ;
                      5:        N %D,%I,FLD,NAMELST,NAME
                      6:        S NAMELST=""
                      7:        S %D=$P($G(^DIST(.44,+$G(^DIPT(DDXPXTNO,105)),0)),U,2)
                      8:        S %D=$$BLDELIM^DDXP3(%D)
                      9:        S %D=$C(%D),FLD=0
                     10:        F %I=0:1 S FLD=$O(^DIPT(DDXPXTNO,100,FLD)) Q:FLD<1  D
                     11:        . S NAME=$P(^DIPT(DDXPXTNO,100,FLD,0),U,4)
                     12:        . S NAMELST=NAMELST_NAME_%D
                     13:        . Q
                     14:        S NAMELST=$P(NAMELST,%D,1,%I)
                     15:        Q NAMELST
                     16:        ;
                     17: DP123(DDXPXTNO)        ;
                     18:        N FLD,FLDZO,DPLN,I,DT,LEN,DTCHAR
                     19:        S DPLN=""
                     20:        F FLD=0:0 S FLD=$O(^DIPT(DDXPXTNO,100,FLD)) Q:FLD<1  S FLDZO=^(FLD,0) D
                     21:        . S DT=$P(FLDZO,U,2)
                     22:        . S LEN=$P(FLDZO,U,3)
                     23:        . S DTCHAR=$S(DT=4:"L",DT=2:"V",DT=1:"D",1:"L")
                     24:        . S DPLN=DPLN_DTCHAR
                     25:        . F I=1:1:LEN-1 S DPLN=DPLN_">"
                     26:        . Q
                     27:        Q DPLN
                     28:        ;
                     29: DPXCEL(DDXPXTNO)       ;
                     30:        N DPLN,FLD,FLDZO,LEN,I
                     31:        S DPLN=""
                     32:        F FLD=0:0 S FLD=$O(^DIPT(DDXPXTNO,100,FLD)) Q:FLD<1  S FLDZO=^(FLD,0) D
                     33:        . S LEN=$P(FLDZO,U,3)
                     34:        . S DPLN=DPLN_"|"
                     35:        . F I=1:1:LEN-1 S DPLN=DPLN_" "
                     36:        . Q
                     37:        Q DPLN
                     38:        ;
                     39: SASCOL ;
                     40:        N INPUTLN,FLD,NAME,DTYPE,DTYPEFOR,START,END,LENGTH,FLD0
                     41:        S INPUTLN="INPUT ",START=1,FLD=0
                     42:        F  S FLD=$O(^DIPT(DDXPXTNO,100,FLD)) Q:FLD<1  S FLD0=^(FLD,0) D
                     43:        . S NAME=$P(FLD0,U,4)_" ",LENGTH=$P(FLD0,U,3),DTYPE=$P(FLD0,U,2)
                     44:        . S DTYPEFOR=$S(DTYPE=4:"$ ",DTYPE=1:"YYMMDD"_LENGTH_". ",1:"")
                     45:        . S END=START+LENGTH-1
                     46:        . S INPUTLN=INPUTLN_NAME_DTYPEFOR_$S(DTYPE=1:"",1:START_"-"_END_" ")
                     47:        . S START=END+1
                     48:        . Q
                     49:        S INPUTLN=$E(INPUTLN,1,$L(INPUTLN)-1)_";"
                     50:        W INPUTLN,!,"CARDS;"
                     51:        Q
                     52:        ;
                     53: ORACTL ;
                     54:        N FLD,FLD0,DELIM,NAME,LENGTH,DTYPEFRM,END,START,POS
                     55:        S FLD=0,DELIM=$P(^DIST(.44,DDXPFFNO,0),U,2),START=1,POS=""
                     56:        W "LOAD DATA",!
                     57:        W "INFILE *",!
                     58:        W "APPEND",!
                     59:        W "INTO TABLE "_$TR($P(^DIPT(DDXPXTNO,0),U,1)," ","_"),!
                     60:        W:DELIM]"" "FIELDS TERMINATED BY '"_DELIM_"' OPTIONALLY ENCLOSED BY '""'",!
                     61:        W "("
                     62:        F  S FLD=$O(^DIPT(DDXPXTNO,100,FLD)) Q:FLD<1  W:FLD>1 ",",! S FLD0=^(FLD,0) D
                     63:        . S NAME=$P(FLD0,U,4)_" ",LENGTH=$P(FLD0,U,3)
                     64:        . S DTYPEFRM=$S($P(FLD0,U,2)=1:" DATE 'MON DD,YYYY'",1:"")
                     65:        . I LENGTH>0 D
                     66:        . . S END=START+LENGTH-1
                     67:        . . S POS="POSITION ("_START_":"_END_")"
                     68:        . . S START=END+1
                     69:        . . Q
                     70:        . W NAME_POS_DTYPEFRM
                     71:        W " )",!
                     72:        W "BEGINDATA",!
                     73:        Q

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