home *** CD-ROM | disk | FTP | other *** search
/ M.u.C.S. Disc 2000 / MUCS2000.iso / sigisoft / shur / shur.bas < prev    next >
BASIC Source File  |  1997-10-09  |  21KB  |  403 lines

  1. 1 rem
  2. 2 rem 9,"N" KEY 10,"M" KEY 8,"Y"
  3. 4 DIM D$(52,12),M$(12):
  4. 6 RESTORE 14: FOR I=1 TO 12: READ M$(I): NEXT
  5. 7 LOCATE 22,5: COLOR 0,7: PRINT "                        AKTUELLES JAHR :                                   ": COLOR 7,0
  6. 8 ZZ$="": R=22: S=46: L=2: PK%=2: GOSUB 20: SU$=ZZ$
  7. 9 IF SU$=CHR$(13) THEN BEEP: GOSUB 190: GOTO 8
  8. 10 Z=VAL(SU$): IF LEN(SU$)<>2 OR Z<=86 OR Z>99 THEN BEEP: GOSUB 190: GOTO 8
  9. 11 JA$="19"+SU$: SU$="": GOTO 100
  10. 12 LOCATE 22,5: COLOR 0,7: PRINT "              DATEN WERDEN GESPEICHERT. BITTE WARTEN                       ": COLOR 7,0: RETURN
  11. 13 LOCATE 22,5: COLOR 0,7: PRINT "              DATEN WERDEN EINGELESEN . BITTE WARTEN                       ": COLOR 7,0: RETURN
  12. 14 DATA JANUAR,FEBRUAR,MÄRZ,APRIL,MAI,JUNI,JULI,AUGUST,SEPTEMBER,OKTOBER,NOVEMBER,DEZEMBER
  13. 20 ZZ$=LEFT$(ZZ$,L):ZZ$=ZZ$+STRING$(L-LEN(ZZ$),45):Z2=0:Y=1
  14. 21 LOCATE R,S,O:PRINT ZZ$;
  15. 22 LOCATE R,S+Y-1,1
  16. 23 Z$=INKEY$: IF Z$="" THEN 23 ELSE Z=ASC(Z$): Z1=0: IF Z=0 THEN Z1=ASC(RIGHT$(Z$,1))
  17. 24 IF Z<>13 THEN 28 ELSE IF Z2 >0 THEN 23
  18. 25 IF Y=1 THEN ZZ$=CHR$(13):RETURN
  19. 26 IF RIGHT$(ZZ$,1)="_" THEN ZZ$=LEFT$(ZZ$,INSTR(ZZ$,"_")-1)
  20. 27 RETURN
  21. 28 IF Z<>0 THEN 48
  22. 29 IF Z1<>71 THEN 31 ELSE IF Y=1 OR Z2 THEN 23
  23. 30 Y=1:GOTO 22
  24. 31 IF Z1<>75 THEN 33 ELSE IF Y=1 OR Z2 THEN 23
  25. 32 Y=Y-1:GOTO 22
  26. 33 IF Z1<>77 THEN GOTO 35 ELSE IF MID$(ZZ$,Y,1)="_" OR Y>L THEN GOTO 23
  27. 34 Y=Y+1:GOTO 22
  28. 35 IF Z1<>79 THEN 39 ELSE IF Y>L OR Z2 THEN 23
  29. 36 IF MID$(ZZ$,Y,1)="_" THEN 23
  30. 37 Y=Y+1
  31. 38 IF MID$(ZZ$,Y,1)="_" THEN 22 ELSE 37
  32. 39 IF Z1<>82 THEN 42 ELSE IF RIGHT$(ZZ$,1)<>"_" THEN 23
  33. 40 IF (Z2=0 AND MID$(ZZ$,Y,1)="_") OR Y>L THEN 23
  34. 41 ZZ$=LEFT$(ZZ$,Y-1)+"_"+MID$(ZZ$,Y,L-Y):Z2=Z2+1:GOTO 21
  35. 42 IF Z1<>83 THEN 44 ELSE IF (Z2=0 AND MID$(ZZ$,Y,1)="_") OR Y>L THEN 23
  36. 43 GOSUB 56:ZZ$=LEFT$(ZZ$,Y-1)+MID$(ZZ$,Y+1)+"_":GOTO 21
  37. 44 IF Z1<>117 THEN 46 ELSE IF (Z2=0 AND MID$(ZZ$,Y,1)="_") OR Y>L THEN 23
  38. 45 GOSUB 56:ZZ$=LEFT$(ZZ$,Y-1)+STRING$(L-Y+1,45):GOTO 21
  39. 46 IF Z1<>119 THEN 23 ELSE IF Y=1 THEN 23
  40. 47 ZZ$=MID$(ZZ$,Y)+STRING$(Y-1,45):Y=1:GOTO 21
  41. 48 IF Z<>8 THEN 50 ELSE IF Y=1 THEN 23
  42. 49 ZZ$=LEFT$(ZZ$,Y-2)+MID$(ZZ$,Y)+"_":Y=Y-1:GOTO 21
  43. 50 IF Z<>27 THEN 51 ELSE ZZ$=STRING$(L,45):Y=1:Z2=0: GOTO 21
  44. 51 IF Z=95 OR Y>L THEN 23
  45. 52 ON PK% GOTO 55,53,54
  46. 53 IF Z<46 OR Z>58 THEN 23 ELSE 55
  47. 54 IF Z<>106 AND Z<>110 THEN 23
  48. 55 GOSUB 56:ZZ$=LEFT$(ZZ$,Y-1)+Z$+MID$(ZZ$,Y+1):PRINT Z$;:Y=Y+1:GOTO 22
  49. 56 IF Z2 THEN Z2=Z2-1
  50. 57 RETURN
  51. 60 CLS
  52. 61 LOCATE 2,1: PRINT CHR$(45)+STRING$(78,45)+CHR$(45)
  53. 62 LOCATE 3,1: PRINT CHR$(45)+SPACE$(28)+"    S T E C H U H R        "+SPACE$(23)+CHR$(45)
  54. 63 LOCATE 4,1: PRINT CHR$(45)+SPACE$(25)+"(c) 1991 by Siegfried Hübner"+SPACE$(25)+CHR$(45)
  55. 64 LOCATE 5,1: PRINT CHR$(45)+STRING$(78,45)+CHR$(45): RETURN
  56. 90 LOCATE 22,5: COLOR 0,7: PRINT "                        BELIEBIGE TASTE DRÜCKEN                            ": COLOR 7,0
  57. 91 E$=INKEY$: IF E$="" THEN 91
  58. 92 RETURN
  59. 100 GOSUB 60: LOCATE ,,0
  60. 105 LOCATE 7,26: PRINT "[1] EINGABE DER PERSONALDATEN"
  61. 106 LOCATE 9,26: PRINT "[2] AUSGABE DER PERSONALDATEN"
  62. 107 LOCATE 11,26: PRINT "[3] EINGABE DER STECHZEITEN"
  63. 108 LOCATE 13,26: PRINT "[4] AUSGABE DER STECHZEITEN"
  64. 109 LOCATE 15,26: PRINT "[5] DRUCK   DER STECHZEITEN"
  65. 111 LOCATE 17,26: PRINT "[6] PROGRAMM BEENDEN"
  66. 112 rem
  67. 120 E$=INKEY$: IF E$="" THEN 120
  68. 121 IF E$="1" THEN 200
  69. 122 IF E$="2" THEN 1500
  70. 123 IF E$="3" THEN GOSUB 160: GOTO 1000
  71. 124 IF E$="4" THEN GOSUB 600: GOTO 500
  72. 125 IF E$="5" THEN GOSUB 600: GOTO 650
  73. 126 rem
  74. 127 IF E$="6" THEN CLS: END
  75. 128 GOTO 120
  76. 150 NA$=F1$+".dat": GOSUB 12
  77. 151 OPEN NA$ FOR OUTPUT AS #1
  78. 152 PRINT #1,F1$: PRINT #1,F2$: PRINT #1,F3$: PRINT #1,F4$
  79. 156 CLOSE #1: RETURN
  80. 160 ZW1=0: ZW2=0: ZW3=0: ZW4=0: UNTER=0: SUMME=0: GESAMT=0: GES=0: UEBER=0: TA=0: SOLL$="": RETURN
  81. 180 F1$="": F2$="": F3$="": F4$="": RETURN
  82. 190 LOCATE 22,5: COLOR 0,7: PRINT SPACE$(75): LOCATE 22,5: PRINT "                         EINGABE ZWINGEND VORGEGEBEN      ": COLOR 7,0
  83. 191 RETURN
  84. 192 LOCATE 22,5: PRINT SPACE$(75): RETURN
  85. 193 LOCATE 22,5: COLOR 0,7: PRINT SPACE$(75): LOCATE 22,5: PRINT "                    FALSCHE EINGABE MIT ";FA$: COLOR 7,0: RETURN
  86. 194 LOCATE 22,5: COLOR 0,7: PRINT SPACE$(75): LOCATE 22,5: PRINT "             ACHTUNG ! WOCHENENDE ! NEUE EINGABE   TASTE DRÜCKEN   ": COLOR 7,0 : GOSUB 91: RETURN
  87. 195 COLOR 0,7: LOCATE 22,5: PRINT "           MONAT  : ";M$ ;" ZU ENDE. BELIEBIGE TASTE DRÜCKEN             ": COLOR 7,0: GOSUB 91: GOTO 480
  88. 196 PP=1: LOCATE 22,5: COLOR 0,7: PRINT SPACE$(75): LOCATE 22,5: PRINT "               MINDESTENS 1 ZEICHEN KORRIGIEREN                    ": COLOR 7,0 : RETURN
  89. 200 GOSUB 180: GOSUB 60: GOSUB 201: GOTO 219
  90. 201 LOCATE 7,10: PRINT "[1] PERSONAL-NUMMER :     "
  91. 202 LOCATE 9,10: PRINT "[2] VORNAME         :                         "
  92. 203 LOCATE 11,10: PRINT "[3] NACHNAME        :                         "
  93. 204 LOCATE 13,10: PRINT "[4] +/-HABEN        :                         "
  94. 208 RETURN
  95. 219 ZZ$=""
  96. 220 R=7: S=32: L=6: PK%=1: GOSUB 20: F1$=ZZ$: IF F1$="*" THEN GOSUB 180: GOTO 100
  97. 221 IF F1$=CHR$(13) THEN BEEP: GOSUB 190: GOTO 219
  98. 223 GOSUB 192
  99. 224 ZZ$="": IF PP=1 THEN RETURN
  100. 225 R=9: S=32: L=20: PK%=1: GOSUB 20: F2$=ZZ$
  101. 226 IF F2$=CHR$(13) THEN F2$="-"
  102. 227 IF PP=1 THEN RETURN
  103. 228 ZZ$=""
  104. 230 R=11: S=32: L=20: PK%=1: GOSUB 20: F3$=ZZ$
  105. 231 IF F3$=CHR$(13) THEN BEEP: GOSUB 190: GOTO 228
  106. 232 IF PP=1 THEN RETURN
  107. 233 GOSUB 192
  108. 234 ZZ$=""
  109. 240 R=13: S=32: L=4 : PK%=1: GOSUB 20: F4$=ZZ$
  110. 241 IF F4$=CHR$(13) THEN BEEP: F4$="0"
  111. 242 IF PP=1 THEN RETURN
  112. 248 ZZ$=""
  113. 279 COLOR 0,7: LOCATE 22,5: PRINT "   WEITERE EINGABE = N     KORREKTUR = 1 - 4     HAUPTMENÜ = M        ": COLOR 7,0: PP=0
  114. 280 E$=INKEY$: IF E$="" THEN 280
  115. 281 IF E$="N" OR E$="n" THEN GOSUB 150: GOTO 200
  116. 282 IF E$="M" OR E$="m" THEN GOSUB 150: GOTO 100
  117. 283 IF E$="1" THEN GOSUB 196: ZZ$=F1$: GOSUB 220: GOTO 279
  118. 284 IF E$="2" THEN GOSUB 196: ZZ$=F2$: GOSUB 225: GOTO 279
  119. 285 IF E$="3" THEN GOSUB 196: ZZ$=F3$: GOSUB 230: GOTO 279
  120. 286 IF E$="4" THEN GOSUB 196: ZZ$=F4$: GOSUB 240: GOTO 279
  121. 290 GOTO 280
  122. 300 GOSUB 60: SUMME=0: GOSUB 1070: STUNDE=0: STUNDEN=0: GES=0: GESAMT=0: UEBER=0: SU$="": TAG=0: GE=0: GOTO 325
  123. 309 DATA SONNTAG,MONTAG,DIENSTAG,MITTWOCH,DONNERSTAG,FREITAG,SAMSTAG
  124. 310 A=0: E=0: Y=0: MO=VAL(MO$): JA=VAL(JA$): TAG=VAL(TA$): B$="": B1$=""
  125. 311 IF MO>2 THEN 313
  126. 312 JA=JA-1: MO=MO+12
  127. 313 E=INT(JA/100)
  128. 314 Y=JA-E*100
  129. 315 A=INT(2.6001*(MO-2)-.2)+TAG+Y+INT(Y/4)+INT(E/4)-2*E
  130. 316 A=A-INT(A/7)*7+1
  131. 317 RESTORE 309
  132. 318 FOR I=1 TO A: READ B$ : NEXT: B1$=B$: AN$="08.00": AU$="17.00"
  133. 319 IF B1$="FREITAG" THEN SOLL$="390": AN$="07.30": AU$="14.00" ELSE SOLL$="540": AN$="08.00": AU$="17.00": GE=TAG
  134. 320 IF B1$="SAMSTAG" THEN TAG=TAG+1: GE=TAG: TA$=STR$(TAG): GOSUB 330: GOSUB 194: SOLL$="000": GOSUB 310: GOTO 346
  135. 321 IF B1$="SONNTAG" THEN SOLL$="000": GOSUB 194: GOTO 346
  136. 324 GOSUB 330: RETURN
  137. 325 REM
  138. 327 LOCATE 7,5: PRINT "PERSONAL-NR. : ";F1$
  139. 328 LOCATE 8,5: PRINT "NAME,VORNAME : ";F3$;", ";F2$: GOTO 335
  140. 330 LOCATE 9,5: PRINT "DATUM        : ";TA$;".";MO$;".";JA$
  141. 332 LOCATE 10,5: PRINT "WOCHENTAG    : ";B$;TAB(40);"SOLLZEIT : ";SOLL$: RETURN
  142. 335 D=D+1: LOCATE 3,60: PRINT "DATENSATZ :";D
  143. 336 GOSUB 340: GOTO 345
  144. 340 LOCATE 12,10: PRINT "TAG      :              SOLLZEIT :       MINUTEN"
  145. 341 LOCATE 14,10: PRINT "BEGINN   :                 PAUSE :                 ENDE :       "
  146. 342 LOCATE 16,10: PRINT "UNTER BEG:            UNTER ENDE :              STUNDEN :       "
  147. 343 LOCATE 18,10: PRINT "GESAMT   :              +/- ZEIT :           +/- GESAMT :            "
  148. 344 LOCATE 20,10: PRINT "HINWEISE :                                              ": RETURN
  149. 345 ZZ$=""
  150. 346 TAG=VAL(TA$): GE=GE+1: TA$=STR$(GE): GOSUB 310
  151. 347 IF GE<9 THEN TA$="0"+RIGHT$(TA$,1)
  152. 348 IF GE>9 THEN TA$=RIGHT$(TA$,2)
  153. 349 ZZ$=TA$: TAG=VAL(TA$): IF TAG>=32 THEN GOSUB 2020: GOTO 195
  154. 350 GOSUB 192: R=12: S=21: L=2: PK%=2: GOSUB 20: D$(D,1)=ZZ$
  155. 351 IF D$(D,1)=CHR$(13) THEN D$(D,1)=TA$: GOTO 354
  156. 352 Z=VAL(D$(D,1)): IF LEN(D$(D,1))<>2 OR Z<=0 OR Z>31 THEN BEEP: GOSUB 190: GOTO 350
  157. 353 TA$=(D$(D,1)): GOSUB 310: GOSUB 192
  158. 354 TAG=VAL(TA$): IF TAG>=32 THEN GOSUB 2020: GOTO 195
  159. 359 ZZ$=SOLL$
  160. 360 R=12: S=45: L=3: PK%=1: GOSUB 20: D$(D,2)=ZZ$
  161. 361 IF D$(D,2)=CHR$(13) THEN D$(D,2)=SOLL$
  162. 362 Z=VAL(D$(D,2)): IF LEN(D$(D,2))<>3 OR Z<=0 THEN BEEP: FA$=D$(D,2):GOSUB 193: ZZ$=SOLL$: GOTO 360
  163. 363 GOSUB 192
  164. 364 ZZ$=AN$
  165. 370 R=14: S=21: L=5: PK%=2: GOSUB 20: D$(D,3)=ZZ$
  166. 371 IF D$(D,3)=CHR$(13) THEN D$(D,3)=AN$
  167. 372 S1$=LEFT$(D$(D,3),3): IF MID$(S1$,3,1)<>"." THEN FA$="FALSCHE ZEITEINGABE": GOSUB 193: BEEP : ZZ$=AN$: GOTO 370
  168. 373 S1=VAL(S1$): IF S1<7 OR S1>17 THEN BEEP: FA$=S1$+" ZEITANGABE FALSCH": GOSUB 193: ZZ$=AN$: GOTO 370
  169. 374 S2$=RIGHT$(D$(D,3),3): IF MID$(S2$,1,1)<>"." THEN FA$="FALSCHE ZEITEINGABE": GOSUB 193: BEEP : ZZ$=AN$: GOTO 370
  170. 375 S2=VAL(S2$): IF MID$(S2$,2,2)>"59" THEN BEEP: FA$=S2$+" ZEITANGABE FALSCH": GOSUB 193: ZZ$=AN$: GOTO 370
  171. 376 IF LEN(D$(D,3))<>5 THEN BEEP: FA$="5 STELLEN EINGEBEN": GOSUB 193: ZZ$=AN$: GOTO 370
  172. 378 GOSUB 192
  173. 379 ZZ$="30"
  174. 380 R=14: S=45: L=2: PK%=2: GOSUB 20: D$(D,4)=ZZ$
  175. 381 IF D$(D,4)=CHR$(13) THEN D$(D,4)="30"
  176. 382 IF LEN(D$(D,4))<>2 OR    D$(D,4)="00" OR D$(D,4)>"59" THEN FA$=D$(D,4): BEEP: GOSUB 193: ZZ$="30": GOTO 380
  177. 383 IF D$(D,4)="" THEN BEEP: GOSUB 190: ZZ$="30": GOTO 380
  178. 384 GOSUB 192: ZZ$=AU$
  179. 385 R=14: S=67: L=5: PK%=2: GOSUB 20: D$(D,5)=ZZ$
  180. 386 IF D$(D,5)=CHR$(13) THEN D$(D,5)=AU$
  181. 387 S1$=LEFT$(D$(D,5),3): IF MID$(S1$,3,1)<>"." THEN FA$=S1$: GOSUB 193: BEEP : ZZ$=AU$: GOTO 385
  182. 388 S1=VAL(S1$): IF S1<=0 OR S1>17 THEN BEEP: FA$=S1$+" ZEITANGABE FALSCH": GOSUB 193: ZZ$=AU$: GOTO 385
  183. 389 S2$=RIGHT$(D$(D,5),3): IF MID$(S2$,1,1)<>"." THEN FA$=S2$: GOSUB 193: BEEP : ZZ$=AU$: GOTO 385
  184. 390 S2=VAL(S2$): IF MID$(S2$,2,2)>"59" OR D$(D,5)>"17.00" THEN BEEP: FA$=S2$+" ZEITANGABE FALSCH": GOSUB 193: ZZ$=AU$: GOTO 385
  185. 391 IF LEN(D$(D,5))<>5 THEN BEEP: FA$="5 STELLEN EINGEBEN": GOSUB 193: ZZ$=AU$: GOTO 385
  186. 392 GOSUB 192
  187. 393 ZZ$="00.00"
  188. 395 R=16: S=21: L=5: PK%=2: GOSUB 20: D$(D,6)=ZZ$
  189. 396 IF D$(D,6)=CHR$(13) THEN D$(D,6)="00.00": GOTO 402
  190. 397 S1$=LEFT$(D$(D,6),3): IF MID$(S1$,3,1)<>"." THEN FA$=S1$: GOSUB 193: BEEP : ZZ$="00.00": GOTO 395
  191. 398 S1=VAL(S1$): IF S1<=0 OR S1>17 THEN BEEP: FA$=S1$+" ZEITANGABE FALSCH": GOSUB 193: ZZ$="00.00": GOTO 395
  192. 399 S2$=RIGHT$(D$(D,6),3): IF MID$(S2$,1,1)<>"." THEN FA$=S2$: GOSUB 193: BEEP : ZZ$="00.00": GOTO 395
  193. 400 S2=VAL(S2$): IF MID$(S2$,2,2)>"59" THEN BEEP: FA$=S2$+" ZEITANGABE FALSCH": GOSUB 193: ZZ$="00.00": GOTO 395
  194. 401 IF LEN(D$(D,6))<>5 THEN BEEP: FA$="5 STELLEN EINGEBEN": GOSUB 193: ZZ$="00.00": GOTO 395
  195. 402 GOSUB 192
  196. 403 ZZ$="00.00"
  197. 405 R=16: S=45: L=5: PK%=2: GOSUB 20: D$(D,7)=ZZ$
  198. 406 IF D$(D,7)=CHR$(13) THEN D$(D,7)="00.00": GOTO 412
  199. 407 S1$=LEFT$(D$(D,7),3): IF MID$(S1$,3,1)<>"." THEN FA$=S1$: GOSUB 193: BEEP : ZZ$="00.00": GOTO 405
  200. 408 S1=VAL(S1$): IF S1<=0 OR S1>17 THEN BEEP: FA$=S1$+" ZEITANGABE FALSCH": GOSUB 193: ZZ$="00.00": GOTO 405
  201. 409 S2$=RIGHT$(D$(D,7),3): IF MID$(S2$,1,1)<>"." THEN FA$=S2$: GOSUB 193: BEEP : ZZ$="00.00": GOTO 405
  202. 410 S2=VAL(S2$): IF MID$(S2$,2,2)>"59" THEN BEEP: FA$=S2$+" ZEITANGABE FALSCH": GOSUB 193: ZZ$="00.00": GOTO 405
  203. 411 IF LEN(D$(D,7))<>5 THEN BEEP: FA$="5 STELLEN EINGEBEN": GOSUB 193: ZZ$="00.00": GOTO 405
  204. 412 GOSUB 192
  205. 420 S1$=LEFT$(D$(D,3),2): S2$=RIGHT$(D$(D,3),2)
  206. 421 BEG1=VAL(S1$): BEG2=VAL(S2$): IF BEG2<30 THEN BEG2=0 :'beginn
  207. 422 S1$=LEFT$(D$(D,5),2): S2$=RIGHT$(D$(D,5),2)
  208. 423 END1=VAL(S1$): END2=VAL(S2$): 'ende
  209. 424 PAUSE=VAL(D$(D,4)):           'pause
  210. 425 S1$=LEFT$(D$(D,6),2): S2$=RIGHT$(D$(D,6),2)
  211. 426 UNA1=VAL(S1$): UNA2=VAL(S2$): 'unterbrechung beginn
  212. 427 S1$=LEFT$(D$(D,7),2): S2$=RIGHT$(D$(D,7),2)
  213. 428 UNE1=VAL(S1$): UNE2=VAL(S2$): 'unterbrechung ende
  214. 430 ZW1=END1*60+END2 : 'minuten arbeitsende
  215. 431 ZW2=BEG1*60+BEG2 : 'minuten arbeitsbeginn
  216. 432 ZW3=UNE1*60+UNE2 : 'minuten unterbrechung ende
  217. 433 ZW4=UNA1*60+UNA2 : 'minuten unterbrechung beginn
  218. 434 UNTER=ZW3-ZW4    : 'differenz unterbrechnung
  219. 435 SOLL=VAL(D$(D,2)): 'sollzeit
  220. 440 SUMME=0: 'berechung
  221. 441 SUMME=ZW1+30     : 'arbeitsende + 30 minuten pause
  222. 442 STUNDEN=SUMME-ZW2-PAUSE-UNTER : 'ende - beginn - pause - unterbrechung
  223. 445 STUNDE=STUNDEN/60: STUNDE=INT(STUNDE*100+.5)/100: LOCATE 16,67: PRINT USING"##.##";STUNDE: D$(D,8)=STR$(STUNDE)
  224. 446 GESAMT=GESAMT+STUNDEN
  225. 448 GES=GESAMT/60: GES=INT(GES*100+.5)/100: LOCATE 18,21: PRINT USING"##.##";GES: D$(D,9)=STR$(GES)
  226. 450 UEBER=STUNDEN-SOLL
  227. 452 LOCATE 18,45: PRINT UEBER: D$(D,10)=STR$(UEBER)
  228. 455 PLUS=PLUS+UEBER: D$(D,11)=STR$(PLUS)
  229. 458 LOCATE 18,68: PRINT PLUS
  230. 460 ZZ$=""
  231. 461 R=20: S=21: L=45: PK%=1: GOSUB 20: D$(D,12)=ZZ$
  232. 462 IF D$(D,12)=CHR$(13) THEN D$(D,12)="-"
  233. 469 LOCATE 22,5: COLOR 0,7: PRINT SPACE$(75): LOCATE 22,5: PRINT " WEITERE EINGABEN = N  KORREKTUR = Y   EINGABEENDE= M ": COLOR 7,0
  234. 470 E$=INKEY$: IF E$="" THEN 470
  235. 471 IF E$="N" OR E$="n" THEN 335
  236. 472 IF E$="M" OR E$="m" THEN 480
  237. 473 IF E$="Y" OR E$="y" THEN ZZ$=D$(D,1): TA$=ZZ$: GESAMT=GESAMT-STUNDEN: PLUS=PLUS-UEBER: GOSUB 340: GOTO 350
  238. 474 GOTO 470
  239. 480 NA$=MO$+F1$+".j"+RIGHT$(JA$,2): GOSUB 12
  240. 481 OPEN NA$ FOR OUTPUT AS #1
  241. 482 PRINT #1,F1$: PRINT #1,F2$: PRINT #1,F3$: PRINT #1,F4$
  242. 483 PRINT #1,MO$: PRINT #1,JA$
  243. 484 PRINT #1,D
  244. 485 FOR I=1 TO D
  245. 486 FOR K=1 TO 12
  246. 487 PRINT #1,D$(I,K)
  247. 488 NEXT: NEXT: CLOSE #1: GOTO 100
  248. 500 GOSUB 60: GOTO 525
  249. 509 DATA SONNTAG,MONTAG,DIENSTAG,MITTWOCH,DONNERSTAG,FREITAG,SAMSTAG
  250. 510 A=0: E=0: Y=0: MO=VAL(MO$): JA=VAL(JA$): TAG=VAL(TA$): B$="": B1$=""
  251. 511 IF MO>2 THEN 513
  252. 512 JA=JA-1: MO=MO+12
  253. 513 E=INT(JA/100)
  254. 514 Y=JA-E*100
  255. 515 A=INT(2.6001*(MO-2)-.2)+TAG+Y+INT(Y/4)+INT(E/4)-2*E
  256. 516 A=A-INT(A/7)*7+1
  257. 517 RESTORE 509
  258. 518 FOR I=1 TO A: READ B$ : NEXT
  259. 519 GOSUB 530: RETURN
  260. 525 REM
  261. 527 LOCATE 7,5: PRINT "PERSONAL-NR. : ";F1$
  262. 528 LOCATE 8,5: PRINT "NAME,VORNAME : ";F3$;", ";F2$: GOTO 540
  263. 530 LOCATE 9,5: PRINT "DATUM        : ";TA$;".";MO$;".";JA$
  264. 532 LOCATE 10,5: PRINT "WOCHENTAG    : ";B$;TAB(40);"SOLLZEIT : ";SOLL$: RETURN
  265. 540 FOR B=1 TO D: TA$=D$(B,1): GOSUB 310
  266. 541 LOCATE 3,60: PRINT "DATENSATZ :";B
  267. 542 GOSUB 340: GOSUB 2000
  268. 549 LOCATE 22,5: COLOR 0,7: PRINT SPACE$(75): LOCATE 22,5: PRINT "     WEITERE AUSGABEN = N     ZURÜCK = M    HAUPTMENÜ = Y     ": COLOR 7,0
  269. 550 E$=INKEY$: IF E$="" THEN 550
  270. 551 IF E$="N" OR E$="n" THEN 555
  271. 552 IF E$="Y" OR E$="y" THEN 100
  272. 553 IF E$="M" OR E$="m" THEN 564
  273. 554 GOTO 550
  274. 555 IF B=D THEN 557
  275. 556 NEXT
  276. 557 LOCATE 22,5: COLOR 0,7: PRINT SPACE$(75): LOCATE 22,5: PRINT " DATENENDE                      ZURÜCK = M   HAUPTMENÜ = Y       ": COLOR 7,0
  277. 560 E$=INKEY$: IF E$="" THEN 560
  278. 561 IF E$="M" OR E$="m" THEN 564
  279. 562 IF E$="Y" OR E$="y" THEN 100
  280. 563 GOTO 560
  281. 564 B=B-1
  282. 565 IF B<=0 THEN B=1 : GOTO 540
  283. 566 TA$=D$(B,1): GOSUB 310: GOTO 541
  284. 600 LOCATE 21,5: COLOR 0,7: PRINT SPACE$(75): LOCATE 21,5: PRINT "                  AKTUELLER MONAT :       PERSONALNUMMER :                 ": COLOR 7,0: SU$=""
  285. 601  GOSUB 192: ZZ$="": R=21: S=40: L=2: PK%=1: GOSUB 20: MO$=ZZ$: IF MO$="*" THEN 100
  286. 602  IF MO$=CHR$(13) THEN BEEP: GOSUB 190: GOTO 601
  287. 603  Z=VAL(MO$): IF LEN(MO$)<>2 OR Z<=0 OR Z>12 THEN BEEP: GOSUB 190: GOTO 601
  288. 604  GOSUB 192
  289. 605  ZZ$="": R=21: S=64: L=6: PK%=2: GOSUB 20: SU$=ZZ$
  290. 606  IF SU$=CHR$(13) THEN BEEP: GOSUB 190: GOTO 605
  291. 607  GOSUB 192
  292. 620  ON ERROR GOTO  628: NA$=MO$+SU$+".j"+RIGHT$(JA$,2): GOSUB 13
  293. 621  OPEN NA$ FOR INPUT AS #1
  294. 622  INPUT #1,F1$,F2$,F3$,F4$,MO$,JA$
  295. 623  INPUT #1,D
  296. 624  FOR I=1 TO D
  297. 625  FOR K=1 TO 12
  298. 626  INPUT #1,D$(I,K)
  299. 627  NEXT: NEXT: CLOSE #1: RETURN
  300. 628  IF ERR=53 AND ERR=58 OR ERR=1230 THEN 630
  301. 629 RETURN
  302. 630  LOCATE 22,5: COLOR 0,7: PRINT "           DATEINAMEN NICHT GEFUNDEN. BELIEBIGE TASTE DRÜCKEN              ": COLOR 7,0: GOSUB 91: GOTO  100
  303. 631  REM
  304. 650  LOCATE 22,5: COLOR 0,7: PRINT "               DRUCKER EINSCHALTEN UND TASTE = D DRÜCKEN                   ": COLOR 7,0
  305. 651 E$=INKEY$: IF E$="" THEN 651
  306. 652 IF E$="D" OR E$="d" THEN 659
  307. 653 GOTO 651
  308. 659  LOCATE 22,5: COLOR 0,7: PRINT "               DRUCKER IN BETRIEB           BITTE WARTEN                   ": COLOR 7,0
  309. 660 LPRINT TAB(5)"PERSONAL-NUMMER : ";F1$
  310. 661 LPRINT TAB(5)"VOR-/NACHNAME   : ";F2$;" ";F3$
  311. 662 LPRINT TAB(5)"-/+ HABEN VORMO.: ";F4$
  312. 666 LPRINT TAB(5)"MONAT / JAHR    : ";MO$;"/";JA$
  313. 670 LPRINT TAB(5)"TAG SOLLZEIT BEGINN PAUSE ENDE UNT.BEG UNT.END STUNDEN GESAMT +/-ZEIT UEBER"
  314. 675 FOR B=1 TO D
  315. 676 LPRINT TAB(5);D$(B,1);TAB(12);D$(B,2);TAB(18);D$(B,3);TAB(25);D$(B,4);TAB(31);D$(B,5);
  316. 677 LPRINT TAB(37);D$(B,6);TAB(45);D$(B,7);: W=VAL(D$(B,8)): GOSUB 1200: D$(B,8)=U$: U=VAL(U$): LPRINT TAB(53);USING"##.##";U
  317. 678 W=VAL(D$(B,9)): GOSUB 1200: D$(B,9)=U$: U=VAL(U$): LPRINT TAB(60);USING"##.##";U;:LPRINT TAB(70);D$(B,10);TAB(77);D$(B,11)
  318. 679 NEXT
  319. 680 CLOSE: GOTO 100
  320. 1000 GOSUB 180: LOCATE 21,5: COLOR 0,7: PRINT SPACE$(75): LOCATE 21,5: PRINT "                  AKTUELLER MONAT :       (2 ZIFFERN)                      ": COLOR 7,0
  321. 1005 ZZ$="": R=21: S=40: L=2: PK%=2: GOSUB 20: MO$=ZZ$
  322. 1006 IF MO$=CHR$(13) THEN BEEP: GOSUB 190: GOTO 1005
  323. 1007 Z=VAL(MO$): IF LEN(MO$)<>2 OR Z<=0 OR Z>12 THEN BEEP: GOSUB 190: GOTO 1005
  324. 1008 GOSUB 192
  325. 1010 LOCATE 21,5: COLOR 0,7: PRINT SPACE$(75): LOCATE 21,5: PRINT "       VORHANDENE DATEN LADEN = N      ERST(NEU)EINGABE = M   ": COLOR 7,0
  326. 1015 E$=INKEY$: IF E$="" THEN 1015
  327. 1016 IF E$="N" OR E$="n" THEN 1030
  328. 1017 IF E$="M" OR E$="m" THEN 1020
  329. 1018 GOTO 1015
  330. 1020 LOCATE 21,5: COLOR 0,7: PRINT SPACE$(75): LOCATE 21,5: PRINT "                   PERSONALNUMMER :                                        ": COLOR 7,0
  331. 1021 ZZ$="": R=21: S=40: L=6: PK%=2: GOSUB 20: SU$=ZZ$
  332. 1022 IF SU$=CHR$(13) THEN BEEP: GOSUB 190: GOTO 1021
  333. 1023 ON ERROR GOTO 1027: NA$=SU$+".dat": GOSUB 13
  334. 1024 OPEN NA$ FOR INPUT AS #1
  335. 1025 INPUT #1,F1$,F2$,F3$,F4$
  336. 1026 CLOSE #1: PLUS=VAL(F4$): TA$="": GOTO 300
  337. 1027 IF ERR=53 AND ERR=58 OR ERR=1230 THEN 1128
  338. 1028 GOTO 300
  339. 1029 REM
  340. 1030 LOCATE 21,5: COLOR 0,7: PRINT SPACE$(75): LOCATE 21,5: PRINT "                   PERSONALNUMMER :                                        ": COLOR 7,0
  341. 1031 ZZ$="": R=21: S=40: L=6: PK%=2: GOSUB 20: SU$=ZZ$
  342. 1032 IF SU$=CHR$(13) THEN BEEP: GOSUB 190: GOTO 1031
  343. 1033 ON ERROR GOTO 1041: NA$=MO$+SU$+".j"+RIGHT$(JA$,2): GOSUB 13
  344. 1034 OPEN NA$ FOR INPUT AS #1
  345. 1035 INPUT #1,F1$,F2$,F3$,F4$,MO$,JA$
  346. 1036 INPUT #1,D
  347. 1037 FOR I=1 TO D
  348. 1038 FOR K=1 TO 12
  349. 1039 INPUT #1,D$(I,K)
  350. 1040 NEXT: NEXT: CLOSE #1: GOTO 500
  351. 1041 IF ERR=53 AND ERR=58 OR ERR=1230 THEN 1042
  352. 1042 LOCATE 22,5: COLOR 0,7: PRINT "           DATEINAMEN NICHT GEFUNDEN. BELIEBIGE TASTE DRÜCKEN              ": COLOR 7,0: GOSUB 91: GOTO 1031
  353. 1043 REM
  354. 1050 LOCATE 7,32:PRINT F1$:LOCATE 9,32:PRINT F2$:LOCATE 11,32:PRINT F3$:LOCATE 13,32:PRINT F4$
  355. 1054 RETURN
  356. 1070 MO=VAL(MO$)
  357. 1071 FOR I=1 TO 12
  358. 1072 IF MO=I THEN M$=M$(I): RETURN
  359. 1073 NEXT: RETURN
  360. 1128 LOCATE 22,5: COLOR 0,7: PRINT "           DATEINAMEN NICHT GEFUNDEN. BELIEBIGE TASTE DRÜCKEN              ": COLOR 7,0: GOSUB 91: GOTO 1021
  361. 1200 U$=STR$(W)
  362. 1201 FOR J=1 TO LEN(U$)
  363. 1202 IF MID$((U$),J,1)="." THEN 1206
  364. 1203 NEXT
  365. 1205 U$=U$+".00"
  366. 1206 IF J=LEN(U$)-1 THEN U$=U$+"0"
  367. 1207 FOR X=1 TO 4-J
  368. 1208 U$=" "+U$: NEXT
  369. 1209 RETURN
  370. 1500 GOSUB 60: NA$=""
  371. 1501 GOSUB 201
  372. 1505 GOSUB 192: ZZ$="": R=7: S=32: L=6: PK%=1: GOSUB 20: SU$=ZZ$: IF SU$="*" THEN 100
  373. 1506 ON ERROR GOTO 1510: NA$=SU$+".dat": GOSUB 13
  374. 1507 OPEN NA$ FOR INPUT AS #1
  375. 1508 INPUT #1,F1$,F2$,F3$,F4$
  376. 1509 CLOSE #1 : GOTO 1520
  377. 1510 IF ERR=53 AND ERR=58 OR ERR=1230 THEN 1515
  378. 1511 GOTO 1515
  379. 1512 REM
  380. 1515 LOCATE 22,5: COLOR 0,7: PRINT "           DATEINAMEN NICHT GEFUNDEN. BELIEBIGE TASTE DRÜCKEN              ": COLOR 7,0: GOSUB 91: GOTO 1505
  381. 1520 LOCATE 9,32: PRINT F2$: LOCATE 11,32: PRINT F3$: LOCATE 13,32: PRINT F4$
  382. 1524 COLOR 0,7: LOCATE 22,5: PRINT "   WEITER SUCHEN   = N                           HAUPTMENÜ = M        ": COLOR 7,0: PP=0
  383. 1525 E$=INKEY$: IF E$="" THEN 1525
  384. 1526 IF E$="N" OR E$="n" THEN GOSUB 201: GOTO 1505
  385. 1527 IF E$="M" OR E$="m" THEN 100
  386. 1528 GOTO 1525
  387. 2000 LOCATE 12,21: PRINT D$(B,1)
  388. 2001 LOCATE 12,45: PRINT D$(B,2)
  389. 2002 LOCATE 14,21: PRINT D$(B,3)
  390. 2003 LOCATE 14,45: PRINT D$(B,4)
  391. 2004 LOCATE 14,67: PRINT D$(B,5)
  392. 2005 LOCATE 16,21: PRINT D$(B,6)
  393. 2006 LOCATE 16,45: PRINT D$(B,7): SU=VAL(D$(B,8))
  394. 2007 LOCATE 16,67: PRINT USING"##.##";SU: SU=VAL(D$(B,9))
  395. 2008 LOCATE 18,21: PRINT USING"##.##";SU
  396. 2009 LOCATE 18,45: PRINT D$(B,10)
  397. 2010 LOCATE 18,67: PRINT D$(B,11)
  398. 2011 LOCATE 20,21: PRINT D$(B,12): RETURN
  399. 2020 FOR F=1 TO 12:
  400. 2021 IF MO=F THEN MONAT$=M$(F)
  401. 2022 NEXT: RETURN
  402.  
  403.