1 | KMPDTU11 ;OAK/RAK - CP Tools Timing Utility ;5/1/07 15:07
|
---|
2 | ;;2.0;CAPACITY MANAGEMENT TOOLS;**6**;Mar 22, 2002;Build 3
|
---|
3 | ;
|
---|
4 | RLTMHR(KMPDQIET,KMPDASK,KMPDEF) ;-- extrinsic function - real time hours
|
---|
5 | ;-----------------------------------------------------------------------
|
---|
6 | ; KMPDQIET... Display output
|
---|
7 | ; 0 - display output (not quiet)
|
---|
8 | ; 1 - do not display output (quiet)
|
---|
9 | ; KMPDASK.... Ask user to select hours
|
---|
10 | ; 0 - do not ask user to select
|
---|
11 | ; 1 - ask user to select
|
---|
12 | ; KMPDEF..... Default
|
---|
13 | ; 0 - do not use default
|
---|
14 | ; 1 - use time range as default
|
---|
15 | ;
|
---|
16 | ; Return: List of hours (ie, 1,2,5,6,7...)
|
---|
17 | ; "" - no selection made
|
---|
18 | ;-----------------------------------------------------------------------
|
---|
19 | ;
|
---|
20 | S KMPDQIET=+$G(KMPDQIET),KMPDASK=+$G(KMPDASK),KMPDEF=+$G(KMPDEF)
|
---|
21 | N DATA,DIR,DOT,HOURS,HR,I,QUEUED,X,Y
|
---|
22 | W:'KMPDQIET !," ==> building Hours list..."
|
---|
23 | S I="",DOT=0
|
---|
24 | F S I=$O(^KMPTMP("KMPDT","ORWCV",I)) Q:I="" S DATA=^(I) I DATA]"" D
|
---|
25 | .S DOT=DOT+1 W:'(DOT#1000)&('KMPDQIET) "."
|
---|
26 | .; change $h to fileman format and get hour
|
---|
27 | .S HR=$E($P($$HTFM^XLFDT($P(DATA,U)),".",2),1,2) S:HR>23 HR="0"
|
---|
28 | .; create HOURS() array
|
---|
29 | .S:HR'="" HOURS(+HR)=""
|
---|
30 | ;
|
---|
31 | ; if no HOURS() array
|
---|
32 | Q:'$D(HOURS) ""
|
---|
33 | ;
|
---|
34 | ; do not ask user to select hours
|
---|
35 | I 'KMPDASK D Q X
|
---|
36 | .S (I,X)="" F S I=$O(HOURS(I)) Q:I="" S X=X_I_","
|
---|
37 | ;
|
---|
38 | ; ask user to select hour(s)
|
---|
39 | S DIR(0)="LO^"_$O(HOURS(""))_":"_$O(HOURS("A"),-1)
|
---|
40 | S DIR("A")="Select Hour(s)"
|
---|
41 | S:KMPDEF DIR("B")=$O(HOURS(""))_"-"_$O(HOURS("A"),-1)
|
---|
42 | W ! D ^DIR
|
---|
43 | Q $S(Y=""!(Y="^"):"",1:$G(Y(0)))
|
---|
44 | ;
|
---|
45 | TIMING(KMPDSS,KMPDNODE,KMPDST,KMPDHTM,KMPDUZ,KMPDCL) ;-- start/stop timing stats
|
---|
46 | ;--------------------------------------------------------------------
|
---|
47 | ; KMPDSS... subscript (free text)
|
---|
48 | ; KMPDNODE. node name (free text)
|
---|
49 | ; KMPDST... start/stop
|
---|
50 | ; 1 - start
|
---|
51 | ; 2 - stop
|
---|
52 | ; KMPDHTM.. (optional - if not defined the current $h will be used)
|
---|
53 | ; time in $h format
|
---|
54 | ; KMPDUZ... (optional -if not defined the current duz will be used)
|
---|
55 | ; user duz
|
---|
56 | ; KMPDCL... (optional - if not defined the current IO("CLNM")) will be used)
|
---|
57 | ; client name (free text)
|
---|
58 | ;
|
---|
59 | ;--------------------------------------------------------------------
|
---|
60 | ; quit if timing stats not turned on
|
---|
61 | Q:'$G(^KMPTMP("KMPD-CPRS"))
|
---|
62 | ; quit if no subscript
|
---|
63 | Q:$G(KMPDSS)=""
|
---|
64 | ; quit if no node
|
---|
65 | Q:$G(KMPDNODE)=""
|
---|
66 | ; start/stop
|
---|
67 | S KMPDST=+$G(KMPDST)
|
---|
68 | Q:KMPDST<1!(KMPDST>2)
|
---|
69 | S:'$G(KMPDHTM) KMPDHTM=$H
|
---|
70 | S:'$G(KMPDUZ) KMPDUZ=$G(DUZ)
|
---|
71 | S:$G(KMPDCL)="" KMPDCL=$G(IO("CLNM"))
|
---|
72 | ;
|
---|
73 | ; start timing
|
---|
74 | S:KMPDST=1 ^KMPTMP("KMPDT",KMPDSS,KMPDNODE)=KMPDHTM_"^^"_KMPDUZ_"^"_KMPDCL
|
---|
75 | ; stop timing
|
---|
76 | S:KMPDST=2 $P(^KMPTMP("KMPDT",KMPDSS,KMPDNODE),"^",2)=KMPDHTM
|
---|
77 | ;
|
---|
78 | Q
|
---|