(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) (FILECREATED "15-Jun-90 11:39:57" {DSK}local>lde>lispcore>internal>library>ARSREPORT.;2 19524 changes to%: (VARS ARSREPORTCOMS) previous date%: "23-Mar-87 13:47:08" {DSK}local>lde>lispcore>internal>library>ARSREPORT.;1 ) (* ; " Copyright (c) 1986, 1987, 1990 by Venue & Xerox Corporation. All rights reserved. ") (PRETTYCOMPRINT ARSREPORTCOMS) (RPAQQ ARSREPORTCOMS ((FNS AR.REPORT ARS.GET.NUM.LIST ARS.REPORT.DRIVER ARS.REPORT.GEN.AR.LIST ARS.REPORT.GEN.NEW ARS.REPORT.GET.NUM.LIST ARS.REPORT.GET.TDSINFO ARS.REPORT.PROCESS.TDSINFO) (VARS ARS.BUG.LASTMONTH.RELEASED.BACKLOG ARS.BUG.LASTMONTH.UNRELEASED.BACKLOG ARS.FEATURE.LASTMONTH.BACKLOG ARS.HACKERS ARS.TESTERS))) (DEFINEQ (AR.REPORT [LAMBDA (START# END# TDS-VERSION-LIST STARTDATE ENDDATE FORMWINDOW SCRATCHDIR) (* ; "Edited 23-Mar-87 11:20 by shw:") (* ;; "Main driver for the monthly AR report. ") (* ;; "START# is the starting AR number to report on") (* ;; "END# is the ending AR# to report on") (* ;; "TDS-VERSION-LIST is a list of versions of the TDS-PROCESSED file") (* ;; "STARTDATE is the starting date as a string, e.g. %"16-FEB-87%" or %"12 JAN 96%"") (* ;; "ENDDATE is the starting date as a string, e.g. %"16-FEB-87%" or %"12 JAN 96%"") (* ;; "FORMWINDOW is the MAIN window of an AR (we suggest using WHICHW)") (* ;; "SCRATCHDIR is a directory/host to use for scratch files. Defaults to {DSK}.") (ARS.REPORT.DRIVER START# END# (for VERSION inside TDS-VERSION-LIST collect (if (EQ VERSION 'LISPARS.TDS) then '{ERIS}LISPARS.TDS else (PACKFILENAME 'VERSION VERSION 'BODY "{ERIS}LISPARS.TDS-PROCESSED"))) (IDATE (CONCAT STARTDATE " 00:00:00")) (IDATE (CONCAT ENDDATE " 00:00:00")) FORMWINDOW SCRATCHDIR]) (ARS.GET.NUM.LIST [LAMBDA (QFORM) (* ckj " 4-Jun-86 18:25") (PROG (NUMS) [AR.INDEX.DATA.CONTEXT QFORM (SETQ NUMS (for ALIST in (WINDOWPROP QFORM 'AR.ENTRY.ALIST) collect (AR.GET.ENTRY.NUM (CAR ALIST] (RETURN NUMS]) (ARS.REPORT.DRIVER [LAMBDA (STARTING.NUM ENDING.NUM TDS.LIST STARTDATE ENDDATE FORMWINDOW SCRATCHDIR) (* ; "Edited 24-Feb-87 17:23 by jds") (SETQ ARS.NEW (ARS.REPORT.GEN.AR.LIST STARTING.NUM ENDING.NUM)) (SETQ TDS.FEATURES.SERVICED (for X in TDS.LIST collect (ARS.REPORT.PROCESS.TDSINFO (  ARS.REPORT.GET.TDSINFO X) STARTDATE ENDDATE))) (SETQ ARS.FEATURES.SERVICED NIL) (for X in TDS.FEATURES.SERVICED do (SETQ ARS.FEATURES.SERVICED (APPEND ARS.FEATURES.SERVICED X))) (ARS.REPORT.GEN.NEW STARTING.NUM ENDING.NUM ARS.FEATURES.SERVICED FORMWINDOW SCRATCHDIR]) (ARS.REPORT.GEN.AR.LIST [LAMBDA (START.NUM END.NUM) (* ckj "30-May-86 16:38") (SETQ AR.LIST (for X from START.NUM to END.NUM collect X)) (PROG ((NEXT.NUM START.NUM) ARDONEFLG) (do (COND ((EQP NEXT.NUM END.NUM) (SETQ ARDONEFLG T))) [COND ([NLSETQ (SETQ ARSTREAM (OPENSTREAM (AR.FILENAME NEXT.NUM) 'INPUT 'OLD] (CLOSEF ARSTREAM) (SETQ NEXT.NUM (ADD1 NEXT.NUM))) (T (DREMOVE NEXT.NUM AR.LIST) (SETQ NEXT.NUM (ADD1 NEXT.NUM] until (OR ARDONEFLG)) (RETURN AR.LIST]) (ARS.REPORT.GEN.NEW [LAMBDA (START.NUM END.NUM FORMWINDOW FIXED.LIST) (* ; "Edited 13-Mar-87 13:26 by shw:") (PROG ((REPORT.INDEX '{DSK}REPORT-AR.INDEX) TXT REPORTWINDOW AR.QWINDOW ARS.NEW.OPEN ARS.NEW.UNSCREENED ARS.NEW.DECLINED ARS.NEW.FIXED ARS.NEW.SUPERSEDED ARS.NEW.INCOMPLETE ARS.NEW.OBSOLETE ARS.NEW.FEATURE ARS.NEW.UNRELEASED.FEATURE ARS.NEW.UNASSIGNED ARS.NEW.WISH ARS.SERVICED.FEATURES ARS.NEW.TOTAL ARS.OPEN.TOTAL ARS.ABSOLUTELY.TOTAL ARS.SUBMITTED.BETA ARS.SUBMITTED.HACKERS ARS.SUBMITTED.TESTERS) (AR.INDEX.CREATE REPORT.INDEX) [SETQ AR.QWINDOW (CREATEW '(0 0 200 100] (AR.QFORM.GROUP.CREATE REPORT.INDEX AR.QWINDOW) (DISMISS 10000) (AR.INDEX.UPDATE AR.QWINDOW ARS.NEW) (CLOSEW AR.QWINDOW) [SETQ AR.QWINDOW (CREATEW '(0 0 200 100] (AR.QFORM.CREATE REPORT.INDEX AR.QWINDOW) (DISMISS 10000) (AR.QUERY AR.QWINDOW '(Status%: IS Open)) (SETQ ARS.NEW.OPEN (ARS.GET.NUM.LIST AR.QWINDOW)) (AR.QUERY AR.QWINDOW '(Status%: IS New)) (SETQ ARS.NEW.UNSCREENED (ARS.GET.NUM.LIST AR.QWINDOW)) (AR.QUERY AR.QWINDOW '(Status%: IS Declined)) (SETQ ARS.NEW.DECLINED (ARS.GET.NUM.LIST AR.QWINDOW)) (AR.QUERY AR.QWINDOW '(Status%: IS Fixed)) (SETQ ARS.NEW.FIXED (ARS.GET.NUM.LIST AR.QWINDOW)) (AR.QUERY AR.QWINDOW '(Status%: IS Superseded)) (SETQ ARS.NEW.SUPERSEDED (ARS.GET.NUM.LIST AR.QWINDOW)) (AR.QUERY AR.QWINDOW '(Status%: IS Incomplete)) (SETQ ARS.NEW.INCOMPLETE (ARS.GET.NUM.LIST AR.QWINDOW)) (AR.QUERY AR.QWINDOW '(Status%: IS Obsolete)) (SETQ ARS.NEW.OBSOLETE (ARS.GET.NUM.LIST AR.QWINDOW)) (AR.QUERY AR.QWINDOW '(Status%: IS Wish)) (SETQ ARS.NEW.WISH (ARS.GET.NUM.LIST AR.QWINDOW)) (AR.QUERY AR.QWINDOW '(In/By%: HAS BETA)) (SETQ ARS.SUBMITTED.BETA (ARS.GET.NUM.LIST AR.QWINDOW)) [AR.QUERY AR.QWINDOW (APPEND '(OR) (for HACKER in ARS.HACKERS collect (APPEND '(Submitter%: HAS) (LIST HACKER] (SETQ ARS.SUBMITTED.HACKERS (ARS.GET.NUM.LIST AR.QWINDOW)) [AR.QUERY AR.QWINDOW (APPEND '(OR) (for TESTER in ARS.TESTERS collect (APPEND '(Submitter%: HAS) (LIST TESTER] (SETQ ARS.SUBMITTED.TESTERS (ARS.GET.NUM.LIST AR.QWINDOW)) [AR.QUERY AR.QWINDOW '(AND (OR (Subject%: HAS want) (|Problem Type:| IS Feature)) (Status%: IS Open] (SETQ ARS.NEW.FEATURE (APPEND ARS.NEW.FEATURE (ARS.GET.NUM.LIST AR.QWINDOW))) (AR.QUERY AR.QWINDOW '(AND (OR (Subject%: HAS want) (|Problem Type:| IS Feature)) (Status%: IS New)) (SETQ ARS.NEW.UNRELEASED.FEATURE (  ARS.GET.NUM.LIST AR.QWINDOW) )) [AR.QUERY AR.QWINDOW '(AND (Status%: IS Open) (Attn%: HAS lisp] (SETQ ARS.NEW.UNASSIGNED (ARS.GET.NUM.LIST AR.QWINDOW)) [AR.QUERY AR.QWINDOW '(AND (Status%: IS Open) (Attn%: IS NIL] (SETQ ARS.NEW.UNASSIGNED (APPEND ARS.NEW.UNASSIGNED (ARS.GET.NUM.LIST AR.QWINDOW))) (CLOSEW AR.QWINDOW) (DELFILE REPORT.INDEX) [SETQ AR.QWINDOW (CREATEW '(0 0 200 100] (AR.QFORM.GROUP.CREATE REPORT.INDEX AR.QWINDOW) (DISMISS 10000) (AR.INDEX.UPDATE AR.QWINDOW FIXED.LIST) (CLOSEW AR.QWINDOW) [SETQ AR.QWINDOW (CREATEW '(0 0 200 100] (AR.QFORM.CREATE REPORT.INDEX AR.QWINDOW) (DISMISS 10000) [AR.QUERY AR.QWINDOW '(OR (Subject%: HAS want) (|Problem Type:| IS Feature] (SETQ ARS.SERVICED.FEATURES (APPEND ARS.SERVICED.FEATURES (ARS.GET.NUM.LIST AR.QWINDOW))) [SETQ REPORTWINDOW (CREATEW '(400 0 400 200] (CLOSEW AR.QWINDOW) (SETQ TXT (OPENTEXTSTREAM "" REPORTWINDOW NIL NIL (LIST 'FONT LAFITEEDITORFONT))) (PRINTOUT TXT "FIRST AR OF MONTH:" START.NUM " LAST AR OF MONTH:" END.NUM " NUMBER OF NEW ARS:" (FLENGTH ARS.NEW) " NUMBER OF ARS ACCEPTED:" (PLUS (FLENGTH ARS.NEW.FIXED) (DIFFERENCE (FLENGTH ARS.NEW.OPEN) (FLENGTH ARS.NEW.FEATURE))) " NUMBER OF ARS REJECTED:" (PLUS (FLENGTH ARS.NEW.DECLINED) (FLENGTH ARS.NEW.SUPERSEDED) (FLENGTH ARS.NEW.INCOMPLETE) (FLENGTH ARS.NEW.OBSOLETE)) " NUMBER OF UNSCREENED ARS:" (FLENGTH ARS.NEW.UNSCREENED) " NUMBER OF FEATURE REQUESTS SUBMITTED:" (PLUS (FLENGTH ARS.NEW.FEATURE) (FLENGTH ARS.NEW.WISH)) " NUMBER OF UNASSIGNED ARS:" (FLENGTH ARS.NEW.UNASSIGNED) " NUMBER OF FIXED ARS:" (FLENGTH ARS.NEW.FIXED) " NUMBER OF SERVICED FEATURE REQUESTS:" (FLENGTH ARS.SERVICED.FEATURES) T) [SETQ AR.QWINDOW (CREATEW '(0 0 200 100] (AR.QFORM.CREATE '{ERIS}AR.INDEX AR.QWINDOW) (DISMISS 10000) [AR.QUERY AR.QWINDOW '(AND (Status%: IS New) (NOT (|Problem Type:| IS Feature] (SETQ ARS.NEW.TOTAL (ARS.GET.NUM.LIST AR.QWINDOW)) [AR.QUERY AR.QWINDOW '(AND (Status%: IS Open) (NOT (|Problem Type:| IS Feature] (SETQ ARS.OPEN.TOTAL (ARS.GET.NUM.LIST AR.QWINDOW)) [AR.QUERY AR.QWINDOW '(AND (Priority%: IS Absolutely) (OR (Status%: IS New) (Status%: IS Open] (SETQ ARS.ABSOLUTELY.TOTAL (ARS.GET.NUM.LIST AR.QWINDOW)) (CLOSEW AR.QWINDOW) [SETQ FINALREPORTWINDOW (CREATEW '(450 0 400 200] (SETQ TXT (OPENTEXTSTREAM "" FINALREPORTWINDOW NIL NIL (LIST 'FONT LAFITEEDITORFONT))) [PRINTOUT TXT T T .TAB 30 ">>month<< Action Request Data Base Report" T T ">>lastmonth<< Unreleased Backlog:" .TAB 40 ARS.BUG.LASTMONTH.UNRELEASED.BACKLOG T ">>lastmonth<< Released Backlog:" .TAB 40 ARS.BUG.LASTMONTH.RELEASED.BACKLOG T ">>month<< Submissions:" .TAB 40 (IDIFFERENCE END.NUM START.NUM) T "Rejected:" .TAB 40 (PLUS (FLENGTH ARS.NEW.DECLINED) (FLENGTH ARS.NEW.SUPERSEDED) (FLENGTH ARS.NEW.INCOMPLETE) (FLENGTH ARS.NEW.OBSOLETE)) T "Feature Requests:" .TAB 40 (PLUS (FLENGTH ARS.NEW.UNRELEASED.FEATURE) (FLENGTH ARS.NEW.FEATURE)) T "Fixed:" .TAB 40 (FLENGTH ARS.NEW.FIXED) T "Submitted by Beta Test sites:" .TAB 40 (FLENGTH ARS.SUBMITTED.BETA) T "Submitted by Development:" .TAB 40 (FLENGTH ARS.SUBMITTED.HACKERS) T "Submitted by Testing:" .TAB 40 (FLENGTH ARS.SUBMITTED.TESTERS) T "Total (Open/New) ARs marked Absolutely:" .TAB 40 (FLENGTH ARS.ABSOLUTELY.TOTAL) T "Total Open (Released) ARs:" .TAB 40 (FLENGTH ARS.OPEN.TOTAL) T "Total New (Unreleased) ARs" .TAB 40 (FLENGTH ARS.NEW.TOTAL) T T T T .TAB 30 ">>month<< Feature Request Report" T T ">>lastmonth<< Features Backlog:" .TAB 40 ARS.FEATURE.LASTMONTH.BACKLOG T "Feature Requests Submitted:" .TAB 40 (PLUS (FLENGTH ARS.NEW.UNRELEASED.FEATURE) (FLENGTH ARS.NEW.FEATURE)) T "Feature Requests Serviced:" .TAB 40 (FLENGTH ARS.SERVICED.FEATURES) T ">>month<< Features Backlog:" .TAB 40 (PLUS ARS.FEATURE.LASTMONTH.BACKLOG (IDIFFERENCE (PLUS (FLENGTH ARS.NEW.UNRELEASED.FEATURE ) (FLENGTH ARS.NEW.FEATURE )) (FLENGTH ARS.SERVICED.FEATURES] [SETQ ARS.BUG.LASTMONTH.RELEASED.BACKLOG (PLUS ARS.BUG.LASTMONTH.RELEASED.BACKLOG (IDIFFERENCE (FLENGTH ARS.NEW.OPEN) (FLENGTH ARS.NEW.FEATURE] (SETQ ARS.FEATURE.LASTMONTH.BACKLOG (PLUS ARS.FEATURE.LASTMONTH.BACKLOG (IDIFFERENCE (PLUS (FLENGTH ARS.NEW.FEATURE) (FLENGTH ARS.NEW.WISH)) (FLENGTH ARS.SERVICED.FEATURES]) (ARS.REPORT.GET.NUM.LIST [LAMBDA (QFORM) (* ckj "30-May-86 16:33") (PROG (NUMS) [AR.INDEX.DATA.CONTEXT QFORM (SETQ NUMS (for ALIST in (WINDOWPROP QFORM 'AR.ENTRY.ALIST) collect (AR.GET.ENTRY.NUM (CAR ALIST] (RETURN NUMS]) (ARS.REPORT.GET.TDSINFO [LAMBDA (FILENAME) (* ; "Edited 3-Feb-87 16:14 by shw:") (PROG ((FILE (OPENSTREAM FILENAME 'INPUT 'OLD)) TDSLIST) (SETQ TDSLIST (while (FILEPOS " -- " FILE NIL NIL NIL T) bind ARLIST when [LISTP (SETQ ARLIST (PROGN (READ FILE FILERDTBL] collect ARLIST)) (CLOSEF FILE) (RETURN TDSLIST]) (ARS.REPORT.PROCESS.TDSINFO [LAMBDA (TDSLIST TDS.STARTDATE TDS.ENDDATE) (* edited%: "24-Jul-86 17:13") (PROG (TDSTEMP TXT ARS.OLD.FEATURE ARS.OLD.FIXED ARS.OLD.SERVICED ARS.OLD.SUPERSEDED ARS.OLD.OBSOLETE ARS.OLD.DECLINED ARS.OLD.INCOMPLETE) (SETQ TDSTEMP (for X in TDSLIST when (NOT (FMEMB 'SUBMIT X)) collect (CDR X))) (SETQ TDSTEMP (for X in TDSTEMP when [AND (LEQ TDS.STARTDATE (IDATE (CONCAT (CADADR X) " 00:00:00"))) (GREATERP TDS.ENDDATE (IDATE (CONCAT (CADADR X) " 00:00:00"] collect X)) (SETQ TDSTEMP (for X in TDSTEMP when (NOT (MEMB (CAR X) ARS.NEW)) collect X)) (SORT TDSTEMP T) (for X in TDSTEMP do (COND [(STRPOS "->Feature" X) (SETQ ARS.OLD.FEATURE (APPEND ARS.OLD.FEATURE (LIST (CAR X] [(STRPOS "Wish->Fixed" X) (SETQ ARS.OLD.SERVICED (APPEND ARS.OLD.SERVICED (LIST (CAR X] [(STRPOS "->Fixed" X) (SETQ ARS.OLD.FIXED (APPEND ARS.OLD.FIXED (LIST (CAR X] [(STRPOS "->Superseded" X) (SETQ ARS.OLD.SUPERSEDED (APPEND ARS.OLD.SUPERSEDED (LIST (CAR X] [(STRPOS "->Obsolete" X) (SETQ ARS.OLD.OBSOLETE (APPEND ARS.OLD.OBSOLETE (LIST (CAR X] [(STRPOS "->Declined" X) (SETQ ARS.OLD.DECLINED (APPEND ARS.OLD.DECLINED (LIST (CAR X] [(STRPOS "->Incomplete" X) (SETQ ARS.OLD.INCOMPLETE (APPEND ARS.OLD.INCOMPLETE (LIST (CAR X] (T))) [SETQ REPORTWINDOW (CREATEW '(200 0 400 200] (SETQ TXT (OPENTEXTSTREAM "" REPORTWINDOW NIL NIL (LIST 'FONT LAFITEEDITORFONT))) (PRINTOUT TXT "STARTING DATE:" TDS.STARTDATE " ENDING DATE:" TDS.ENDDATE " NUMBER OF FEATURE OLD ARS:" (FLENGTH ARS.OLD.FEATURE) " " ARS.OLD.FEATURE " NUMBER OF FEATURE REQUESTS SERVICED:" (FLENGTH ARS.OLD.SERVICED) " " ARS.OLD.SERVICED " NUMBER OF FIXED OLD ARS:" (FLENGTH ARS.OLD.FIXED) " " ARS.OLD.FIXED " NUMBER OF SUPERSEDED OLD ARS:" (FLENGTH ARS.OLD.SUPERSEDED) " " ARS.OLD.SUPERSEDED " NUMBER OF OBSOLETE OLD ARS:" (FLENGTH ARS.OLD.OBSOLETE) " " ARS.OLD.OBSOLETE " NUMBER OF DECLINED OLD ARS:" (FLENGTH ARS.OLD.DECLINED) " " ARS.OLD.DECLINED " NUMBER OF INCOMPLETE OLD ARS:" (FLENGTH ARS.OLD.INCOMPLETE) " " ARS.OLD.INCOMPLETE) (RETURN ARS.OLD.FIXED]) ) (RPAQQ ARS.BUG.LASTMONTH.RELEASED.BACKLOG 0) (RPAQQ ARS.BUG.LASTMONTH.UNRELEASED.BACKLOG 0) (RPAQQ ARS.FEATURE.LASTMONTH.BACKLOG -4) (RPAQQ ARS.HACKERS (Bane Burton Charnley Daniels Fischer Jellinek Lanning Masinter Murage Pavel Pedersen Santosa Shih Sybalsky vanMelle Woz)) (RPAQQ ARS.TESTERS (Blum Cate3 Kelley Lew Rhoades Wilkie)) (PUTPROPS ARSREPORT COPYRIGHT ("Venue & Xerox Corporation" 1986 1987 1990)) (DECLARE%: DONTCOPY (FILEMAP (NIL (938 19036 (AR.REPORT 948 . 2498) (ARS.GET.NUM.LIST 2500 . 2860) (ARS.REPORT.DRIVER 2862 . 3790) (ARS.REPORT.GEN.AR.LIST 3792 . 4595) (ARS.REPORT.GEN.NEW 4597 . 14518) ( ARS.REPORT.GET.NUM.LIST 14520 . 14887) (ARS.REPORT.GET.TDSINFO 14889 . 15343) ( ARS.REPORT.PROCESS.TDSINFO 15345 . 19034))))) STOP