[613] | 1 | DDSCLONF ;SFISC/MKO-CLONE A FORM ;1:35 PM 4 Sep 1998
|
---|
| 2 | ;;22.0;VA FileMan;;Mar 30, 1999
|
---|
| 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,DD,DO
|
---|
| 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 @$$REF^DDS0(+Y)
|
---|
| 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
|
---|