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
|
---|