Annotation of freem_fileman/DDSCLONF.m, revision 1.1.1.1

1.1       snw         1: DDSCLONF       ;SFISC/MKO-CLONE A FORM ;01:47 PM  29 Jul 1994
                      2:        ;;21.0;VA FileMan;;Dec 28, 1994
                      3:        ;Per VHA Directive 10-93-142, this routine should not be modified.
                      4:        D ASKCONT Q:DDSQUIT
                      5:        D CREATBK Q:DDSQUIT
                      6:        D CREATFM Q:DDSQUIT
                      7:        D EDITFM
                      8:        D INDEXFM
                      9:        K DDSNFRM
                     10:        Q
                     11:        ;
                     12: CREATBK        ;Create blocks
                     13:        N DA,DIC
                     14:        W !!,"Creating new blocks ...",!
                     15:        S DDSBKDA=0
                     16:        F  S DDSBKDA=$O(^TMP("DDSCLONE",$J,DDSBKDA)) Q:'DDSBKDA!DDSQUIT  D
                     17:        . S DDSBK=^TMP("DDSCLONE",$J,DDSBKDA)
                     18:        . W !?2,$P(DDSBK,U,2)
                     19:        . K DIC
                     20:        . S DIC="^DIST(.404,",DIC(0)="QL",X=$P(DDSBK,U,2)
                     21:        . D FILE^DICN K DIC
                     22:        . I Y=-1 D  Q
                     23:        .. W !,$C(7)_"Attempt to create block "_$P(DDSBK,U,2)_" failed."
                     24:        .. S DDSQUIT=1
                     25:        . M ^DIST(.404,+Y)=^DIST(.404,DDSBKDA)
                     26:        . S $P(^DIST(.404,+Y,0),U)=$P(DDSBK,U,2)
                     27:        . W ?35,"#"_+Y
                     28:        . S $P(^TMP("DDSCLONE",$J,DDSBKDA),U,3)=+Y
                     29:        Q
                     30:        ;
                     31: CREATFM        ;Create form
                     32:        N DA,DIC,DDSI,DDSJ
                     33:        W !!,"Creating new form ..."
                     34:        W !?2,$P(DDSFORM,U,3)
                     35:        K DIC
                     36:        S DIC="^DIST(.403,",DIC(0)="QL",X=$P(DDSFORM,U,3)
                     37:        D FILE^DICN K DIC
                     38:        I Y=-1 D  Q
                     39:        . W !,$C(7)_"Attempt to create form "_$P(DDSFORM,U,3)_" failed."
                     40:        . S DDSQUIT=1
                     41:        M ^DIST(.403,+Y)=^DIST(.403,+DDSFORM)
                     42:        ;
                     43:        ;Kill page and block multiple indexes
                     44:        S DDSJ=" " F  S DDSJ=$O(^DIST(.403,+Y,40,DDSJ)) Q:DDSJ=""  D
                     45:        . K ^DIST(.403,+Y,40,DDSJ)
                     46:        S DDSI=0 F  S DDSI=$O(^DIST(.403,+Y,40,DDSI)) Q:'DDSI  D
                     47:        . S DDSJ=" "
                     48:        . F  S DDSJ=$O(^DIST(.403,+Y,40,DDSI,40,DDSJ)) Q:DDSJ=""  D
                     49:        .. K ^DIST(.403,+Y,40,DDSI,40,DDSJ)
                     50:        K ^DIST(.403,+Y,"AZ")
                     51:        ;
                     52:        S $P(^DIST(.403,+Y,0),U)=$P(DDSFORM,U,3)
                     53:        W ?35,"#"_+Y
                     54:        S DDSNFRM=+Y
                     55:        Q
                     56:        ;
                     57: EDITFM ;Edit blocks used on new form
                     58:        W !!,"Repointing to new blocks ..."
                     59:        N DDSBK,DDSNBK,DDSPG
                     60:        S DDSPG=0 F  S DDSPG=$O(^DIST(.403,DDSNFRM,40,DDSPG)) Q:'DDSPG  D
                     61:        . S DDSBK=$P(^DIST(.403,DDSNFRM,40,DDSPG,0),U,2)
                     62:        . I DDSBK]"" D
                     63:        .. N DIE,DA,DR
                     64:        .. S DIE="^DIST(.403,"_DDSNFRM_",40,"
                     65:        .. S DA(1)=DDSNFRM,DA=DDSPG
                     66:        .. S DR="1////"_$P(^TMP("DDSCLONE",$J,DDSBK),U,3)
                     67:        .. D ^DIE
                     68:        . ;
                     69:        . N DA,DIK
                     70:        . S DIK="^DIST(.403,"_DDSNFRM_",40,"_DDSPG_",40,"
                     71:        . S DA(2)=DDSNFRM,DA(1)=DDSPG
                     72:        . S DDSBK=0
                     73:        . F  S DDSBK=$O(^DIST(.403,DDSNFRM,40,DDSPG,40,DDSBK)) Q:'DDSBK  D
                     74:        .. Q:$D(^TMP("DDSCLONE",$J,DDSBK))[0  S DDSNBK=$P(^(DDSBK),U,3)
                     75:        .. M ^DIST(.403,DDSNFRM,40,DDSPG,40,DDSNBK)=^DIST(.403,DDSNFRM,40,DDSPG,40,DDSBK)
                     76:        .. S $P(^DIST(.403,DDSNFRM,40,DDSPG,40,DDSNBK,0),U)=DDSNBK
                     77:        .. S DA=DDSBK
                     78:        .. D ^DIK
                     79:        Q
                     80:        ;
                     81: INDEXFM        ;Index new form
                     82:        W !,"Reindexing new form ..."
                     83:        N DIK,DA
                     84:        S DIK="^DIST(.403,",DA=DDSNFRM
                     85:        D IX1^DIK
                     86:        ;
                     87:        D EN^DDSZ(DDSNFRM)
                     88:        Q
                     89:        ;
                     90: ASKCONT        ;Final chance to abort
                     91:        K DIR S DIR(0)="Y"
                     92:        S DIR("A",1)=""
                     93:        S DIR("A")="Ready to clone form"
                     94:        S DIR("?")="  Enter 'Y' to clone form.  Enter 'N' to exit."
                     95:        D ^DIR K DIR
                     96:        S:$D(DIRUT)!'Y DDSQUIT=1
                     97:        Q

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