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

XBRSRCH4.m

Go to the documentation of this file.
  1. XBRSRCH4 ; IHS/ADC/GTH - SEARCH XREFS FOR ROUTINES ; [ 02/07/97 3:02 PM ]
  1. ;;3.0;IHS/VA UTILITIES;;FEB 07, 1997
  1. ;
  1. ; Part of XBRSRCH
  1. ;
  1. START ;
  1. W !!,"This routine searches a file for XREFS that call routines.",!
  1. S U="^",DIC="^DIC(",DIC(0)="AEMQ"
  1. D ^DIC
  1. I Y<0 D EOJ Q
  1. S XBSXREF("FILE")=+Y
  1. KILL ^UTILITY("XBRSRCH",$J)
  1. S XBSXREF("MASTER")=""
  1. EN ;EP - ENTRY POINT FOR CALLING ROUTINES
  1. S XBSXREF("LAST FILE")=""
  1. D SBTRACE
  1. D:$D(XBSXREF("MASTER")) LIST
  1. D EOJ
  1. Q
  1. ;
  1. SBTRACE ; CHECK ALL SUB-FILES
  1. KILL XBSXREFF
  1. S XBSXREF("CNT")=1,XBSXREFF(XBSXREF("CNT"))=XBSXREF("FILE")
  1. F XBSXREF("L")=0:0 S XBSXREF("LCTL")=$O(XBSXREFF("")) Q:XBSXREF("LCTL")="" S XBSXREF("FILE")=XBSXREFF(XBSXREF("LCTL")) D SBTRACE2 S XBSXREF("LCTL")=$O(XBSXREFF("")) D FILE KILL XBSXREFF(XBSXREF("LCTL"))
  1. Q
  1. ;
  1. SBTRACE2 ;
  1. S XBSXREF("LCTL")=0
  1. F XBSXREF("L")=0:0 S XBSXREF("LCTL")=$O(^DD(XBSXREF("FILE"),"SB",XBSXREF("LCTL"))) Q:XBSXREF("LCTL")="" S XBSXREF("CNT")=XBSXREF("CNT")+1,XBSXREFF(XBSXREF("CNT"))=XBSXREF("LCTL")
  1. Q
  1. ;
  1. FILE ; CHECK ONE FILE OR SUB-FILE
  1. S XBSXREF("FIELD")=0
  1. F XBSXREF("L")=0:0 S XBSXREF("FIELD")=$O(^DD(XBSXREF("FILE"),XBSXREF("FIELD"))) Q:XBSXREF("FIELD")'=+XBSXREF("FIELD") D FIELD
  1. Q
  1. ;
  1. FIELD ; CHECK FIELD'S XREFS
  1. Q:'$D(^DD(XBSXREF("FILE"),XBSXREF("FIELD"),1))
  1. S XBSXREF("XREF")=0
  1. F XBSXREF("L")=0:0 S XBSXREF("XREF")=$O(^DD(XBSXREF("FILE"),XBSXREF("FIELD"),1,XBSXREF("XREF"))) Q:XBSXREF("XREF")'=+XBSXREF("XREF") D CHKXREF
  1. Q
  1. ;
  1. CHKXREF ; CHECK ONE XREF
  1. S X=^DD(XBSXREF("FILE"),XBSXREF("FIELD"),1,XBSXREF("XREF"),1)
  1. D CHKSK
  1. S X=^DD(XBSXREF("FILE"),XBSXREF("FIELD"),1,XBSXREF("XREF"),2)
  1. D CHKSK
  1. Q
  1. ;
  1. CHKSK ; CHECK XREF SET/KILL
  1. Q:X'[U
  1. S XBRSRCH("FOUND")=0,XBSXREF("COUNT")=$L(X,U)
  1. F XBSXREF("I")=XBSXREF("COUNT"):-1:2 S Y=$P(X,U,XBSXREF("I")) D ^XBRSRCH1
  1. D:XBRSRCH("FOUND") WRITE
  1. Q
  1. ;
  1. WRITE ;
  1. I $D(XBRSRCH("NO DETAIL")) W "." Q
  1. I XBSXREF("FILE")'=XBSXREF("LAST FILE") S XBSXREF("LAST FILE")=XBSXREF("FILE") W !
  1. W !,XBSXREF("FILE"),",",XBSXREF("FIELD"),?20,$E(X,1,59)
  1. F XBSXREF("L")=0:0 S X=$E(X,60,999) Q:X="" W !?20,$E(X,1,59)
  1. Q
  1. ;
  1. LIST ; LIST ROUTINE NAMES
  1. Q:'$D(^UTILITY("XBRSRCH",$J))
  1. W !!,"Sorted list of routines found:",!
  1. S X=""
  1. F XBSXREF("L")=0:0 S X=$O(^UTILITY("XBRSRCH",$J,X)) Q:X="" W !,"^",X
  1. KILL ^UTILITY("XBRSRCH",$J)
  1. W !
  1. Q
  1. ;
  1. EOJ ;
  1. KILL DIC,X,X0,X1,X2,Y,YY
  1. K:$D(XBSXREF("MASTER")) XBRSRCH
  1. KILL XBSXREF,XBSXREFF
  1. Q
  1. ;