mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-23 00:14:25 +00:00
142 lines
5.5 KiB
Batchfile
142 lines
5.5 KiB
Batchfile
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||
* *
|
||
* TIMELOGZ.CMD *
|
||
* This command file will, upon the user's request, print all the login and *
|
||
* logout times for all the users. This is for the the user's convenience. If *
|
||
* the user would rather not have2 this list, he/she can simply skip it. This *
|
||
* command file is called by TIMELOG.SUB and should turn control over to *
|
||
* TIMELOG.CMD for a report menu. *
|
||
* *
|
||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||
* * *
|
||
* Written By Michael Burch * Copyright (C) G&G Engineering 1982 *
|
||
* For Gifford Computer Systems * Reproduction or modification of this *
|
||
* Date: November 17, 1982 * program, in whole or in part, only with *
|
||
* Last Revision: 04/12/83 * written permission from G&G Engineering *
|
||
* * *
|
||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||
SET TALK OFF
|
||
ERASE
|
||
STORE 1 TO scr:line
|
||
SET INTENSITY OFF
|
||
@ scr:line,1 SAY 'You now have the option of printing a report of the raw TIMELOG data'
|
||
STORE scr:line+1 TO scr:line
|
||
@ scr:line,1 SAY 'to a file. This file may then be printed or edited at your convenience.'
|
||
STORE scr:line+1 TO scr:line
|
||
@ scr:line,1 SAY 'This step is not mandatory. You may skip this step by inputting "N" or'
|
||
STORE scr:line+1 TO scr:line
|
||
@ scr:line,1 SAY 'you may continue by inputting "Y" '
|
||
STORE scr:line+2 TO scr:line
|
||
STORE ' ' TO go
|
||
DO WHILE go <> 'Y' .AND. go <> 'N'
|
||
@ scr:line,1 SAY 'Input Y or N here ' GET go PICTURE '!'
|
||
READ
|
||
ENDDO
|
||
STORE scr:line+3 TO scr:line
|
||
IF go = 'N'
|
||
DO timelog
|
||
ENDIF
|
||
USE timelogx
|
||
STORE 'SunMonTueWedThuFriSat' TO weekday
|
||
STORE total:sec TO max
|
||
STORE total:sec TO min
|
||
STORE time:hr+':'+time:min+':'+time:sec TO max:time
|
||
STORE time:hr+':'+time:min+':'+time:sec TO min:time
|
||
STORE 0 TO kount
|
||
STORE 0 TO total:time
|
||
STORE ' ' TO output
|
||
DO WHILE output = ' '
|
||
@ scr:line,1 SAY 'Input the name of the file to which this report will be written ' GET output PICTURE '!!!!!!!!'
|
||
READ
|
||
STORE scr:line+1 TO scr:line
|
||
IF output <> ' ' .OR. @('.',output)=0
|
||
STORE TRIM(output)+'.TXT' TO filechek
|
||
IF FILE(filechek)
|
||
STORE ' ' TO killit
|
||
DO WHILE killit <> 'Y' .AND. killit <> 'N'
|
||
@ scr:line,1 SAY output+' already exists. Overwrite it? (Y/N) ' GET killit PICTURE '!'
|
||
READ
|
||
ENDDO
|
||
STORE scr:line+2 TO scr:line
|
||
IF killit = 'Y'
|
||
DELETE FILE &filechek
|
||
ELSE
|
||
STORE scr:line-3 TO scr:line
|
||
STORE ' ' TO output
|
||
ENDIF
|
||
ENDIF
|
||
ELSE
|
||
STORE scr:line-1 TO scr:line
|
||
STORE ' ' TO output
|
||
ENDIF
|
||
ENDDO
|
||
SET ALTERNATE TO &OUTPUT
|
||
@ scr:line,1 SAY 'Raw TIMELOG data is now being written to '+filechek
|
||
SET INTENSITY ON
|
||
SET CONSOLE OFF
|
||
SET ALTERNATE ON
|
||
?
|
||
? 'Account Device/Name Log In Log Out Elapsed'
|
||
? '========= ============ ===================== ===================== Time'
|
||
?
|
||
STORE 3 TO line
|
||
DO WHILE .NOT. EOF
|
||
IF line > 56
|
||
DO WHILE line < 66
|
||
?
|
||
STORE line+1 TO line
|
||
ENDDO
|
||
? 'Account Device/Name Log In Log Out Elapsed'
|
||
? '========= ============ ===================== ===================== Time'
|
||
?
|
||
STORE 3 TO line
|
||
ENDIF
|
||
? name+' '+con+'/'+tty+' '+hour:i+':'+min:i+':'+sec:i+' '+$(weekday,VAL(week:i)*3+1,3)
|
||
?? month:i+'/'+day:i+'/'+$(year:i,3,2)+' '+hour:o+':'+min:o+':'+sec:o
|
||
?? $(weekday,VAL(week:o)*3+1,3)+' '+month:o+'/'+day:o+'/'+$(year:o,3,2)
|
||
?? time:hr+':'+time:min+':'+time:sec
|
||
STORE line+1 TO line
|
||
STORE kount+1 TO kount
|
||
STORE total:time+total:sec TO total:time
|
||
IF total:sec < min
|
||
STORE total:sec TO min
|
||
STORE time:hr+':'+time:min+':'+time:sec TO min:time
|
||
ENDIF
|
||
IF total:sec > max
|
||
STORE total:sec TO max
|
||
STORE time:hr+':'+time:min+':'+time:sec TO max:time
|
||
ENDIF
|
||
SKIP
|
||
ENDDO
|
||
STORE STR(total:time/3600,4)+':' TO tot:time
|
||
STORE tot:time+STR((total:time-INT(total:time/3600)*3600)/60,2)+':' TO tot:time
|
||
IF $(tot:time,6,1) = ' '
|
||
STORE $(tot:time,1,5)+'0'+$(tot:time,7,2) TO tot:time
|
||
ENDIF
|
||
STORE tot:time+STR(total:time-INT(total:time/60)*60,2) TO tot:time
|
||
IF $(tot:time,9,1) = ' '
|
||
STORE $(tot:time,1,8)+'0'+$(tot:time,10,2) TO tot:time
|
||
ENDIF
|
||
STORE total:time/kount TO total:time
|
||
STORE STR(total:time/3600,4)+':' TO avg:time
|
||
STORE avg:time+STR((total:time-INT(total:time/3600)*3600)/60,2)+':' TO avg:time
|
||
IF $(avg:time,6,1) = ' '
|
||
STORE $(avg:time,1,5)+'0'+$(avg:time,7,2) TO avg:time
|
||
ENDIF
|
||
STORE avg:time+STR(total:time-INT(total:time/60)*60,2) TO avg:time
|
||
IF $(avg:time,9,1) = ' '
|
||
STORE $(avg:time,1,8)+'0'+$(avg:time,10,2) TO avg:time
|
||
ENDIF
|
||
?
|
||
? 'Number of "log in"s = '+STR(kount,5)+' '+'Shortest elapsed time = '+ min:time
|
||
? 'Total elapsed time = '+tot:time+' '+'Longest elapsed time = '+max:time
|
||
? ' Average elapsed time = '+avg:time
|
||
STORE line+4 TO line
|
||
DO WHILE line < 66
|
||
?
|
||
STORE line+1 TO line
|
||
ENDDO
|
||
SET ALTERNATE OFF
|
||
SET CONSOLE ON
|
||
DO timelog
|
||
|