1 | LEXXFI4 ; ISL/KER - File Info - Record Counts (2) ; 07/28/2004
|
---|
2 | ;;2.0;LEXICON UTILITY;**32**;Sep 23, 1996
|
---|
3 | Q
|
---|
4 | ;
|
---|
5 | ; Global Variables
|
---|
6 | ; ^TMP("LEXCNT",$J SACC 2.3.2.5.1
|
---|
7 | ;
|
---|
8 | ; External References
|
---|
9 | ; DBIA 10103 $$FMDIFF^XLFDT
|
---|
10 | ;
|
---|
11 | DSP ; Display Results
|
---|
12 | N LEXFP,LEXCT,LEXFI,LEXGTOT,LEXHSF,LEXJOB,LEXMD,LEXX,LEXLVL,LEXML
|
---|
13 | N LEXNCFI,LEXNFI,LEXNPAR,LEXOPAR,LEXO,LEXPAR,LEXTAB,LEXTXT
|
---|
14 | S (LEXCT,LEXGTOT,LEXML)=0,LEXOPAR=""
|
---|
15 | S LEXJOB=$J S:+($G(LEXMD))>0 LEXJOB=+($G(LEXMD))
|
---|
16 | K:$D(LEXMD) LEXMD S LEXFP="" S LEXFP=""
|
---|
17 | F S LEXFP=$O(^TMP("LEXCNT",LEXJOB,"ORDER",LEXFP)) Q:LEXFP="" D
|
---|
18 | . S LEXO=""
|
---|
19 | . F S LEXO=$O(^TMP("LEXCNT",LEXJOB,"ORDER",LEXFP,LEXO)) Q:LEXO="" D
|
---|
20 | . . N LEXFI,LEXPAR,LEXLVL,LEXTAB,LEXTXT,LEXHSF,LEXX
|
---|
21 | . . S LEXTAB="",LEXHSF=0
|
---|
22 | . . S LEXPAR=$G(^TMP("LEXCNT",LEXJOB,"ORDER",LEXFP,LEXO))
|
---|
23 | . . S LEXFI=+($P(LEXPAR,"^",2)),LEXLVL=+($P(LEXPAR,"^",3))
|
---|
24 | . . S LEXPAR=+($P(LEXPAR,"^",1)) Q:LEXPAR=0
|
---|
25 | . . S LEXNFI=$O(^TMP("LEXCNT",LEXJOB,LEXPAR,LEXPAR))
|
---|
26 | . . S:LEXNFI>0&(LEXNFI'=LEXPAR) LEXHSF=1
|
---|
27 | . . S LEXX=$G(^TMP("LEXCNT",LEXJOB,LEXPAR,LEXFI)),LEXCT=LEXCT+1
|
---|
28 | . . S LEXNPAR=$O(^TMP("LEXCNT",LEXJOB,"ORDER",LEXFP,LEXO))
|
---|
29 | . . S LEXNPAR=$P(LEXNPAR,";",1)
|
---|
30 | . . S LEXNCFI=$O(^TMP("LEXCNT",LEXJOB,"ORDER",LEXFP))
|
---|
31 | . . I '$L(LEXNPAR),$L(LEXNCFI) S LEXML=1
|
---|
32 | . . I LEXCT=1 D TTL,HDR
|
---|
33 | . . I +LEXFI>0 D TSF
|
---|
34 | . . I +LEXFI'>0,+($G(LEXHSF))>0 D GTSF
|
---|
35 | D GT,CK
|
---|
36 | Q
|
---|
37 | TSF ; Total for a Single File/Sub-File
|
---|
38 | N LEXNM,LEXTAB,LEXTOT,LEXTXT,LEXTYP
|
---|
39 | S LEXX=$G(LEXX),LEXTOT=+LEXX,LEXNM=$P(LEXX,"^",2)
|
---|
40 | S LEXTYP=$P(LEXX,"^",3),LEXTAB=""
|
---|
41 | Q:+LEXTOT'>0 Q:'$L(LEXNM) Q:'$L(LEXTYP)
|
---|
42 | S $P(LEXTAB," ",(+($G(LEXLVL))*2))=""
|
---|
43 | S LEXTXT=" "_LEXTAB_LEXNM_" ("_LEXTYP_")"
|
---|
44 | S LEXTXT=LEXTXT_$J("",(60-$L(LEXTXT)))_$J(LEXTOT,9)
|
---|
45 | S LEXGTOT=+($G(LEXGTOT))+LEXTOT D TL^LEXXFI8(LEXTXT)
|
---|
46 | Q
|
---|
47 | GTSF ; Grand Total for a Single File
|
---|
48 | N LEXLVL,LEXNM,LEXTAB,LEXTOT,LEXTXT,LEXTYP,LEXX
|
---|
49 | S LEXX=$G(^TMP("LEXCNT",LEXJOB,LEXPAR,LEXPAR)),LEXLVL=+($$ML)+2
|
---|
50 | S LEXNM=$P(LEXX,"^",2),LEXTYP=$P(LEXX,"^",3) Q:'$L(LEXNM) Q:'$L(LEXTYP)
|
---|
51 | S LEXTAB="",LEXX=$G(^TMP("LEXCNT",LEXJOB,LEXPAR,0))
|
---|
52 | S LEXTOT=+LEXX,$P(LEXTAB," ",(LEXLVL*2))=""
|
---|
53 | S LEXTXT=" "_LEXTAB_" - Total Records for "_LEXTYP
|
---|
54 | S LEXTXT=LEXTXT_$J("",(60-$L(LEXTXT)))_$J(LEXTOT,9)
|
---|
55 | D TL^LEXXFI8(LEXTXT)
|
---|
56 | Q
|
---|
57 | GT ; Grand Totals for Multiple Files
|
---|
58 | N LEXCT,LEXFI,LEXTXT S LEXCT=0,LEXFI="" I +($G(LEXGTOT))>0,+($G(LEXML))>0 D
|
---|
59 | . D BL^LEXXFI8 S LEXTXT=" GRAND TOTAL (ALL FILES) "
|
---|
60 | . S LEXTXT=LEXTXT_$J("",(50-$L(LEXTXT)))_$J(LEXGTOT,19) D TL^LEXXFI8(LEXTXT)
|
---|
61 | Q
|
---|
62 | TTL ; Record Count Title
|
---|
63 | D:+($G(LEXMUL))>0 TT^LEXXFI8("","Record Counts")
|
---|
64 | D:+($G(LEXMUL))'>0 TT^LEXXFI8($G(LEXFI),"Record Count")
|
---|
65 | D BL^LEXXFI8
|
---|
66 | Q
|
---|
67 | HDR ; Record Count Header
|
---|
68 | N LEXTXT S LEXTXT=" Name (File Number)"
|
---|
69 | S LEXTXT=LEXTXT_$J("",(60-$L(LEXTXT)))_$J("Entries",9) D TL^LEXXFI8(LEXTXT)
|
---|
70 | S LEXTXT=" -------------------------------------------------"
|
---|
71 | S LEXTXT=LEXTXT_$J("",(60-$L(LEXTXT)))_$J("-------",9) D TL^LEXXFI8(LEXTXT)
|
---|
72 | Q
|
---|
73 | CK ; Records Checked
|
---|
74 | N LEXF,LEXS,LEXFT,LEXST,LEXJ S LEXJ=$S(+($G(LEXJOB))>0:+($G(LEXJOB)),1:$J)
|
---|
75 | S LEXF=+($G(^TMP("LEXCNT",LEXJ,"CNT")))
|
---|
76 | S LEXFT=$S(LEXF=1:"1 File",LEXF>1:(LEXF_" Files"),1:"")
|
---|
77 | S LEXS=+($G(^TMP("LEXCNT",LEXJ,"SUB")))
|
---|
78 | S LEXST=$S(LEXS=1:"1 Sub-File",LEXS>1:(LEXS_" Sub-Files"),1:"")
|
---|
79 | I (LEXF+LEXS)>1 D
|
---|
80 | . S LEXTXT=" " S:$L(LEXFT) LEXTXT=LEXTXT_LEXFT
|
---|
81 | . S:$L(LEXFT)&($L(LEXST)) LEXTXT=LEXTXT_" and "_LEXST
|
---|
82 | . S:'$L(LEXFT)&($L(LEXST)) LEXTXT=LEXTXT_LEXST
|
---|
83 | . I $L(LEXFT)!($L(LEXST)) S LEXTXT=LEXTXT_" Checked" D
|
---|
84 | . . D BL^LEXXFI8,TL^LEXXFI8(LEXTXT)
|
---|
85 | Q
|
---|
86 | ML(X) ; Maximum Level
|
---|
87 | N LEXJ S LEXJ=$S(+($G(LEXJOB))>0:+($G(LEXJOB)),1:$J)
|
---|
88 | S X=+($G(^TMP("LEXCNT",LEXJ,"LVL"))) S:+X'>0 X=1
|
---|
89 | Q X
|
---|
90 | NF(X) ; Number of Files
|
---|
91 | N LEXJ S LEXJ=$S(+($G(LEXJOB))>0:+($G(LEXJOB)),1:$J)
|
---|
92 | S X=+($G(^TMP("LEXCNT",LEXJ,"CNT")))
|
---|
93 | Q X
|
---|
94 | NS(X) ; Number of Sub-Files
|
---|
95 | N LEXJ S LEXJ=$S(+($G(LEXJOB))>0:+($G(LEXJOB)),1:$J)
|
---|
96 | S X=+($G(^TMP("LEXCNT",LEXJ,"SUB")))
|
---|
97 | Q X
|
---|
98 | ST ; Show TMP Array
|
---|
99 | N NN,NC S NN="^TMP(""LEXCNT"")",NC="^TMP(""LEXCNT"","
|
---|
100 | F S NN=$Q(@NN) Q:NN=""!(NN'[NC) D
|
---|
101 | . W !,NN,"=",@NN
|
---|
102 | Q
|
---|
103 | EP(X,Y) ; Elapsed Time (Begin, End)
|
---|
104 | N LEXTIM,LEXBEG,LEXEND
|
---|
105 | S LEXBEG=$G(X),LEXEND=$G(Y) Q:+LEXBEG'>0 "" Q:+LEXEND'>0 ""
|
---|
106 | S LEXTIM=$$FMDIFF^XLFDT(LEXEND,LEXBEG,2) Q:+LEXTIM'>0 "00:00:00"
|
---|
107 | S LEXTIM=$$TIM(LEXTIM)
|
---|
108 | Q LEXTIM
|
---|
109 | TIM(X) ; Format Time Elapsed
|
---|
110 | N LEXD,LEXH,LEXM,LEXS,LEXT,LEXV S X=+($G(X)) Q:X'>0 "00:00:00"
|
---|
111 | S LEXD=X\86400 S LEXV=LEXD*86400 S:+LEXV>0&(LEXV<X) X=X-LEXV
|
---|
112 | S LEXH=X\3600 S LEXV=LEXH*3600 S:+LEXV>0&(LEXV<X) X=X-LEXV
|
---|
113 | S:$L(LEXH)<2 LEXH="0"_LEXH S:$L(LEXH)<2 LEXH="0"_LEXH
|
---|
114 | S LEXM=X\60 S LEXV=LEXM*60 S:+LEXV>0&(LEXV<X) X=X-LEXV
|
---|
115 | S:$L(LEXM)<2 LEXM="0"_LEXM S:$L(LEXM)<2 LEXM="0"_LEXM
|
---|
116 | S LEXS=X S:$L(LEXS)<2 LEXS="0"_LEXS S:$L(LEXS)<2 LEXS="0"_LEXS
|
---|
117 | S LEXT="" S:+LEXD>0 LEXT=+LEXD_" day"_$S(+LEXD>1:"s",1:"")_" "
|
---|
118 | S LEXT=LEXT_LEXH_":"_LEXM_":"_LEXS,X=LEXT
|
---|
119 | Q X
|
---|