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

  1. 1 WIDTH 80
  2. 3 DIM L$(400,10),Q(401)
  3. 4 GOTO 185
  4. 12  LOCATE 20,1: PRINT string$(80,45)
  5. 13  LOCATE 21,1: PRINT "          KEINE LIEFERANTENDATEI IM SPEICHER        BELIEBIGE TASTE             "
  6. 14  LOCATE 22,1: PRINT string$(80,45): GOSUB 93: GOTO 110
  7. 15 LOCATE 20,1: PRINT string$(80,45)
  8. 16 LOCATE 21,1: PRINT "                  LIEFERANTEN-DATEN WERDEN EINGELESEN                           "
  9. 17 LOCATE 22,1: PRINT string$(80,45): RETURN
  10. 20 ZZ$=LEFT$(ZZ$,L):ZZ$=ZZ$+STRING$(L-LEN(ZZ$),95):Z2=0:Y=1
  11. 21 LOCATE R,S:PRINT ZZ$;
  12. 22 LOCATE R,S+Y-1
  13. 23 Z$=INKEY$: IF Z$="" THEN 23 ELSE Z=ASC(Z$): Z1=0: IF Z=0 THEN Z1=ASC(RIGHT$(Z$,1))
  14. 24 IF Z<>13 THEN 28 ELSE IF Z2 >0 THEN 23
  15. 25 IF Y=1 THEN ZZ$=CHR$(13): RETURN
  16. 26 IF RIGHT$(ZZ$,1)="_" THEN ZZ$=LEFT$(ZZ$,INSTR(ZZ$,"_")-1)
  17. 27 RETURN
  18. 28 IF Z<>0 THEN 48
  19. 29 IF Z1<>71 THEN 31 ELSE IF Y=1 OR Z2 THEN 23
  20. 30 Y=1:GOTO 22
  21. 31 IF Z1<>75 THEN 33 ELSE IF Y=1 OR Z2 THEN 23
  22. 32 Y=Y-1:GOTO 22
  23. 33 rem
  24. 34 Y=Y+1:GOTO 22
  25. 35 IF Z1<>79 THEN 39 ELSE IF Y>L OR Z2 THEN 23
  26. 36 IF MID$(ZZ$,Y,1)="_" THEN 23
  27. 37 Y=Y+1
  28. 38 IF MID$(ZZ$,Y,1)="_" THEN 22 ELSE 37
  29. 39 IF Z1<>82 THEN 42 ELSE IF RIGHT$(ZZ$,1)<>"_" THEN 23
  30. 40 IF (Z2=0 AND MID$(ZZ$,Y,1)="_") OR Y>L THEN 23
  31. 41 ZZ$=LEFT$(ZZ$,Y-1)+"_"+MID$(ZZ$,Y,L-Y):Z2=Z2+1:GOTO 21
  32. 42 IF Z1<>83 THEN 44 ELSE IF (Z2=0 AND MID$(ZZ$,Y,1)="_") OR Y>L THEN 23
  33. 43 GOSUB 56:ZZ$=LEFT$(ZZ$,Y-1)+MID$(ZZ$,Y+1)+"_":GOTO 21
  34. 44 IF Z1<>117 THEN 46 ELSE IF (Z2=0 AND MID$(ZZ$,Y,1)="_") OR Y>L THEN 23
  35. 45 GOSUB 56:ZZ$=LEFT$(ZZ$,Y-1)+STRING$(L-Y+1,95):GOTO 21
  36. 46 IF Z1<>119 THEN 23 ELSE IF Y=1 THEN 23
  37. 47 ZZ$=MID$(ZZ$,Y)+STRING$(Y-1,95):Y=1:GOTO 21
  38. 48 IF Z<>8 THEN 50 ELSE IF Y=1 THEN 23
  39. 49 ZZ$=LEFT$(ZZ$,Y-2)+MID$(ZZ$,Y)+"_":Y=Y-1:GOTO 21
  40. 50 IF Z<>27 THEN 51 ELSE ZZ$=STRING$(L,95):Y=1:Z2=0: GOTO 21
  41. 51 IF Z=95 OR Y>L THEN 23
  42. 52 ON PK% GOTO 55,53,54
  43. 53 IF Z<46 OR Z>58 THEN 23 ELSE 55
  44. 54 IF Z<>106 AND Z<>110 THEN 23
  45. 55 IF Z=44 THEN 23 ELSE GOSUB 56:ZZ$=LEFT$(ZZ$,Y-1)+Z$+MID$(ZZ$,Y+1):PRINT Z$;:Y=Y+1:GOTO 22
  46. 56 IF Z2 THEN Z2=Z2-1
  47. 57 RETURN
  48. 60 CLS
  49. 61 LOCATE 2,1: PRINT STRING$(80,45)
  50. 62 LOCATE 3,1: PRINT SPACE$(26)+"    L I E F E R A N T E N  "+SPACE$(24)
  51. 63 LOCATE 4,1: PRINT SPACE$(26)+"(c) 1991 by Siegfried Hübner"+SPACE$(26)
  52. 64 LOCATE 5,1: PRINT STRING$(80,45): RETURN
  53. 65 LOCATE 20,1: PRINT string$(80,45)
  54. 66 LOCATE 21,1: PRINT "                  LIEFERANTEN-DATEN WERDEN ABGESPEICHERT                        "
  55. 67 LOCATE 22,1: PRINT string$(80,45): RETURN
  56. 70 LOCATE 19,1: PRINT  SPACE$(80): PP=1: LOCATE 20,1: PRINT string$(80,45)
  57. 71 LOCATE 21,1: PRINT "             MINDESTENS 1 ZEICHEN KORRIGIEREN UND RETURN DRÜCKEN                "
  58. 72 LOCATE 22,1: PRINT string$(80,45):return
  59. 75 GOSUB 900: LOCATE 19,1: PRINT SPACE$(80): LOCATE 20,1: PRINT string$(80,45)
  60. 76  LOCATE 21,1: PRINT "    DRUCKER EINSCHALTEN + TASTE = D           ZUM HAUPTMENÜ TASTE = H           "
  61. 77  LOCATE 22,1: PRINT string$(80,45)
  62. 78  E$=INKEY$: IF E$="" THEN 78
  63. 79 IF E$="D" OR E$="d" THEN GOSUB 85: RETURN
  64. 80 IF E$="H" OR E$="h" THEN 100
  65. 81 GOTO 78
  66. 85  LOCATE 19,1: PRINT SPACE$(80): LOCATE 20,1: PRINT string$(80,45)
  67. 86  LOCATE 21,1: PRINT "                  DRUCKER IN BETRIEB            BITTE WARTEN                    "
  68. 87  LOCATE 22,1: PRINT string$(80,45): RETURN
  69. 90  LOCATE 20,1: PRINT string$(80,45)
  70. 91  LOCATE 21,1: PRINT "                            BELIEBIGE TASTE DRÜCKEN                             "
  71. 92  LOCATE 22,1: PRINT string$(80,45)
  72. 93 E$=INKEY$: IF E$="" THEN 93
  73. 94 RETURN
  74. 95  LOCATE 20,1: PRINT string$(80,45)
  75. 96  LOCATE 21,1: PRINT "             NEUES PAPIER EINLEGEN      BELIEBIGE TASTE DRÜCKEN                 "
  76. 97  LOCATE 22,1: PRINT string$(80,45): GOSUB 93: RETURN
  77. 100 GOSUB 60
  78. 103 LOCATE  7,27: PRINT "[ 1 ] EINGABE     DER DATEN"
  79. 104 LOCATE  9,27: PRINT "[ 2 ] AUSGABE     DER DATEN"
  80. 105 LOCATE 11,27: PRINT "[ 3 ] SUCHEN      DER DATEN"
  81. 106 LOCATE 13,27: PRINT "[ 4 ] LISTEN      DER DATEN"
  82. 107 LOCATE 15,27: PRINT "[ 5 ] AUSDRUCK    DER DATEN"
  83. 108 LOCATE 17,27: PRINT "[ 6 ] SORTIEREN   DER DATEN"
  84. 109 LOCATE 19,27: PRINT "[ 7 ] SPEICHERN   DER DATEN"
  85. 110 LOCATE 20,1: PRINT string$(80,45)
  86. 111 LOCATE 21,1: PRINT "      HAUPTMENÜ =  H                                         ABBRUCH =  A  ";TAB(80)
  87. 112 LOCATE 22,1: PRINT string$(80,45)
  88. 120 E$=INKEY$: IF E$="" THEN 120
  89. 121 IF E$="1" THEN 2000
  90. 122 IF E$="2" THEN GOSUB 140: GOTO 400
  91. 123 IF E$="3" THEN GOSUB 140: GOTO 600
  92. 124 IF E$="4" THEN GOSUB 140: GOTO 720
  93. 125 IF E$="5" THEN GOSUB 140: GOTO 800
  94. 126 IF E$="H" OR E$="h" THEN 180
  95. 127 IF E$="A" OR E$="a" THEN 170
  96. 129 IF E$="6" THEN GOSUB 140: GOTO 5000
  97. 130 IF E$="7" THEN GOSUB 150: GOSUB 380: GOTO 110
  98. 131 GOTO 120
  99. 140 IF O=0 THEN GOSUB 390: RETURN
  100. 141 RETURN
  101. 150 IF O=0 THEN 12
  102. 151 RETURN
  103. 155 IF O>=0 THEN 160
  104. 156 RETURN
  105. 160  LOCATE 20,1: PRINT string$(80,45)
  106. 161  LOCATE 21,1: PRINT "          KEINE LIEFERANTENDATEI AUF DER DISKETTE.  BELIEBIGE TASTE             "
  107. 162  LOCATE 22,1: PRINT string$(80,45): GOSUB 93: GOTO 110
  108. 170 LOCATE 20,1: PRINT string$(80,45)
  109. 171 LOCATE 21,1: PRINT "                                SICHER  (J/N)  ?                                "
  110. 172 LOCATE 22,1: PRINT string$(80,45)
  111. 173 E$=INKEY$: IF E$="" THEN 173
  112. 174 IF E$="j" OR E$="J" THEN CLS: END
  113. 175 GOTO 110
  114. 180 LOCATE 20,1: PRINT string$(80,45)
  115. 181 LOCATE 21,1: PRINT "                           HAUPTMENÜ WIRD GELADEN                               "
  116. 182 LOCATE 22,1: PRINT string$(80,45)
  117. 183 RUN "menue"
  118. 185 LOCATE 20,1: PRINT string$(80,45)
  119. 186 LOCATE 21,1: PRINT "                        HEUTIGES DATUM :    .  .19                              "
  120. 187 LOCATE 22,1: PRINT string$(80,45)
  121. 188 ZZ$="": R=21: S=43: L=2: PK%=2: GOSUB 20: D1$=ZZ$
  122. 189 IF D1$=CHR$(13) THEN BEEP: GOTO 188
  123. 190 SU=VAL(D1$): IF LEN(D1$)<>2 OR SU <=0 OR SU>31 THEN BEEP: GOTO 188
  124. 191 ZZ$="": R=21: S=46: L=2: PK%=2: GOSUB 20: D2$=ZZ$
  125. 192 IF D2$=CHR$(13) THEN BEEP: GOTO 191
  126. 193 SU=VAL(D2$): IF LEN(D2$)<>2 OR SU <=0 OR SU>12 THEN BEEP: GOTO 191
  127. 194 ZZ$="": R=21: S=51: L=2: PK%=2: GOSUB 20: D3$=ZZ$
  128. 195 IF D3$=CHR$(13) THEN BEEP: GOTO 194
  129. 196 SU=VAL(D3$): IF LEN(D3$)<>2 OR SU <=85 OR SU>99 THEN BEEP: GOTO 194
  130. 197 P$=D1$+"."+D2$+".19"+D3$
  131. 198 GOTO 6000
  132. 200 GOSUB 60: LOCATE 3,5: PRINT "DATUM   : ";P$: LOCATE 4,5: PRINT "MAXIMAL : 400"
  133. 201 O=O+1: LOCATE 4,60: PRINT "DATENSATZ :";O: GOSUB 375
  134. 202 LOCATE 6,1: COLOR 0,7: PRINT " LIEFERANTEN - EINGABE";: COLOR 7,0: PRINT "        IM ERSTEN FELD MIT * ZUR BEFEHLSZEILE"
  135. 203 IF O>=400 THEN 205
  136. 204 GOTO 209
  137. 205 LOCATE 20,1: PRINT string$(80,45)
  138. 206 LOCATE 21,1: PRINT "             MAXIMALE EINGABELÄNGE ERREICHT  BELIEBIGE TASTE DRÜCKEN            "
  139. 207 LOCATE 22,1: PRINT string$(80,45): GOSUB 93: GOSUB 380: GOTO 100
  140. 209 GOSUB 210: GOTO 229
  141. 210 PP=0: LOCATE 8,1: PRINT "[ 1 ] LIEFERANTEN-NUMMER  :               "
  142. 211 LOCATE 9,1: PRINT "[ 2 ] NACHNAME            :                       "
  143. 212 LOCATE 10,1: PRINT "[ 3 ] VORNAME             :                      "
  144. 213 LOCATE 11,1: PRINT "[ 4 ] ZUSATZTEXT          :                      "
  145. 214 LOCATE 12,1: PRINT "[ 5 ] STRASSE             :                               "
  146. 215 LOCATE 13,1: PRINT "[ 6 ] PLZ                 :         "
  147. 216 LOCATE 14,1: PRINT "[ 7 ] ORT                 :                            "
  148. 217 LOCATE 15,1: PRINT "[ 8 ] SKONTI              :          "
  149. 218 LOCATE 16,1: PRINT "[ 9 ] RABATT IN %         :          "
  150. 219 LOCATE 17,1: PRINT "[ 0 ] NETTO TAGE          :             "
  151. 220 RETURN
  152. 229 ZZ$=""
  153. 230 R=8: S=29: L=6: PK%=1: GOSUB 20: L$(O,1)=ZZ$: IF L$(O,1)="*" THEN L$(O,1)="": O=O-1: GOSUB 210: GOTO 329
  154. 231 IF L$(O,1)=CHR$(13) THEN BEEP: GOSUB 370: GOTO 229
  155. 232 Z=VAL(L$(O,1)): IF LEN(L$(O,1))<>6 OR Z<=0 THEN BEEP: GOSUB 370: ZZ$="": GOTO 230
  156. 233 GOSUB 375
  157. 234 ZZ$="": IF PP=1 THEN RETURN
  158. 235 R=9: S=29: L=20: PK%=1: GOSUB 20: L$(O,2)=ZZ$
  159. 236 IF L$(O,2)=CHR$(13) THEN BEEP: GOSUB 370: ZZ$="": GOTO 235
  160. 237 IF PP=1 THEN RETURN
  161. 238 GOSUB 375
  162. 239 ZZ$=""
  163. 240 R=10: S=29: L=15: PK%=1: GOSUB 20: L$(O,3)=ZZ$
  164. 241 IF L$(O,3)=CHR$(13) THEN L$(O,3)="-"
  165. 242 IF PP=1 THEN RETURN
  166. 243 ZZ$="-"
  167. 245 R=11: S=29: L=20: PK%=1: GOSUB 20: L$(O,4)=ZZ$
  168. 246 IF L$(O,4)=CHR$(13) THEN L$(O,4)="-"
  169. 247 IF PP=1 THEN RETURN
  170. 249 ZZ$=""
  171. 250 R=12: S=29: L=25: PK%=1: GOSUB 20: L$(O,5)=ZZ$
  172. 251 IF L$(O,5)=CHR$(13) THEN BEEP: GOSUB 370: ZZ$="": GOTO 250
  173. 252 IF PP=1 THEN RETURN
  174. 253 GOSUB 375
  175. 254 ZZ$=""
  176. 255 R=13: S=29: L= 4: PK%=2: GOSUB 20: L$(O,6)=ZZ$: IF L$(O,6)=CHR$(13) THEN BEEP: GOSUB 370: GOTO 254
  177. 256 IF LEN(L$(O,6))<>4 THEN BEEP: GOSUB 370: GOTO 254
  178. 257 IF PP=1 THEN RETURN
  179. 258 GOSUB 375
  180. 259 ZZ$=""
  181. 260 R=14: S=29: L=25: PK%=1: GOSUB 20: L$(O,7)=ZZ$
  182. 261 IF L$(O,7)=CHR$(13) THEN BEEP: GOSUB 370: GOTO 259
  183. 262 IF PP=1 THEN RETURN
  184. 263 ZZ$="0"
  185. 265 R=15: S=29: L= 2: PK%=2: GOSUB 20: L$(O,8)=ZZ$
  186. 266 IF L$(O,8)=CHR$(13) THEN L$(O,8)="0"
  187. 267 IF L$(O,8)="0" THEN F$="OHNE" ELSE F$="MIT "
  188. 268 LOCATE 15,29: PRINT L$(O,8);TAB(32)"% ";F$;" SKONTI": IF PP=1 THEN RETURN
  189. 269 ZZ$="0"
  190. 270 R=16: S=29: L=2: PK%=2: GOSUB 20: L$(O,9)=ZZ$: IF L$(O,9)=CHR$(13) THEN L$(O,9)="0"
  191. 271 IF L$(O,9)="0" THEN F$="OHNE" ELSE F$="MIT "
  192. 272 LOCATE 16,29: PRINT L$(O,9);TAB(32)"% ";F$;" RABATT": IF PP=1 THEN RETURN
  193. 274 ZZ$="30"
  194. 275 R=17: S=29: L=2: PK%=2: GOSUB 20: L$(O,10)=ZZ$
  195. 276 IF L$(O,10)=CHR$(13) THEN L$(O,10)="30"
  196. 279 LOCATE 17,32: PRINT "TAGE"
  197. 280 IF PP=1 THEN RETURN
  198. 329 LOCATE 20,1: PRINT string$(80,45)
  199. 330 LOCATE 21,1: PRINT "  WEITER=  W        KORREKTUR = 1 - 0      SPEICHERN =  S     HAUPTMENÜ =  H    "
  200. 331 LOCATE 22,1: PRINT string$(80,45)
  201. 332 PP=0
  202. 340 E$=INKEY$: IF E$="" THEN 340
  203. 341 IF E$="W" OR E$="w" THEN 201
  204. 342 IF E$="H" OR E$="h" THEN 100
  205. 343 IF E$="S" OR E$="s" THEN LOCATE 19,1: PRINT SPACE$(80): GOSUB 380: GOTO 329
  206. 344 IF E$="1" THEN GOSUB 70: ZZ$=L$(O,1): GOSUB 230: GOTO 329
  207. 345 IF E$="2" THEN GOSUB 70: ZZ$=L$(O,2): GOSUB 235: GOTO 329
  208. 346 IF E$="3" THEN GOSUB 70: ZZ$=L$(O,3): GOSUB 240: GOTO 329
  209. 347 IF E$="4" THEN GOSUB 70: ZZ$=L$(O,4): GOSUB 245: GOTO 329
  210. 348 IF E$="5" THEN GOSUB 70: ZZ$=L$(O,5): GOSUB 250: GOTO 329
  211. 349 IF E$="6" THEN GOSUB 70: ZZ$=L$(O,6): GOSUB 255: GOTO 329
  212. 350 IF E$="7" THEN GOSUB 70: ZZ$=L$(O,7): GOSUB 260: GOTO 329
  213. 351 IF E$="8" THEN GOSUB 70: ZZ$=L$(O,8): GOSUB 265: GOTO 329
  214. 352 IF E$="9" THEN GOSUB 70: ZZ$=L$(O,9): GOSUB 270: GOTO 329
  215. 353 IF E$="0" THEN GOSUB 70: ZZ$=L$(O,10): GOSUB 275: GOTO 329
  216. 361 GOTO 340
  217. 370 LOCATE 20,1: PRINT string$(80,45)
  218. 371 LOCATE 21,1: PRINT "                  ACHTUNG !  EINGABE ZWINGEND ERFORDERLICH                      "
  219. 372 LOCATE 22,1: PRINT string$(80,45): RETURN
  220. 375 LOCATE 19,1: PRINT SPACE$(80): LOCATE 20,1: PRINT SPACE$(80): LOCATE 21,1: PRINT SPACE$(80): LOCATE 22,1: PRINT SPACE$(80): RETURN
  221. 380 GOSUB 65: NA$=B$+":DATLIE.DAT": DA$=P$
  222. 381 OPEN NA$ FOR OUTPUT AS #1
  223. 382 PRINT #1,DA$
  224. 383 PRINT #1,O
  225. 384 FOR I=1 TO O: FOR M=1 TO 10
  226. 385 PRINT #1,L$(I,M)
  227. 386 NEXT: NEXT: CLOSE #1: RETURN
  228. 390 ON ERROR GOTO 398: GOSUB 15: NA$=B$+":DATLIE.DAT"
  229. 391 OPEN NA$ FOR INPUT AS #1
  230. 392 INPUT #1,DA$
  231. 393 INPUT #1,O
  232. 394 FOR I=1 TO O: FOR M=1 TO 10
  233. 395 INPUT #1,L$(I,M)
  234. 396 NEXT: NEXT
  235. 397 CLOSE #1: GOSUB 155: RETURN
  236. 398 IF ERR=58 AND ERR=53 OR ERR=1230 THEN 160
  237. 399 REm
  238. 400 GOSUB 60: LOCATE 4,5: PRINT "DATUM : ";DA$
  239. 402 LOCATE 6,1: COLOR 0,7: PRINT  " LIEFERANTEN - AUSGABE": COLOR 7,0
  240. 403 FOR U=1 TO O
  241. 404 LOCATE 4,60: PRINT "DATENSATZ :";U
  242. 405 GOSUB 210: GOSUB 470
  243. 410 LOCATE 19,1: PRINT string$(80,45)
  244. 411 LOCATE 20,1: PRINT "  KORREKTUR = 1 - 0       LÖSCHEN =  L      SPEICHERN =  S         MENÜ =  H    "
  245. 412 LOCATE 21,1: PRINT "  WEITER    =     W       ZURÜCK =   Z      AUSDRUCK  =  P     NEUSTART =  N    "
  246. 413 LOCATE 22,1: PRINT string$(80,45)
  247. 420 E$=INKEY$: IF E$="" THEN 420
  248. 421 IF E$="W" OR E$="w" THEN 441
  249. 422 IF E$="Z" OR E$="z" THEN 455
  250. 423 IF E$="H" OR E$="h" THEN 100
  251. 424 IF E$="S" OR E$="s" THEN LOCATE 19,1: PRINT SPACE$(80): GOSUB 380: GOTO 410
  252. 425 IF E$="P" OR E$="p" THEN GOSUB 900: GOSUB 85: GOSUB 630: GOTO 410
  253. 426 IF E$="N" OR E$="n" THEN 403
  254. 427 IF E$="L" OR E$="l" THEN GOSUB 40000: GOTO 410
  255. 430 IF E$="1" THEN GOSUB 70: ZZ$=L$(U,1): GOSUB 530: GOTO 410
  256. 431 IF E$="2" THEN GOSUB 70: ZZ$=L$(U,2): GOSUB 535: GOTO 410
  257. 432 IF E$="3" THEN GOSUB 70: ZZ$=L$(U,3): GOSUB 540: GOTO 410
  258. 433 IF E$="4" THEN GOSUB 70: ZZ$=L$(U,4): GOSUB 545: GOTO 410
  259. 434 IF E$="5" THEN GOSUB 70: ZZ$=L$(U,5): GOSUB 550: GOTO 410
  260. 435 IF E$="6" THEN GOSUB 70: ZZ$=L$(U,6): GOSUB 555: GOTO 410
  261. 436 IF E$="7" THEN GOSUB 70: ZZ$=L$(U,7): GOSUB 560: GOTO 410
  262. 437 IF E$="8" THEN GOSUB 70: ZZ$=L$(U,8): GOSUB 565: GOTO 410
  263. 438 IF E$="9" THEN GOSUB 70: ZZ$=L$(U,9): GOSUB 570: GOTO 410
  264. 439 IF E$="0" THEN GOSUB 70: ZZ$=L$(U,10): GOSUB 575: GOTO 410
  265. 440 GOTO 420
  266. 441 IF U=O THEN 443
  267. 442 NEXT
  268. 443 GOSUB 210: LOCATE 19,1: PRINT string$(80,45)
  269. 444 LOCATE 20,1: PRINT "  DATENENDE                                                        MENÜ =  H    "
  270. 445 LOCATE 21,1: PRINT "                          ZURÜCK =   Z                         NEUSTART =  N    "
  271. 446 LOCATE 22,1: PRINT string$(80,45)
  272. 450 E$=INKEY$: IF E$="" THEN 450
  273. 451 IF E$="Z" OR E$="z" THEN 455
  274. 452 IF E$="H" OR E$="h" THEN 100
  275. 453 IF E$="N" OR E$="n" THEN 403
  276. 454 GOTO 450
  277. 455 U=U-1
  278. 456 IF U<=0 THEN U=1: GOTO 403
  279. 457 GOTO 404
  280. 470 LOCATE 8,29: PRINT L$(U,1): LOCATE 9,29: PRINT L$(U,2): LOCATE 10,29: PRINT L$(U,3): LOCATE 11,29: PRINT L$(U,4): LOCATE 12,29: PRINT L$(U,5)
  281. 471 LOCATE 13,29: PRINT L$(U,6): LOCATE 14,29: PRINT L$(U,7)
  282. 472 IF L$(U,8)="0" THEN F$="OHNE" ELSE F$="MIT   "
  283. 473 LOCATE 15,29: PRINT L$(U,8);TAB(32);"% "F$;" SKONTI"
  284. 474 IF L$(U,9)="0" THEN F$="OHNE" ELSE F$="MIT   "
  285. 475 LOCATE 16,29: PRINT L$(U,9);TAB(32);"% "F$;" RABATT"
  286. 477 LOCATE 17,29: PRINT L$(U,10);TAB(32);"TAGE": RETURN
  287. 530 R=8: S=29: L=6: PK%=2: GOSUB 20: L$(U,1)=ZZ$
  288. 531 IF L$(U,1)=CHR$(13) THEN BEEP: GOSUB 370: ZZ$="": GOTO 530
  289. 532 IF LEN(L$(U,1))<>6 THEN BEEP: GOSUB 370: ZZ$="": GOTO 530
  290. 534 RETURN
  291. 535 R=9: S=29: L=20: PK%=1: GOSUB 20: L$(U,2)=ZZ$
  292. 536 IF L$(U,2)=CHR$(13) THEN BEEP: GOSUB 370: ZZ$="": GOTO 535
  293. 537 RETURN
  294. 540 R=10: S=29: L=15: PK%=1: GOSUB 20: L$(U,3)=ZZ$
  295. 541 IF L$(U,3)=CHR$(13) THEN L$(U,3)="-"
  296. 542 RETURN
  297. 545 R=11: S=29: L=20: PK%=1: GOSUB 20: L$(U,4)=ZZ$
  298. 546 IF L$(U,4)=CHR$(13) THEN L$(U,4)="-"
  299. 547 RETURN
  300. 550 R=12: S=29: L=25: PK%=1: GOSUB 20: L$(U,5)=ZZ$
  301. 551 IF L$(U,5)=CHR$(13) THEN BEEP: GOSUB 370: ZZ$="": GOTO 550
  302. 552 RETURN
  303. 555 R=13: S=29: L= 4: PK%=2: GOSUB 20: L$(U,6)=ZZ$
  304. 556 IF L$(U,6)=CHR$(13) THEN BEEP: GOSUB 370: ZZ$="": GOTO 555
  305. 557 IF LEN(L$(U,6))<>4 THEN BEEP: GOSUB 370: ZZ$="": GOTO 555
  306. 558 RETURN
  307. 560 R=14: S=29: L=25: PK%=1: GOSUB 20: L$(U,7)=ZZ$
  308. 561 IF L$(U,7)=CHR$(13) THEN BEEP: GOSUB 370: ZZ$="": GOTO 560
  309. 562 RETURN
  310. 565 R=15: S=29: L= 2: PK%=2: GOSUB 20: L$(U,8)=ZZ$
  311. 566 IF L$(U,8)=CHR$(13) THEN L$(U,8)="0"
  312. 567 IF L$(U,8)="0" THEN F$="OHNE" ELSE F$="MIT "
  313. 568 LOCATE 15,29: PRINT L$(U,8);TAB(32)"% ";F$;" SKONTI"
  314. 569 RETURN
  315. 570 R=16: S=29: L=2: PK%=2: GOSUB 20: L$(U,9)=ZZ$: IF L$(U,9)=CHR$(13) THEN L$(U,9)="0"
  316. 571 IF L$(U,9)="0" THEN F$="OHNE" ELSE F$="MIT "
  317. 572 LOCATE 16,29: PRINT L$(U,9);TAB(32)"% ";F$;" RABATT"
  318. 573 RETURN
  319. 575 R=17: S=29: L=2: PK%=2: GOSUB 20: L$(U,10)=ZZ$
  320. 576 IF L$(U,10)=CHR$(13) THEN L$(U,10)="30"
  321. 579 LOCATE 17,32: PRINT "TAGE"
  322. 580 RETURN
  323. 600 GOSUB 60: LOCATE 4,5: PRINT "DATUM : ";DA$
  324. 602 LOCATE 6,1: COLOR 0,7: PRINT  " NAMEN SUCHEN = #      ZUM HAUPTMENÜ = *": COLOR 7,0
  325. 603 GOSUB 210
  326. 605 GOSUB 375: ZZ$="": R=8: S=29: L=6: PK%=1: GOSUB 20: SU$=ZZ$: IF SU$="*" THEN 100
  327. 607 IF SU$="#" THEN GOSUB 375: GOTO 610
  328. 608 IF SU$=CHR$(13) THEN BEEP: GOSUB 370: GOTO 605
  329. 609 GOTO 615
  330. 610 GOSUB 375: ZZ$="": R=9: S=29: L=20: PK%=1: GOSUB 20: SU$=ZZ$: IF SU$="*" THEN 100
  331. 611 IF SU$="#" THEN ZZ$="": GOTO 605
  332. 612 IF SU$=CHR$(13) THEN BEEP: GOSUB 370: GOTO 610
  333. 613 GOTO 620
  334. 615 FOR U=1 TO O
  335. 616 IF SU$=L$(U,1) THEN 650
  336. 617 NEXT
  337. 618 GOSUB 90: ZZ$="": GOTO 605
  338. 620 FOR U=1 TO O: FOR J=1 TO 20
  339. 621 IF SU$=LEFT$(L$(U,2),J) THEN 650
  340. 622 NEXT: NEXT
  341. 623 GOSUB 90: GOTO 610
  342. 630 LPRINT TAB(5)CHR$(14)"AUSGABE LIEFERANTEN-DATENSATZ ";U: LPRINT TAB(5)"STAND VOM         : ";DA$
  343. 631 LPRINT TAB(5)"LIEFERANTEN-NUMMER: ";L$(U,1)
  344. 632 LPRINT TAB(5)"LIEFERANTEN NAME  : ";L$(U,3);" ";L$(U,2)
  345. 633 LPRINT TAB(5)"ZUSATZTEXT        : ";L$(U,4)
  346. 634 LPRINT TAB(5)"STRASSE           : ";L$(U,5)
  347. 635 LPRINT TAB(5)"POSTLEITZAHL/ORT  : ";L$(U,6);" ";L$(U,7)
  348. 637 IF L$(U,8)="0" THEN F$="OHNE SKONTI" ELSE F$=" %"
  349. 638 LPRINT TAB(5)"SKONTI            : ";L$(U,8);" ";F$
  350. 639 IF L$(U,9)="0" THEN F$="OHNE RABATT" ELSE F$=" %"
  351. 640 LPRINT TAB(5)"RABATT            : ";L$(U,9);" ";F$
  352. 642 LPRINT TAB(5)"NETTO TAGE        : ";L$(U,10);" TAGE": CLOSE: RETURN
  353. 650 LOCATE 4,5: PRINT "DATUM : ";DA$
  354. 654 LOCATE 4,60: PRINT "DATENSATZ :";U
  355. 655 GOSUB 470
  356. 660 LOCATE 19,1: PRINT string$(80,45)
  357. 661 LOCATE 20,1: PRINT "  KORREKTUR = 1 - 0       LÖSCHEN =  L      SPEICHERN =  S         MENÜ =  H    "
  358. 662 LOCATE 21,1: PRINT "                                            AUSDRUCK  =  P     NEUSTART =  N    "
  359. 663 LOCATE 22,1: PRINT string$(80,45)
  360. 665 E$=INKEY$: IF E$="" THEN 665
  361. 666 IF E$="H" OR E$="h" THEN 100
  362. 667 IF E$="S" OR E$="s" THEN LOCATE 19,1: PRINT SPACE$(80): GOSUB 380: GOTO 410
  363. 668 IF E$="P" OR E$="p" THEN GOSUB 900: GOSUB 85: GOSUB 630: GOTO 660
  364. 669 IF E$="N" OR E$="n" THEN 602
  365. 670 IF E$="L" OR E$="l" THEN GOSUB 4000: GOTO 660
  366. 671 IF E$="1" THEN GOSUB 70: ZZ$=L$(U,1): GOSUB 530: GOTO 660
  367. 672 IF E$="2" THEN GOSUB 70: ZZ$=L$(U,2): GOSUB 535: GOTO 660
  368. 673 IF E$="3" THEN GOSUB 70: ZZ$=L$(U,3): GOSUB 540: GOTO 660
  369. 674 IF E$="4" THEN GOSUB 70: ZZ$=L$(U,4): GOSUB 545: GOTO 660
  370. 675 IF E$="5" THEN GOSUB 70: ZZ$=L$(U,5): GOSUB 550: GOTO 660
  371. 676 IF E$="6" THEN GOSUB 70: ZZ$=L$(U,6): GOSUB 555: GOTO 660
  372. 677 IF E$="7" THEN GOSUB 70: ZZ$=L$(U,7): GOSUB 560: GOTO 660
  373. 678 IF E$="8" THEN GOSUB 70: ZZ$=L$(U,8): GOSUB 565: GOTO 660
  374. 679 IF E$="9" THEN GOSUB 70: ZZ$=L$(U,9): GOSUB 570: GOTO 660
  375. 680 IF E$="0" THEN GOSUB 70: ZZ$=L$(U,10): GOSUB 575: GOTO 660
  376. 681 GOTO 665
  377. 720 GOSUB 60
  378. 721 LOCATE 6,2: PRINT "LI-NR   NACHNAME              ORT                        RABATT SKONTI"
  379. 725 V=0: LOCATE 7,2: FOR U=1 TO O : V=V+1
  380. 726 PRINT TAB(2);L$(U,1);TAB(10);L$(U,2);TAB(32);L$(U,7);: SU=VAL(L$(U,9)): PRINT TAB(59) USING"##";SU;: SU=VAL(L$(U,8))
  381. 728 PRINT TAB(66) USING"##";SU
  382. 729 IF V=11 THEN 740
  383. 730 IF U=O THEN 732
  384. 731 NEXT
  385. 732 LOCATE 20,1: PRINT string$(80,45)
  386. 733 LOCATE 21,1: PRINT "     DATENENDE           ZURÜCK = Z      NEUBEGINN = N      HAUPTMENÜ = H       "
  387. 734 LOCATE 22,1: PRINT string$(80,45)
  388. 735 E$=INKEY$: IF E$="" THEN 735
  389. 736 IF E$="Z" OR E$="z" THEN 758
  390. 737 IF E$="N" OR E$="n" THEN GOSUB 760 : GOTO 725
  391. 738 IF E$="H" OR E$="h" THEN 100
  392. 739 GOTO 735
  393. 740 LOCATE 20,1: PRINT string$(80,45)
  394. 741 LOCATE 21,1: PRINT "     WEITER = W          ZURÜCK = Z      NEUBEGINN = N      HAUPTMENÜ = H       "
  395. 742 LOCATE 22,1: PRINT string$(80,45)
  396. 745 E$=INKEY$: IF E$="" THEN 745
  397. 746 IF E$="Z" OR E$="z" THEN 755
  398. 747 IF E$="N" OR E$="n" THEN GOSUB 760 : GOTO 725
  399. 748 IF E$="H" OR E$="h" THEN 100
  400. 749 IF E$="W" OR E$="w" THEN GOSUB 760: V=0: LOCATE 7,2: GOTO 731
  401. 750 GOTO 745
  402. 755 U=U-22
  403. 756 IF U<=0 THEN U=1: GOSUB 760: GOTO 725
  404. 757 V=0: GOSUB 760: LOCATE 7,2: GOTO 726
  405. 758 U=U-V-11: GOTO 756
  406. 760 J=0: FOR J=1 TO 12
  407. 761 LOCATE 5+J,2: PRINT SPACE$(80): NEXT: RETURN
  408. 800 LOCATE 20,1: PRINT string$(80,45)
  409. 801 LOCATE 21,1: PRINT "        GESAMTDRUCK = G           DATENSÄTZE = S         HAUPTMENÜ = H          "
  410. 802 LOCATE 22,1: PRINT string$(80,45)
  411. 805 E$=INKEY$: IF E$="" THEN 805
  412. 806 IF E$="G" OR E$="g" THEN GOSUB 75: GOTO 820
  413. 807 IF E$="S" OR E$="s" THEN 860
  414. 809 IF E$="H" OR E$="h" THEN 110
  415. 810 GOTO 805
  416. 820 GOSUB 821: GOTO 825
  417. 821 LPRINT TAB(2);"LI-NR.  NACHNAME              STRASSE                    PLZ / ORT"
  418. 822 LPRINT TAB(2);"____________________________________________________________________________": RETURN
  419. 825 V=0: FOR U=1 TO O: V=V+1
  420. 826 LPRINT TAB(1);L$(U,1);TAB(9);L$(U,2);TAB(31);L$(U,5);TAB(58);L$(U,6);" ";LEFT$(L$(U,7),15)
  421. 827 IF V=60 THEN V=0: GOSUB 95: GOSUB 85: GOSUB 821
  422. 828 NEXT
  423. 829 LPRINT " ": LPRINT TAB(2);"____________________________________________________________________________": LPRINT " "
  424. 830 LPRINT TAB(2);"ANZAHL DER DATENSÄTZE :";O: CLOSE: GOTO 800
  425. 860 LOCATE 21,5: PRINT SPACE$(74): FOR U=1 TO O
  426. 861 LOCATE 21,5: PRINT L$(U,1);TAB(13);L$(U,2);TAB(40)"DRUCKEN = D   WEITER= W   MENÜ = H"
  427. 865 E$=INKEY$: IF E$="" THEN 865
  428. 866 IF E$="D" OR E$="d" THEN GOSUB 900: GOSUB 85: GOSUB 630: GOTO 871
  429. 867 IF E$="W" OR E$="w" THEN 870
  430. 868 IF E$="H" OR E$="h" THEN 110
  431. 869 GOTO 865
  432. 870 IF U=O THEN 872
  433. 871 NEXT
  434. 872 LOCATE 21,5: PRINT SPACE$(74)
  435. 873 LOCATE 21,5: PRINT "      DATENENDE           NEUBEGINN = N           HAUPTMENÜ = H"
  436. 875 E$=INKEY$: IF E$="" THEN 875
  437. 876 IF E$="N" OR E$="n" THEN 860
  438. 877 IF E$="H" OR E$="h" THEN 110
  439. 878 GOTO 875
  440. 900 ON ERROR GOTO 903
  441. 901 RETURN
  442. 902 OPEN "LPT1:" FOR OUTPUT AS #1
  443. 903 IF ERR=27 THEN 910
  444. 904 REM
  445. 910 LOCATE 19,1: PRINT  SPACE$(80): PP=1: LOCATE 20,1: PRINT string$(80,45)
  446. 911 LOCATE 21,1: PRINT "             KEIN DRUCKER EINGESCHALTET. BELIEBIGE TASTE DRÜCKEN                "
  447. 912 LOCATE 22,1: PRINT string$(80,45): GOSUB 93: GOTO 100
  448. 2000 LOCATE 20,1: PRINT string$(80,45)
  449. 2001 LOCATE 21,1: PRINT "   VORHANDENE DATEN EINLESEN = L         NEUBEGINN = N     HAUPTMENÜ = H        "
  450. 2002 LOCATE 22,1: PRINT string$(80,45)
  451. 2005 E$=INKEY$: IF E$="" THEN 2005
  452. 2006 IF E$="L" OR E$="l" THEN 2010
  453. 2007 IF E$="N" OR E$="n" THEN O=0: GOTO 200
  454. 2008 IF E$="H" OR E$="h" THEN 110
  455. 2009 GOTO 2005
  456. 2010 IF O=0 THEN GOSUB 390: GOTO 200
  457. 2011 GOTO 200
  458. 4000  LOCATE 19,1: PRINT SPACE$(80)
  459. 4001  LOCATE 20,1: PRINT string$(80,45)
  460. 4002 LOCATE 21,1: PRINT "      DATENSATZ LÖSCHEN = L                  OHNE LÖSCHUNG ZURÜCK = Z      ";TAB(80)
  461. 4003 LOCATE 22,1: PRINT string$(80,45)
  462. 4010 E$=INKEY$: IF E$="" THEN 4010
  463. 4011 IF E$="l" OR E$="L" THEN 4020
  464. 4012 IF E$="Z" OR E$="z" THEN RETURN
  465. 4013 GOTO 4010
  466. 4020 Y=0: J=0: FOR Y=U TO O: FOR J=1 TO 10: L$(Y,J)=L$(Y+1,J): NEXT J,Y
  467. 4021 FOR J=1 TO 10: L$(O,J)=" ": NEXT: O=O-1
  468. 4022 LOCATE 20,1: PRINT string$(80,45)
  469. 4023 LOCATE 21,1: PRINT "            DATENSATZ GELÖSCHT       BELIEBIGE TASTE DRÜCKEN                    "
  470. 4024 LOCATE 22,1: PRINT string$(80,45): GOSUB 93
  471. 4025 LOCATE 19,1: PRINT SPACE$(80): GOSUB 380: GOTO 100
  472. 5000 LOCATE 20,1: PRINT string$(80,45)
  473. 5001 LOCATE 21,1: PRINT "   nach LIEFERANTEN-NUMMER = K    nach LIEFERANTEN-NAME = N      MENÜ = H       "
  474. 5002 LOCATE 22,1: PRINT string$(80,45)
  475. 5005 E$=INKEY$: IF E$="" THEN 5005
  476. 5006 IF E$="K" OR E$="k" THEN N=1: GOSUB 45000: GOTO 110
  477. 5007 IF E$="N" OR E$="n" THEN N=2: GOSUB 45000: GOTO 110
  478. 5008 IF E$="H" OR E$="h" THEN 110
  479. 5009 GOTO 5005
  480. 6000 LOCATE 20,1: PRINT string$(80,45)
  481. 6001 LOCATE 21,1: PRINT "             DATENDISKETTE IN LAUFWERK :                                        "
  482. 6002 LOCATE 22,1: PRINT string$(80,45)
  483. 6003 ZZ$="": R=21: S=42: L=1: PK%=1: GOSUB 20: B$=ZZ$
  484. 6004 IF B$=CHR$(13) THEN BEEP: GOSUB 6010: GOTO 6003
  485. 6005 IF B$="A" OR B$="a" OR B$="B" OR B$="b" OR B$="C" OR B$="c" or B$="D" or b$="d" THEN 6007
  486. 6006 BEEP: GOSUB 6010: GOTO 6003
  487. 6007 GOTO 100
  488. 6010 LOCATE 21,50: PRINT "EINGABE VON A,B,C ODER D": RETURN
  489. 40000 LOCATE 19,1: PRINT SPACE$(80)
  490. 40001 LOCATE 20,1: PRINT string$(80,45)
  491. 40002 LOCATE 21,1: PRINT "      DATENSATZ LÖSCHEN = L                  OHNE LÖSCHUNG ZURÜCK = Z      ";TAB(80)
  492. 40003 LOCATE 22,1: PRINT string$(80,45)
  493. 40010 E$=INKEY$: IF E$="" THEN 40010
  494. 40011 IF E$="l" OR E$="L" THEN 40020
  495. 40012 IF E$="Z" OR E$="z" THEN RETURN
  496. 40013 GOTO 40010
  497. 40020 Y=0: J=0: FOR Y=U TO O: FOR J=1 TO 10: L$(Y,J)=L$(Y+1,J): NEXT J,Y
  498. 40021 FOR J=1 TO 10: L$(O,J)=" ": NEXT: O=O-1
  499. 40022 LOCATE 20,1: PRINT string$(80,45)
  500. 40023 LOCATE 21,1: PRINT "            DATENSATZ GELÖSCHT       BELIEBIGE TASTE DRÜCKEN                    "
  501. 40024 LOCATE 22,1: PRINT string$(80,45): GOSUB 93
  502. 40025 LOCATE 19,1: PRINT SPACE$(80): GOSUB 380: GOSUB 210: RETURN
  503. 45000 E=0: Z=0: J=0 : L=0 : I=0 : L=1 : Q(L)=O+1 : M=1
  504. 45001 J=Q(L) : I=M-1
  505. 45002 IF J-M<3 THEN 45016
  506. 45003 GOSUB 45022 : M1=INT((I+J)/2)
  507. 45004 I=I+1
  508. 45005 IF I=J THEN 45012
  509. 45006 IF L$(I,N) <= L$(M1,N) THEN 45004
  510. 45007 J=J-1
  511. 45008 IF I=J THEN 45012
  512. 45009 IF L$(J,N)>= L$(M1,N) THEN 45007
  513. 45010 FOR Z=1 TO 10 : L$(E,Z)=L$(I,Z) : L$(I,Z)=L$(J,Z) : L$(J,Z)=L$(E,Z) : NEXT Z
  514. 45011 GOTO 45004
  515. 45012 IF I>=M1 THEN I=I-1
  516. 45013 IF J=M1 THEN 45015
  517. 45014 FOR Z=1 TO 10: L$(E,Z)=L$(I,Z) : L$(I,Z)=L$(M1,Z) : L$(M1,Z)=L$(E,Z) : NEXT
  518. 45015 L=L+1 : Q(L)=I : GOTO 45001
  519. 45016 IF J-M<2 THEN 45019
  520. 45017 IF L$(M,N)<L$(M+1,N) THEN 45019
  521. 45018 FOR Z=1 TO 10: L$(E,Z)=L$(M,Z) : L$(M,Z)=L$(M+1,Z) : L$(M+1,Z)=L$(E,Z) : NEXT
  522. 45019 M=Q(L) +1 : L=L-1
  523. 45020 IF L> 0 THEN 45001
  524. 45021 RETURN
  525. 45022 LOCATE 20,1: PRINT string$(80,45)
  526. 45023 LOCATE 21,2: PRINT "     SORTIERVORGANG IN ARBEIT    : ";I;"                                  "
  527. 45024 LOCATE 22,1: PRINT string$(80,45): RETURN
  528.  
  529.