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

AZXZMGT1.m

Go to the documentation of this file.
  1. AZXZMGT1 ;SUPPORT DATABASE MANAGEMENT PROGRAM[ 05/31/95 11:35 AM ]
  1. ;04/28/92 JOHN H. LYNCH
  1. ;
  1. ;THIS ROUTINE WILL ALLOW A USER TO PRINT OUT
  1. ;A MONTHLY REPORT SHOWING ALL SERVICE UNITS,
  1. ;THE NUMBER OF SUPPORT CALLS IN A GIVEN PERIOD
  1. ;AND THE TOTAL NUMBER OF MAN HOURS SPENT ON CALLS
  1. ;FOR THAT SERVICE UNIT DURING THE GIVEN PERIOD.
  1. MAIN ;AZXZMGT1 PROGRAM CONTROL
  1. ;INITIALIZE LOCAL VARIABLES
  1. S FILE="1991012" ;FILE NUMBER (SUPPDB)
  1. D MGMTPRNT
  1. ANOTHER I LDATE'="^" R !!,"Do you want to print another Management Report? Y// ",YN
  1. I LDATE="^" S YN="N"
  1. I YN="" S YN="Y"
  1. I YN="Y" G MAIN
  1. K FILE,YN,LDATE,UDATE,X,SNUM,TIME,TTIME,CALLS
  1. K TCALLS,SITE,Y,LDATE1,UDATE1,SITE,SITENAME
  1. Q
  1. MGMTPRNT ;PRINTOUT MANAGEMENT REPORT
  1. ;CLEAR SCREEN
  1. W @IOF
  1. W !!!,"Management Time Report Print..."
  1. W !!!! H 1
  1. LBDATE R !,"Select Lower Boundary Date :",LDATE
  1. ;IF "^" QUIT AND RETURN TO MAINMENU
  1. I LDATE="^" G ANOTHER
  1. ;IF "" SET LDATE = LOWEST DATE POSSIBLE & UDATE = CURRENT DATE
  1. ;GO RIGHT TO PRINTOUT; THEN QUIT
  1. I LDATE="" D DEFAULT D PRINTOUT Q
  1. ;IF "?" GIVE HELP AND RETURN TO LDATE PROMPT
  1. I LDATE="?" W !!,"Give the lower boundary date for Management Report Printout",!,"OR press return to receive a report on total database [mm/dd/yy].",! G LBDATE
  1. ;CHECK TO SEE IF A VALID DATE HAS BEEN ENTERED
  1. I LDATE'?2N1"/"2N1"/"2N W !!,"Illegal date; check format and re-enter lower boundary date.",!,*7 G LBDATE
  1. ;CONVERT DATE (CONVERT)
  1. S X=LDATE ;X = DATE TO CONVERT USING ^%DT
  1. D CONVERT
  1. ;DATE FORMAT WAS ILLEGAL
  1. I Y<1 W !!,"Illegal date; check format and re-enter upper boundary date.",!,*7 G LBDATE
  1. S LDATE=Y
  1. UBDATE R !,"Select Upper Boundary Date :",UDATE
  1. ;IF "^" RETURN TO PREVIOUS PROMPT (LBDATE)
  1. I UDATE="^" G LBDATE
  1. ;IF "" WRITE "UPPER BOUNDARY MUST BE ENTERED"
  1. I UDATE="" W !!,"An upper boundary date must be entered when a lower limit has been given.",!,*7 G UBDATE
  1. ;IF "?" GIVE HELP AND RETURN TO LDATE PROMPT
  1. I UDATE="?" W !!,"Give the upper boundary date for Management Report Printout [mm/dd/yy].",! G UBDATE
  1. ;CHECK TO SEE IF A VALID DATE HAS BEEN ENTERED
  1. I UDATE'?2N1"/"2N1"/"2N W !!,"Illegal date; check format and re-enter upper boundary date.",!,*7 G UBDATE
  1. ;CONVERT DATE (CONVERT)
  1. S X=UDATE ;X = DATE TO CONVERT USING ^%DT
  1. D CONVERT
  1. ;DATE FORMAT WAS ILLEGAL
  1. I Y<1 W !!,"Illegal date; check format and re-enter upper boundary date.",!,*7 G UBDATE
  1. S UDATE=Y
  1. ;CHECK TO SEE IF UDATE >= LDATE
  1. I UDATE'>LDATE!UDATE=LDATE W !!,"Upper boundary date must be greater than or equal to lower boundary date.",!,*7 G UBDATE
  1. ;DO PRINTOUT; THEN QUIT
  1. D ^%ZIS U IO
  1. D PRINTOUT
  1. Q
  1. PRINTOUT ;PRINTOUT MANAGEMENT REPORT
  1. ;SUB-ROUTINES: PRINT2,PRINT3
  1. S SNUM=0 ;SNUM = SUPPORT NUMBER
  1. S TIME=0 ;AVERAGE TIME PER CALL PER SITE
  1. S TTIME=0 ;AVERAGE TIME PER CALL FOR ALL SITES
  1. S CALLS=0 ;NUMBER OF CALLS PER SITE
  1. S TCALLS=0 ;NUMBER OF CALLS FOR ALL SITES
  1. S SITE=1 ;INITIALIZE SITE TO FIRST IN DATABASE
  1. ;CALL DEVICE
  1. ;D ^%ZIS U IO
  1. S Y=LDATE ;SET Y TO LOWER DATE FOR REPORT OUTPUT
  1. D DD^%DT ;CONVERT CURRENT DATE
  1. S LDATE1=Y ;REPORT LOWER DATE
  1. S Y=UDATE ;SET Y TO UPPER DATE FOR REPORT OUTPUT
  1. D DD^%DT ;CONVERT CURRENT DATE
  1. S UDATE1=Y ;REPORT UPPER DATE
  1. W @IOF ;CLEAR SCREEN WHEN OUTPUT TO TERMINAL
  1. W !,"________________________________________________________________________________",!
  1. W !,"Management Time Report",?35,"For Period:",?48,LDATE1," - ",?63,UDATE1
  1. W !!,"Service Unit",?31,"Number of Calls",?57,"Call Time in Hours"
  1. W !,"________________________________________________________________________________",!
  1. PRINT2 ;SET UP TOTALS AND SITENAME
  1. ;SUB-ROUTINE OF PRINTOUT
  1. S SNUM=$O(^DIZ(FILE,"D",SITE,SNUM))
  1. I SNUM'="" I ($P(^DIZ(FILE,SNUM,0),U,4)'<LDATE)&($J($P(^DIZ(FILE,SNUM,0),U,4),7,0)'>UDATE) S CALLS=CALLS+1,TIME=TIME+$P(^DIZ(FILE,SNUM,5),U,2) G PRINT2
  1. I SNUM'="" G PRINT2
  1. D SITELKUP ;SET SITENAME USING SITE (NUMERIC)
  1. D PRINT3 ;PRINT SUB-TOTALS PER SITE
  1. S SITE=$O(^DIZ(FILE,"D",SITE)) ;GO TO NEXT SITE
  1. I SITE'="" S TTIME=TTIME+TIME,TCALLS=TCALLS+CALLS,SNUM=0,TIME=0,CALLS=0 G PRINT2
  1. W !!,"________________________________________________________________________________"
  1. ;******************HERE************
  1. S TTIME=TTIME+TIME
  1. W !!,?27,"Total Calls= ",$J(TCALLS,6),?56," Total Time= ",$J(TTIME/60,6,2)
  1. W !!,"________________________________________________________________________________"
  1. W:$E(IOST)="P" @IOF
  1. D ^%ZISC
  1. Q
  1. PRINT3 ;PRINTOUT EACH INDIVIDUAL SITES SUB-TOTALS IN HOURS
  1. ;SUB-ROUTINE OF PRINTOUT
  1. W !!,SITENAME,?40,$J(CALLS,6),?69,$J(TIME/60,6,2)
  1. Q
  1. DEFAULT ;SET DEFAULT DATES TO INCLUDE ALL CURRENT LOGS
  1. S LDATE="2920401" ;SET TO EARLIER THAN EARLIEST POSSIBLE LOG DATE
  1. S UDATE=DT ;SET TO CURRENT DATE
  1. Q
  1. CONVERT ;CONVERT USER DATES TO FILEMAN DATE FORMAT
  1. ;SET LOCAL VARIABLES
  1. S %DT="EXT" ;E=ECHO ANSWER;X=EXACT DATE;T=TIME ALLOWED, NOT REQUIRED
  1. D ^%DT ;VALUE RETURNED IN Y
  1. Q
  1. SITELKUP ;SET SITENAME USING A LOOKUP IN SITES FILE
  1. ;SITENAME = 1ST PIECE IN SITES FILE DFN
  1. S SITENAME=$P(^DIZ(1991010,SITE,0),U,1)
  1. Q