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

XBFORM1.m

Go to the documentation of this file.
  1. XBFORM1 ; IHS/ADC/GTH - sub x in output transforms [ 02/07/97 3:02 PM ]
  1. ;;3.0;IHS/VA UTILITIES;;FEB 07, 1997
  1. ;
  1. ;XBV1=NEW CODE,XBLINX=original out transform
  1. Q
  1. ;
  1. SUB(XBV1,XBLINX) ;EP extrensic to return new output transform
  1. D EN^XBNEW("XSUB^XBFORM1","XBV1;XBLINX")
  1. Q XBLINX
  1. ;
  1. XSUB ;EP - do it
  1. NEW XB,XBT
  1. D SCAN
  1. I 'XBMK Q
  1. S XBLIN=XBLINX
  1. D BLDLIN1
  1. S XBLINX=XBLIN1
  1. Q
  1. ;
  1. ;----------------- SUB ROUTINES ---------------
  1. ;
  1. SCAN ;EP - scan for X
  1. S XBVX="X"
  1. S XBP=" #&'()*+,'-/<=>@\_?;:[]!""",XBS=XBP
  1. S XBL=$L(XBVX)
  1. F XBI=1:1 S XB(XBI)=$F(XBLINX,XBVX,$G(XB(XBI-1))+1)-XBL Q:XB(XBI)'>0 D
  1. .S XB(XBI,"M")=0,XB(XBI,0)=XB(XBI)
  1. .I XBP[$E(XBLINX,XB(XBI)-1),XBS[$E(XBLINX,XB(XBI)+XBL) S XB(XBI,"M")=1
  1. .S XB("B",XB(XBI))=XBI,XB("E",XB(XBI)+XBL-1)=XBI
  1. .S XB(XBI,"E")=XB(XBI)+XBL-1
  1. .Q
  1. KILL XB(XBI)
  1. CHKMK ;
  1. S XBMK="",XBJM=""
  1. F S XBJM=$O(XB(XBJM)) Q:XBJM="" I $G(XB(XBJM,"M")) S XBMK=1 Q
  1. KILL XBJM
  1. SCANE ;
  1. Q
  1. ;
  1. BLDLIN1 ;
  1. S XBLIN=XBLINX,XBV0="X"
  1. S XBLIN0=XBLIN,XBSUB=XBV0_":"_XBV1,XBLIN1=""
  1. F XBI=1:1 Q:'$D(XB(XBI)) S XBLIN1=XBLIN1_$E(XBLIN,$G(XB(XBI-1,"E"))+1,XB(XBI,0)-1)_$S(XB(XBI,"M"):XBV1,1:XBV0)
  1. S XBI=XBI-1 S XBLIN1=XBLIN1_$E(XBLIN,XB(XBI,"E")+1,999)
  1. BLDLIN1E ;
  1. Q
  1. ;