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

LEXXFI4.m

Go to the documentation of this file.
  1. LEXXFI4 ;ISL/KER - File Info - Record Counts (2) ;04/21/2014
  1. ;;2.0;LEXICON UTILITY;**32,80**;Sep 23, 1996;Build 1
  1. ;
  1. ; Global Variables
  1. ; ^TMP("LEXCNT") SACC 2.3.2.5.1
  1. ;
  1. ; External References
  1. ; $$FMDIFF^XLFDT ICR 10103
  1. ;
  1. Q
  1. DSP ; Display Results
  1. N LEXFP,LEXCT,LEXFI,LEXGTOT,LEXHSF,LEXJOB,LEXMD,LEXX,LEXLVL,LEXML
  1. N LEXNCFI,LEXNFI,LEXNPAR,LEXOPAR,LEXO,LEXPAR,LEXTAB,LEXTXT
  1. S (LEXCT,LEXGTOT,LEXML)=0,LEXOPAR=""
  1. S LEXJOB=$J S:+($G(LEXMD))>0 LEXJOB=+($G(LEXMD))
  1. K:$D(LEXMD) LEXMD S LEXFP="" S LEXFP=""
  1. F S LEXFP=$O(^TMP("LEXCNT",LEXJOB,"ORDER",LEXFP)) Q:LEXFP="" D
  1. . S LEXO=""
  1. . F S LEXO=$O(^TMP("LEXCNT",LEXJOB,"ORDER",LEXFP,LEXO)) Q:LEXO="" D
  1. . . N LEXFI,LEXPAR,LEXLVL,LEXTAB,LEXTXT,LEXHSF,LEXX
  1. . . S LEXTAB="",LEXHSF=0
  1. . . S LEXPAR=$G(^TMP("LEXCNT",LEXJOB,"ORDER",LEXFP,LEXO))
  1. . . S LEXFI=+($P(LEXPAR,"^",2)),LEXLVL=+($P(LEXPAR,"^",3))
  1. . . S LEXPAR=+($P(LEXPAR,"^",1)) Q:LEXPAR=0
  1. . . S LEXNFI=$O(^TMP("LEXCNT",LEXJOB,LEXPAR,LEXPAR))
  1. . . S:LEXNFI>0&(LEXNFI'=LEXPAR) LEXHSF=1
  1. . . S LEXX=$G(^TMP("LEXCNT",LEXJOB,LEXPAR,LEXFI)),LEXCT=LEXCT+1
  1. . . S LEXNPAR=$O(^TMP("LEXCNT",LEXJOB,"ORDER",LEXFP,LEXO))
  1. . . S LEXNPAR=$P(LEXNPAR,";",1)
  1. . . S LEXNCFI=$O(^TMP("LEXCNT",LEXJOB,"ORDER",LEXFP))
  1. . . I '$L(LEXNPAR),$L(LEXNCFI) S LEXML=1
  1. . . I LEXCT=1 D TTL,HDR
  1. . . I +LEXFI>0 D TSF
  1. . . I +LEXFI'>0,+($G(LEXHSF))>0 D GTSF
  1. D GT,CK
  1. Q
  1. TSF ; Total for a Single File/Sub-File
  1. N LEXNM,LEXTAB,LEXTOT,LEXTXT,LEXTYP
  1. S LEXX=$G(LEXX),LEXTOT=+LEXX,LEXNM=$P(LEXX,"^",2)
  1. S LEXTYP=$P(LEXX,"^",3),LEXTAB=""
  1. Q:+LEXTOT'>0 Q:'$L(LEXNM) Q:'$L(LEXTYP)
  1. S $P(LEXTAB," ",(+($G(LEXLVL))*2))=""
  1. S LEXTXT=" "_LEXTAB_LEXNM_" ("_LEXTYP_")"
  1. S LEXTXT=LEXTXT_$J("",(60-$L(LEXTXT)))_$J(LEXTOT,9)
  1. S LEXGTOT=+($G(LEXGTOT))+LEXTOT D TL^LEXXFI8(LEXTXT)
  1. Q
  1. GTSF ; Grand Total for a Single File
  1. N LEXLVL,LEXNM,LEXTAB,LEXTOT,LEXTXT,LEXTYP,LEXX
  1. S LEXX=$G(^TMP("LEXCNT",LEXJOB,LEXPAR,LEXPAR)),LEXLVL=+($$ML)+2
  1. S LEXNM=$P(LEXX,"^",2),LEXTYP=$P(LEXX,"^",3) Q:'$L(LEXNM) Q:'$L(LEXTYP)
  1. S LEXTAB="",LEXX=$G(^TMP("LEXCNT",LEXJOB,LEXPAR,0))
  1. S LEXTOT=+LEXX,$P(LEXTAB," ",(LEXLVL*2))=""
  1. S LEXTXT=" "_LEXTAB_" - Total Records for "_LEXTYP
  1. S LEXTXT=LEXTXT_$J("",(60-$L(LEXTXT)))_$J(LEXTOT,9)
  1. D TL^LEXXFI8(LEXTXT)
  1. Q
  1. GT ; Grand Totals for Multiple Files
  1. N LEXCT,LEXFI,LEXTXT S LEXCT=0,LEXFI="" I +($G(LEXGTOT))>0,+($G(LEXML))>0 D
  1. . D BL^LEXXFI8 S LEXTXT=" GRAND TOTAL (ALL FILES) "
  1. . S LEXTXT=LEXTXT_$J("",(50-$L(LEXTXT)))_$J(LEXGTOT,19) D TL^LEXXFI8(LEXTXT)
  1. Q
  1. TTL ; Record Count Title
  1. D:+($G(LEXMUL))>0 TT^LEXXFI8("","Record Counts")
  1. D:+($G(LEXMUL))'>0 TT^LEXXFI8($G(LEXFI),"Record Count")
  1. D BL^LEXXFI8
  1. Q
  1. HDR ; Record Count Header
  1. N LEXTXT S LEXTXT=" Name (File Number)"
  1. S LEXTXT=LEXTXT_$J("",(60-$L(LEXTXT)))_$J("Entries",9) D TL^LEXXFI8(LEXTXT)
  1. S LEXTXT=" -------------------------------------------------"
  1. S LEXTXT=LEXTXT_$J("",(60-$L(LEXTXT)))_$J("-------",9) D TL^LEXXFI8(LEXTXT)
  1. Q
  1. CK ; Records Checked
  1. N LEXF,LEXS,LEXFT,LEXST,LEXJ S LEXJ=$S(+($G(LEXJOB))>0:+($G(LEXJOB)),1:$J)
  1. S LEXF=+($G(^TMP("LEXCNT",LEXJ,"CNT")))
  1. S LEXFT=$S(LEXF=1:"1 File",LEXF>1:(LEXF_" Files"),1:"")
  1. S LEXS=+($G(^TMP("LEXCNT",LEXJ,"SUB")))
  1. S LEXST=$S(LEXS=1:"1 Sub-File",LEXS>1:(LEXS_" Sub-Files"),1:"")
  1. I (LEXF+LEXS)>1 D
  1. . S LEXTXT=" " S:$L(LEXFT) LEXTXT=LEXTXT_LEXFT
  1. . S:$L(LEXFT)&($L(LEXST)) LEXTXT=LEXTXT_" and "_LEXST
  1. . S:'$L(LEXFT)&($L(LEXST)) LEXTXT=LEXTXT_LEXST
  1. . I $L(LEXFT)!($L(LEXST)) S LEXTXT=LEXTXT_" Checked" D
  1. . . D BL^LEXXFI8,TL^LEXXFI8(LEXTXT)
  1. Q
  1. ML(X) ; Maximum Level
  1. N LEXJ S LEXJ=$S(+($G(LEXJOB))>0:+($G(LEXJOB)),1:$J)
  1. S X=+($G(^TMP("LEXCNT",LEXJ,"LVL"))) S:+X'>0 X=1
  1. Q X
  1. NF(X) ; Number of Files
  1. N LEXJ S LEXJ=$S(+($G(LEXJOB))>0:+($G(LEXJOB)),1:$J)
  1. S X=+($G(^TMP("LEXCNT",LEXJ,"CNT")))
  1. Q X
  1. NS(X) ; Number of Sub-Files
  1. N LEXJ S LEXJ=$S(+($G(LEXJOB))>0:+($G(LEXJOB)),1:$J)
  1. S X=+($G(^TMP("LEXCNT",LEXJ,"SUB")))
  1. Q X
  1. ST ; Show TMP Array
  1. N NN,NC S NN="^TMP(""LEXCNT"")",NC="^TMP(""LEXCNT"","
  1. F S NN=$Q(@NN) Q:NN=""!(NN'[NC) D
  1. . W !,NN,"=",@NN
  1. Q
  1. EP(X,Y) ; Elapsed Time (Begin, End)
  1. N LEXTIM,LEXBEG,LEXEND
  1. S LEXBEG=$G(X),LEXEND=$G(Y) Q:+LEXBEG'>0 "" Q:+LEXEND'>0 ""
  1. S LEXTIM=$$FMDIFF^XLFDT(LEXEND,LEXBEG,2) Q:+LEXTIM'>0 "00:00:00"
  1. S LEXTIM=$$TIM(LEXTIM)
  1. Q LEXTIM
  1. TIM(X) ; Format Time Elapsed
  1. N LEXD,LEXH,LEXM,LEXS,LEXT,LEXV S X=+($G(X)) Q:X'>0 "00:00:00"
  1. S LEXD=X\86400 S LEXV=LEXD*86400 S:+LEXV>0&(LEXV<X) X=X-LEXV
  1. S LEXH=X\3600 S LEXV=LEXH*3600 S:+LEXV>0&(LEXV<X) X=X-LEXV
  1. S:$L(LEXH)<2 LEXH="0"_LEXH S:$L(LEXH)<2 LEXH="0"_LEXH
  1. S LEXM=X\60 S LEXV=LEXM*60 S:+LEXV>0&(LEXV<X) X=X-LEXV
  1. S:$L(LEXM)<2 LEXM="0"_LEXM S:$L(LEXM)<2 LEXM="0"_LEXM
  1. S LEXS=X S:$L(LEXS)<2 LEXS="0"_LEXS S:$L(LEXS)<2 LEXS="0"_LEXS
  1. S LEXT="" S:+LEXD>0 LEXT=+LEXD_" day"_$S(+LEXD>1:"s",1:"")_" "
  1. S LEXT=LEXT_LEXH_":"_LEXM_":"_LEXS,X=LEXT
  1. Q X