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>