File:  [Coherent Logic Development] / freem_fileman / USER / DDSCLONF.m
Revision 1.1: download - view: text, annotated - select for diffs
Mon Apr 28 14:13:19 2025 UTC (3 months ago) by snw
Branches: MAIN
CVS tags: HEAD
Restructure repository

    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>