Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: AURXREF2

AURXREF2.m

Go to the documentation of this file.
  1. AURXREF2 ; INITIALIZATION ROUTINES FOR DRIVER [ 10/27/87 8:34 AM ]
  1. ; EDE/10-12-87
  1. ;
  1. W !!,"Invalid entry point!",! S AURXREF("QFLG")=99
  1. Q
  1. ;
  1. INIT ; INITIALIZATION
  1. S U="^"
  1. W !!,"RE-INDEX selected cross-references.",!
  1. S AURXREF("QFLG")=0
  1. K ^UTILITY("AURXREF",$J)
  1. Q
  1. ;
  1. GETFILE ; GET FILE TO BE RE-XREFED
  1. S DIC="^DIC(",DIC(0)="AEMQ" D ^DIC K DIC
  1. I Y<0 S AURXREF("QFLG")=1 Q
  1. S AURXREF("FILE")=+Y
  1. S AURXREF("GBL")=^DIC(AURXREF("FILE"),0,"GL")
  1. Q
  1. ;
  1. BLDXRT ; BUILD XREF TABLE
  1. F AURXREF("L")=0:0 D GETFIELD Q:AURXREF("FIELD")=""
  1. S:'$O(^UTILITY("AURXREF",$J,"")) AURXREF("QFLG")=1
  1. Q
  1. ;
  1. GETFIELD ; GET FIELD TO XREF
  1. W !
  1. S AURXREF("FIELD")=""
  1. S DIC="^DD("_AURXREF("FILE")_",",DIC(0)="AEMQ" D ^DIC K DIC
  1. Q:Y<0
  1. S AURXREF("FIELD")=+Y
  1. S X=$P(^DD(AURXREF("FILE"),AURXREF("FIELD"),0),U,4)
  1. S AURXREF("NODE")=$P(X,";",1)
  1. S AURXREF("PIECE")=$P(X,";",2)
  1. I AURXREF("PIECE")=0 D GFRCR Q
  1. I AURXREF("NODE")=" " W !!,"Computed fields do not have xrefs." Q
  1. I $D(^DD(AURXREF("FILE"),AURXREF("FIELD"),1)),$O(^(1,0)) D XREFS Q
  1. W !!,"This field has no xrefs!"
  1. Q
  1. ;
  1. GFRCR ; GET FIELD RECURSION
  1. S AURXREF("SAVE FILE")=AURXREF("FILE"),AURXREF("SAVE FIELD")=AURXREF("FIELD")
  1. F Y="AURXREF" S %RCR(Y)=""
  1. S AURXREF("FILE")=+$P(^DD(AURXREF("FILE"),AURXREF("FIELD"),0),U,2)
  1. S %RCR="RECURSE^AURXREF2" D STORLIST^%RCR
  1. S AURXREF("FILE")=AURXREF("SAVE FILE"),AURXREF("FIELD")=AURXREF("SAVE FIELD")
  1. ;ZW AURXREF
  1. Q
  1. ;
  1. RECURSE ;
  1. F AURXREF("L")=0:0 D GETFIELD Q:AURXREF("FIELD")=""
  1. Q
  1. ;
  1. XREFS ; DISPLAY XREFS FOR FIELD
  1. W !,"This field has the following xrefs. Select by number:"
  1. S AURXREF("XREF")=0 F AURXREF("L")=0:0 S AURXREF("XREF")=$O(^DD(AURXREF("FILE"),AURXREF("FIELD"),1,AURXREF("XREF"))) Q:AURXREF("XREF")="" D XREFS2
  1. F AURXREF("L")=0:0 D GETXREF Q:AURXREF("XREF")=""
  1. Q
  1. ;
  1. XREFS2 ; DISPLAY XREFS
  1. S X=$P(^DD(AURXREF("FILE"),AURXREF("FIELD"),1,AURXREF("XREF"),0),U,2)
  1. S Y=""
  1. S:X="" Y="TRIGGER"
  1. I Y="",'$F(^DD(AURXREF("FILE"),AURXREF("FIELD"),1,AURXREF("XREF"),1),"("""_X_"""") S Y="SUB-FILE LEVEL"
  1. W !,AURXREF("XREF"),?10,X,?20,Y
  1. Q
  1. ;
  1. GETXREF ; GET XREFS FROM FIELD
  1. W !
  1. S AURXREF("XREF")=""
  1. S DIC="^DD("_AURXREF("FILE")_","_AURXREF("FIELD")_",1,",DIC(0)="AEMQ" D ^DIC
  1. Q:Y<0
  1. S AURXREF("XREF")=+Y
  1. D INFOSAVE
  1. Q
  1. ;
  1. INFOSAVE ; GET XREF/NODE/PIECE INFO AND SAVE
  1. S X=$P(^DD(AURXREF("FILE"),AURXREF("FIELD"),1,AURXREF("XREF"),0),U,2)
  1. I X="" W !!,*7,"Sorry, I don't do TRIGGERS!" Q
  1. I '$F(^DD(AURXREF("FILE"),AURXREF("FIELD"),1,AURXREF("XREF"),1),"("""_X_"""") W !!,*7,"Sorry, I only do xrefs at the file level!" Q
  1. S ^UTILITY("AURXREF",$J,AURXREF("FILE"),AURXREF("FIELD"),AURXREF("XREF"))=X
  1. Q
  1. ;
  1. CONFIRM ; GET USER CONFIRMATION
  1. W !!,"The ",$P(^DIC(AURXREF("FILE"),0),U,1)," file contains ",$P(@(AURXREF("GBL")_"0)"),U,4)," entries. The following xrefs will be",!,"killed and reset by the specified file or sub-file, and field:",!
  1. S AURXREF("FILE")="" F AURXREF("L")=0:0 S AURXREF("FILE")=$O(^UTILITY("AURXREF",$J,AURXREF("FILE"))) Q:AURXREF("FILE")="" D CONFIRM2
  1. R !!,"Do you want to continue (Y/N) Y//",X
  1. S:"Yy"'[$E(X) AURXREF("QFLG")=1
  1. Q
  1. CONFIRM2 ;
  1. S AURXREF("FIELD")="" F AURXREF("L")=0:0 S AURXREF("FIELD")=$O(^UTILITY("AURXREF",$J,AURXREF("FILE"),AURXREF("FIELD"))) Q:AURXREF("FIELD")="" D CONFIRM3
  1. Q
  1. ;
  1. CONFIRM3 ;
  1. S AURXREF("XREF")="" F AURXREF("L")=0:0 S AURXREF("XREF")=$O(^UTILITY("AURXREF",$J,AURXREF("FILE"),AURXREF("FIELD"),AURXREF("XREF"))) Q:AURXREF("XREF")="" D CONFIRM4
  1. Q
  1. ;
  1. CONFIRM4 ;
  1. W !,AURXREF("FILE"),?15,AURXREF("FIELD"),?25,^(AURXREF("XREF"))
  1. Q