← ST-Computer 02 / 1989

VIP Professional Programmierkurs Teil 7: Templates

Anwendungen

Den Vip-Professionals, die mich dazu motiviert haben, trotz meiner 16-stündigen Arbeitstage noch den ATARI-Ferrari anzuwerfen und den Teil 7 unseres Programmierkurses abzuliefern, meinen besten Dank. Meinem Lektor Marcelo stehen mit Sicherheit die Haare zu Berge, wenn er an seine vielfachen Motivationstelefonate, die er mit meiner Frau führte, denken muß. Doch leider bin ich eben nur ein Freizeitschreiber, der auch mal ans Geld verdienen denken muß und seinem ständigen Arbeitgeber pflichtgemäß zur Verfügung stehen sollte. Doch jetzt habt Ihr ihn ja, den Teil 7!

Wie im letzten Teil angekündigt, wollen wir uns heute mit der Programmierung eines Templates, also einer Anwendung unter der VIP-Schale beschäftigen. Vielen Leserbriefen konnte ich entnehmen, daß Vip sehr oft in kleineren Unternehmen eingesetzt wird, um Rechnungen. Tabellen und Kassenbücher zu erstellen. Ich möchte Ihnen anhand des Templates Rechnung.WKS aufzeigen, wie elegant und dennoch einfach man mit VIP eine Automatisierung solcher Rechnungsschreibungen vornehmen kann.

Die Idee für Rechnung.WKS kam aus einer Leseranfrage. Eine KFZ-Werkstatt fakturiert ihre Reparatur- und Kleinteilerechnungen mit einer VIP-Lösung. Die dabei auftretenden Probleme mit den nicht zu eliminierenden Nullen bei einer Rechenanweisung und der zu geringe Automatismus in der Anwendung waren Anlaß zu einer Weiterentwicklung.

Unser Template soll folgende Eigenschaften aufweisen:

A.) menügesteuerte Bedienerführung
B.) menügesteuerte Eingabesteuerung
C.) Archivierungsmöglichkeit mit Wiedervorlage
D.) Schnittstelle zur Textverarbeitung
E.) Endlosdruck auf Rechnungsformularen
F.) Schnittstelle zu einer offenen Postenliste (erweiterbar)
G.) einfache Bedienbarkeit

RAUM und ZEIT

Jeder Vip-Spezialist hat bei der Programmierung eines Templates seineeigene Vorgehensweise. Ich plane zunächst immer den räumlichen Aufbau meines Templates (Abb.2).

Die Bereiche: Macros, Druckerausgabe, Rechnungsdateneingabe und Menüauswahl finden ihren festen Bereich. Anwender, die bereits mehr als zehn solcher Templates entwickelt haben, wissen es zu schätzen, jedem Template einen sogenannten Lageplan der Bereiche beizulegen.

Schritt für Schritt, a little Bit

Bei unserer Anwendung soll gewährleistet sein, daß jeder Anfänger so zurecht kommt, als wäre die Anwendung Rechnung.WKS ein Front-End-Programm. Der Anwender soll mit der Vip-spezifischen Menüleistensteuerung und den Befehlen nicht konfrontiert werden. Die Menüsteuerung muß sehr durchsichtig aufgebaut und dokumentiert werden.

Das Erstellen eines Menüplanes für die Anwendung ist immer Ausgangspunkt für die ersten Macroschritte in unserem Template. Die Abbildung 3 zeigt den Menübaum, der in Rechnung.WKS seine Anwendung findet.

Laßt die Tasten klimpern

Ich habe mich lange gefragt, ob es sinnvoll sei. ein doch recht langes Programmlisting in der Zeitschrift abzudrucken. Viele Leserzuschriften haben mich ermuntert, es doch zu wagen. Immerhin vergehen so ziemlich 2-3 Stunden, bis die Spaltenbreiten eingestellt, die Bereiche benannt, die Druckersequenzen angepaßt und die Nerven am Ende sind.

Ob der Lerneffekt auch wirklich als solcher wie eine Bombe einschlägt, mag nunmal dahingestellt sein. Ich habe mich zu Zeiten meines Pocketcomputers PC1500A immer riesig gefreut, wenn alles ohne ERROR-Meldung funktioniert hat. Das einfache Sharp-Basic, später auch etwas Maschinensprache, habe ich ja auch nur durch Abtipperei in das seltsame Spatzenhirn (mein eigenes) transferieren können.

Mein teuerstes Listing ist übrigens auf einem Flughafen in Amsterdam entstanden. Ich war damals so eifrig, daß ich die letzte Maschine versäumt habe und eine Nacht in einem der teuersten Hotels verbringen durfte. Zum Glück gibt es bis heute noch keinen portablen Mega-ST! Für die Geldhaber und Ökonomen unter uns gibt es das Programm Rechnung.WKS auch auf der Monatsdisk von MAXON.

Abbildung 2: Räumlicher Aufbau des Templates

Lernen und die Folgen

Viele Leser unter Ihnen, die mit unserem Programmierkurs erst so richtig neugierig auf Vip-Professional gemacht wurden, wird die systematische Abtipperei und das Nachvollziehen einzelner Macrosequenzen sehr hilfreich sein. Sie lernen unter anderem auch das Eliminieren von Zelleninhalten mit dem Wert Null. Textformatierungen, Input-Deklarationen, Menüsteuerungen und Menüaufforderungen, Schnittstellen-und File-Export-Funktionen, globale Arbeitsblattsteuerungen und, und, und. Also nur Mut, es kann überhaupt nichts schiefgehen.

Wenn die Vip-Zellen schön abgetippt wurden, geht es an die Bereichsbenennung unserer Macronamen.

Die Sequenz:

/RNC(NAME)~(Bereich)~

ist Ihnen ja recht bekannt.

Die zu benennenden Bereiche im Template Rechnung.WKS sehen Sie in Abbildung 4.

CALC AC49 DATUM V2 INPUT B22..D61 MENUA AC9 MENUB AC14 MENUC AC92 MENUD AC104 MENUE AC112 MENUF AC122 NEU AC18 OUTANSCHRIFT O10 OUTBETREFF O20 OUTDATA O27..R51 OUTDATUM R20 OUTNUMMER Q20 OUTPUT O1..R60 OUTTEXT1 O21 OUTTEXT2 O22 PREISINDM R27 PREISSUMM T27..T51 PROTOKOLL B28..B30 RGANSCHRIFT B22..B26 RGBETREFF B28 RGDATA B37..D61 RGDATUM B30 RGNUMMER B29 RGPOSANZ C37..C61 RGPOSEPREIS D37..DG1 RGPOSTEXT B37..BS1 RGTEXT1 B32 RGTEXT2 B33 SUMINPUT F37..F61 SUMME F64 SUMOUTPUT R27..R51 NERBIN U3..U10 WERBOUT O53 \0 AC3 \A AC111 \D AC91 \E AC43 \I AC121 \M AC8 \N AC13 \S AC103

Abbildung 4: Zu benennende Bereiche in Rechnung.WKS

Die Spaltenbreiten habe ich nach meinen Bedürfnissen auf folgende Einstellungen gebracht:

A=16,B=35,C=7,D=10, E-G=9,H=14,I-K=9,L=2, M-AZ=9

Ein kleiner Macro kann hier ja auch schon nützlich sein: /WCS.

Bei der Auflistung der Zelleninhalte werden zusätzlich einige Attribute genannt, die folgende Bedeutung haben:

AC11: U(D1) = Zelle AC11

wurde ungeschützt auf Datum1 formatiert.

BC11: U (F2) = Zelle BC11

wurde ungeschützt auf 2 Nachkommastellen formatiert. Also bitte unbedingt daran denken.

Bevor Sie mit der Eingabe beginnen, sollten Sie unbedingt prüfen ob Sie eine VIP-Version 1.1> US (englische Menüs), GEM oder TEXT besitzen. Andernfalls sind die Macros nicht lauffähig.

Alles hat einmal ein Ende

Im nächsten und vorläufig auch letzten Teil des VIP-Programmierkurses werde ich die Kombination von Arbeitsblättern sowie den Export von Zellenbereichen, das Druckaufbereiten und einige Leserfragen abschließend besprechen.

Bis bald. HDS

Macrolisting-Anfang: 1.Zelle AA1 letzte Zelle: AD127 Zelle: Eingaben AA1: 'Macros AB1: 'Name AC1: 'Syntax AA2: \- AB2: \- AC2: \- AD2: \- AE2: \- AA3: 'Start AB3: '\0 AC3: '/WTC{HOME} AC4: '/WGRM AC5: '/XG\M~ AA8: 'Menü A AB8: '\M AC8: '/XMMENUA- AC9: 'NEU AD9: 'EDIT AE9: 'ARCHIV AF9: 'DRÜCK AG9: 'SERVICE AH9: 'INSTAL AI9: 'HALT AJ9: 'QUIT AC10: 'Neue Rechnung erstellen AD10: 'Rechnungsdaten edieren AE10: 'Rechnung archivieren (PRN/WKS) AF10: 'Rechnung drucken AG10: 'Template Sichern etc. AH10: 'Steuersatz,Werbetexte und Datum installieren AI10: 'Menü verlassen AJ10: 'Arbeit beenden. AC11: '/XG\N~ AD11: '/XG\E~ AR11: '/XG\A~ AF11: '/XG\D~ AG11: '/XG\S~ AH11: '/XG\I~ AI11: '/xq~ AJ11: '/fr AA13: 'Menu B AB13: '\N AC13: '/XMMENUB~ AA14: 'neu AC14: 'Neu AD14: 'Quit AC15: 'Neue Rechnung erstellen AD15: 'zurück AC16: '/XGNEU~ AD16: '/XG\M~ AA18: 'Rechnung ABI8: 'NEU AC18: '{Home}/wgra/wtc/rerganschrift~ AC19: '/rergposanz~ AC20: '/rergposepreis~ AC21: '/rergpostext- AC22: '/reRGTEXT1~ AC23: '/reRGTEXT2~ AC24: '/cDATUM~RGDATUM~/cSUMME~D33~/wwc/wtc AC25: '{HOME}{GOTO}A22~{RIGHT}/WTB AC26: '/XLAnrede eingeben: ~B22~{GOTO}B23~ AC27: '/XLVorname/Name eingeben: ~B23~{GOTO}B24~ AC28: '/XLz.Hd. (Zusatz) eingeben: ~B24~{GOTO}B25~ AC29: '/XLStraße eingeben: ~B25~{Goto}B26~ AC30: '/XLPostleitzahl/Ort eingeben: ~B26~ AC31: '{Goto}b28~{Edit}{?}~ AC32: '{Goto}b29~{Edit}{?}~ AC33: '{Goto}b30~/ruB30~{Edit}{?}~ AC34: '/rpB30~ AC35: '{Goto}b32~ AC36: '/XLRechnungstext 1 eingeben: ~B32~ AC37: '{Goto}b33~ AC38: '/XLRechnungstext 2 eingeben: ~B33~ AC39: '{Down}{Down}{Down}{Down}/wtb AC40: '/riRGDATA~ AC41: '/wgrm/XG\M~ AA43: 'Edit AB43: '\E AC43: '/wgra/wwc/wtc AC44: '/cDATUM~RGDATUM~/cSUMME~D33~ AC45: '{HOME}{GOTO}A22~{RIGHT}/WTB AC46: '/wgrm/xq~ AA48: 'Subroutine AA49: 'CALC AB49: 'CALC AC49: '/wgrm/crganschr AC50: 'ift~outanschrift~/crgbetreff~outbetreff~ AC54: '/crgnummer~outnummer~/crgdatum~outdatum~/c AC58: 'rgtext1~outtext1~/crgtext2~outtext2~/crg AC62: 'data~outdata~/cPREISSUMM~PREISINDM~{Calc} AA64: 'Null AC64: '/XIr27=0~/rer27~ AA65: 'loeschen AC65: '/XIr28=0~/rer28~ AC66: '/XIr29=0~/rer29~ AC67: '/XIr30=0~/rer30~ AC68: '/XIr31=0~/rer31~ AC69: '/XIr32=0~/rer32~ AC70: '/XIr33=0~/rer33~ AC71: '/XIr34=0~/rer34~ AC72: '/XIr35=0~/rer35~ AC73: '/XIr36=0~/rer36~ AC74: '/XIr37=0~/rer37~ AC75: '/XIr38=0~/rer38~ AC76: '/XIr39=0~/rer39~ AC77: '/XIr40=0~/rer40~ AC78: '/XIr41=0~/rer41~ AC79: '/XIr42=0~/rer42~ AC80: '/XIr43=0~/rer43~ AC81: '/XIr44=0~/rer44~ AC82: '/XIr45=0~/rer45~ AC83: '/XIr46=0~/rer46~ AC84: '/XIr47=0~/rer47~ AC85: '/XIr48=0~/rer48~ AC86: '/XIr49=0~/rer49~ AC87: '/XIr50=0~/rer50~ AC88: '/XIr51=0~/rer51~ AC89: '/wgra/xr-* AA91: 'Druck AB91: '\D AC91: '/XMmenuc~ AC92: 'Druck AD92: 'Seite AE92: 'Zeile AF92: 'Anfang AG92: 'Quit AC93: 'Rechnung drucken AD93: 'Seitenvorschub AE93: 'Zeilenvorschub AF93: 'Blattanfang setzen ! AG93: 'Menü verlassen AC94: '/xcCALC~ AD94: '/pppq/xg\D~ AE94: '/ppl/xg\D~ AF94: '/ppaq/xg\D~ AG94: '/xg\M~ AC95: '/wtc{Goto}b70~/cprotokoll~~ AC96: '/ppcaroutput~oml4~mr80~mt0~mb6~ AC97: 's\027\018- AC98: 'p72~qagq{home} AC99: '/xg\D~ AA103: 'Service AB103: '\S AC103: '/XMmenud~ AC104: 'Ersetzen AD104: 'Sichern A AE104: 'Sichern B AF104: 'Pfad neu AG104: 'Quit AC105: 'Arbeitsblatt sichern und ersetzen AD105: 'auf A:\ sichern (neu) AE105: 'auf B:\ sichern (neu) AF105: 'Neues Directory einstellen AG105: 'Menü verlassen AC106: '{Home} AD106: '{Home} AE106: '{Home} AF106: '/fd{?}~/xg\S~ AG106: '/xq~ AC107: '/wtc/fs~r AD107: '/wtc/fdA:\~/fs~r AE107: '/wtc/fdB:\~/fs~r AA111: 'Archiv ABI11: '\A AC111: '/XMmenuE~ AC112: 'Sichern (WKS) AD112: 'Archivieren (PRN) AE112: 'Wiedervorlage AF112: 'Quit AC113: 'Rechnung zur Wiedervorlage WKS sichern AD113: 'Rechnung im ASCII.PRN-Format absp. AE113: 'Rechnung laden (WKS) AF113: 'Menü verlassen AC114: '/xcCALC~/WTC{GOTO}B29~ AD114: '/xcCALC~/WTC{GOTO}B29~ AE114: '/WTC{GOTO}B22~ AC115: '/fxv{?}~ AD115: '/pf{?}~ AE115: '/wtc AC116: 'input~ AD116: 'routput~ AE116: '{Goto}b22~ AC117: '/XG\M~ AD117: 'oouqagq AE117: '/fcce{?}~ AD118: '/XG\M~ AA121: 'Inst ABI21: '\I AC121: '/XMmenuF~ AC122: 'Zeigen AD122: 'Sichern AE122: 'zurück AC123: 'Statuswerte zeigen AD123: 'Update AE123: 'Menü verlassen AC124: '{Home}/wtc{Goto}v1~/ AD124: '/cWERBIN~WERBOUT~ AE124: '/xg\M~ AC125: 'riv1.v10~ AD125: '{Goto}werbout~/ AC126: '/xg\I~ AD126: 'rjo53.o64~ AD127: '/xg\S~

Das Macro-Listing

Blatt Listing Anfang: 1.Zelle B1 letzte Zelle: B79 Zelle: Eingabe B1: ^Rechnungsschreibung H1: 'CALC I1: 'AC49 L1: 'I M1: 'Zeilen N1: 1 T1: 'I U1: 'Parameter: V1: U 0.14 W1: '% Mehrwertsteuersatz B2: ^unter H2: 'DATUM I2: 'V2 L2: 'I N2: 2 T2: 'I V2: U(D1) @INT(@TODAY) W2: ' Datum B3: ^VIP-PROFESSIONAL H3: 'INPUT 13: 'B22..D61 L3: 'I N3: 3 T3: 'I V3: U 'Fahren Sie unseren Renault Alpine W3: '— 1.Zeile Werbetext B4: ^bitte Taste [ALT] und [Buchstabe] H4: 'MENUA I4: 'AC9 L4: 'I M4: 'Absender N4: 4 T4: 'I V4: U 'V6 Turbo doch einmal Probe ! W4: '- 2.Zeile Werbetext B5: \- H5: 'MENUB I5: 'AC14 L5: 'I N5: 5 T5: 'I V5: U 'Bei 250 km/h zeigt sich die W5: '- 3.Zeile Werbetext B6: U 'M = MENUE H6: 'MENUC I6: 'AC92 L6: 'I N6: 6 T6: 'I V6: U 'hervorragende Strassenlage W6: '- 4.Zeile Werbetext B7: U 'N = - Neue Rechnung erstellen H7: 'MENUD I7: 'AC104 L7: 'I N7: 7 T7: 'I W7: '- 5.Zeile Werbetext B8: U 'E = - Neue Rechnung edieren H8: 'MENUE I8: 'AC112 L8: 'I N8: 8 T8: 'I W8: '- 6.Zeile Werbetext B9: U 'A = - archivieren (WKS + PRN) H9: 'MENUF I9: 'AC122 L9: 'I N9: 9 T9: 'I W9: '- 7.Zeile Werbetext B10: U 'D = - Druck (direkt) H10: 'NEU I10: 'AC18 L10: 'I M10: 'Anschrift N10: 10 O10: U 'Herr T10: 'I W10: '- 8.Zeile Werbetext B11: U 'S = - Service (Template) H11: 'OUTANSCHRIFT I11: 'O10 L11: 'I N11: 11 O11: U 'Anton Testkunde T11: 'I U11: \- V11: \- W11: \- X11: \- Y11: \- B12: U 'H = Halt H12: 'OUTBETREFF I12: 'O20 L12: 'I N12: 12 012: U 'z.Hd. Repararurabwicklung T12: 'I B13: U 'Q = - Quit (ENDE) H13: 'OUTDATA I13: 'O27..R51 L13: 'I N13: 13 O13: U 'Ingersheimer Str. 12 T13: 'I B14: U 'I = INSTALLATION H14: 'OUTDATUM I14: 'R20 L14: 'I N14: 14 O14: U 'D-7140 Ludwigsburg T14: 'I B15: \- H15: 'OUTNUMMER I15: 'Q20 L15: 'I N15: 15 H16: 'OUTPUT I16: 'O1..R60 L16: 'I N16: 16 H17: 'OUTTEXT1 I17: 'O21 L17: 'I N17: 17 H18: 'OUTTEXT2 I18: 'O22 L18: 'I N18: 18 H19: 'PREISINDM I19: 'R27 L19: 'I N19: 19 H20: 'PREISSUMM 120: 'T27..T51 L20: 'I M20: 'BETREFF N20: 20 O20: U 'R E C H N U N G P20: 'Nummer: Q20: U "10/880201 R20: (D1) @INT(@TODAY) A21: \- B21: \- C21: 'I H21: 'PROTOKOLL I21: 'B28..B30 L21: 'I M21: 'Text 1 N21: 21 O21: U 'Reparatur Unfallschaden am A22: 'Anrede_________> B22: U 'Herr C22: 'I H22: 'RGANSCHRIFT I22: 'B22..B26 L22: 'I M22: 'Text 2 N22: 22 O22: U 'Renault Alpine A310 V6 GT A23: 'Name/Vorname___> B23: U 'Anton Testkunde C23: 'I H23: 'RGBETREFF I23: 'B28 L23: 'I N23: 23 O23: \- P23: \- Q23: \- R23: \- A24: 'Zusatz_________> B24: U 'z.Hd. Reparaturabwicklung C24: 'I H24: 'RGDATA I24: 'B37..D61 L24: 'I N24: 24 O24: 'Positionsbeschreibungen P24: 'Anzahl Q24: ' Preis a R24: ' Preis in DM A25: 'Strasse________> B25: U ' Ingersheimer Str. 12 C25: 'I H25: 'RGDATUM I25: 'B30 L25: 'I N25: 25 O25: \- P25: \- Q25: \- R25: \- A26: 'PLZ/ORT_______> B26: U 'D-7140 Ludwigsburg C26: 'I H26: 'RGNUMMER I26: 'B29 L26: 'I N26: 26 A27: \- B27: \- C27: 'I H27: 'RGPOSANZ I27: 'C37..C61 L27: 'I M27: "1.Pos N27: 27 O27: U 'Kotfluegel ausbessern P27: U 1 Q27: U(F2) 850 R27: (F2) @ROUND((+Q27*P27),2) T27: (F2) @ROUND((+S27*PREISINDM),2) A28: 'Betreff________> B28: U 'R E C H N U N G C28: 'I H28: 'RGPOSEPREIS I28: 'D37..D61 L28: 'I N28: 28 O28: U(F2) 'Scheinwerfereinsatz P28: U 1 Q28: U(F2) 120 R28: (F2) @ROUND((+Q28*P28),2) T28: (F2) @ROUND((+S28*R28),2) A29: 'Nummer_________> B29: U "10/880201 C29: 'I H29: 'RGPOSTEXT I29: 'B37..B61 L29: 'I N29: 29 O29: U 'Kleinteile P29: U 5 Q29: U(F2) 28 R29: (F2) @ROUND((+Q29*P29),2) T29: (F2) @ROUND((+S29*R29),2) A30: 'Datum__________> B30: (D1) @INT(@TODAY) C30: 'I H30: 'RGTEXT1 I30: 'B32 L30: 'I N30: 30 T30: (F2) @ROUND((+S30*R30),2) A31: \- B31: \- C31: 'I H31: 'RGTEXT2 I31: 'B33 L31: 'I N31: 31 T31: (F2) @ROUND((+S31*R31) , 2) A32: 'TEXT 1__________> B32: U 'Reparatur Unfallschaden am C32: 'I D32: 'Netto-sum H32: 'SUMINPUT I32: 'F37..F61 L32: 'I N32: 32 O32: U 'Bitte nutzen Sie die Vorteile eines T32: (F2) @ROUND((+S32*R32),2) A33: 'TEXT 2___________> B33: U 'Renault Alpine A310 V6 GT C33: 'I D33: (F2) @SUM($SUMINPUT) H33: 'SUMME I33: 'F64 L33: 'I N33: 33 O33: U 'kontinuierlichen Fahrzeug-Checks. T33: (F2) @ROUND((+S33*R33),2) A34: \- B34: \- C34: \- D34: \- E34: 'I H34: 'SUMOUTPUT I34: 'R27..R51 L34: 'I N34: 34 O34: U 'Sicherheit geht bei uns vor ! T34: (F2) @ROUND((+S34*R34),2) A35: "POSITION B35: 'TEXT C35: 'ANZAHL D35: 'Einz.PREIS E35: 'I H35: 'WERBIN I35: 'V3..V10 L35: 'I N35: 35 T35: (F2) @ROUND((+S35*R35),2) A36: \- B36: \- C36: \- D36: \- E36: 'I H36: 'WERBOUT I36: 'O53 L36: 'I M36: "10.Pos N36: 36 T36: (F2) @ROUND((+S36*R36),2) A37: 1 B37: U 'Kotfluegel ausbessern C37: U 1 D37: U(F2) 850 E37: 'I F37: @ROUND((+D37*C37),2) H37: '\0 I37: 'AC3 L37: 'I N37: 37 T37: (F2) @ROUND((+S37*R37),2) A38: 2 B38: U(F2) 'Scheinwerfereinsatz C38: U 1 D38: U(F2) 120 E38: 'I F38: @ROUND((+D38*C38),2) H38: '\A 138: 'AC111 L38: 'I N38: 38 T38: (F2) @ROUND((+S38*R38), 2) A39: 3 B39: U 'Kleinteile C39: U 5 D39: U(F2) 28 E39: 'I F39: @ROUND((+D39*C39),2) H39: '\D I39: 'AC91 L39: 'I N39: 39 T39: (F2) @ROUND((+S39*R39) , 2) A40: 4 E40: 'I F40: @ROUND((+D40*C40),2) H40: '\E I40: 'AC43 L40: 'I N40: 40 T40: (F2) @ROUND((+S40*R40),2) A41: 5 E41: 'I F41: @ROUND((+D41*C41),2) H41: '\I I41: 'AC121 L41: 'I N41: 41 T41: (F2) @ROUND((+S41*R41),2) A42: 6 B42: U 'Bitte nutzen Sie die Vorteile eines E42: 'I F42: @ROUND((+D42*C42),2) H42: '\M I42: 'AC8 L42: 'I N42: 42 T42: (F2) @ROUND((+S42*R42),2) A43: 7 B43: U 'kontinuierlichen Fahrzeug-Checks. E43: 'I F43: @ROUND((+D43*C43),2) H43: '\N I43: 'AC13 L43: 'I N43: 43 T43: (F2) @ROUND((+S43*R43),2) A44: 8 B44: U 'Sicherheit geht bei uns vor ! E44: 'I F44: @ROUND((+D44*C44),2) H44: '\S I44: 'AC103 L44: 'I N44: 44 T44: (F2) @ROUND((+S44*R44),2) A45: 9 E45: 'I F45: @ROUND((+D45*C45),2) L45: 'I N45: 45 T45: (F2) @ROUND((+S45*R45),2) A46: 10 E46: 'I F46: @ROUND((+D46*C46),2) L46: 'I M46: "20.Pos N46: 46 T46: (F2) @ROUND((+S46*R46),2) A47: 11 E47: 'I F47: @ROUND((+D47*C47),2) L47: 'I N47: 47 T47: (F2) @ROUND((+S47*R47),2) A48: 12 E48: 'I F48: @ROUND((+D48*C48),2) L48: 'I N48: 48 T48: (F2) @ROUND((+S48*R48),2) A49: 13 E49: 'I F49: @ROUND((+D49*C49),2) L49: 'I N49: 49 T49: (F2) @ROUND((+S49*R49),2) A50: 14 E50: 'I F50: @ROUND((+D50*C50),2) L50: 'I N50: 50 T50: (F2) @ROUND((+S50*R50),2) A51: 15 E51: 'I F51: @ROUND((+D51*C51),2) L51: 'I M51: "25.Pos N51: 51 T51: (F2) @ROUND((+S51*R51),2) A52: 16 E52: 'I F52: @ROUND((+D52*C52),2) L52: 'I N52: 52 O52: \- P52: \- Q52: \- R52: \- A53: 17 E53: 'I F53: @ROUND((+D53*C53),2) L53: 'I M53: 'Werbung N53: 53 053: U 'Fahren Sie unseren Renault Alpine Q53: "Netto DM R53: (F2) GSUM(Q27..R51) A54: 18 E54: 'I F54: @ROUND((+D54*C54),2) L54: 'I N54: 54 O54: U 'V6 Turbo doch einmal Probe ! Bei Q54: \- R54: (F2) \- A55: 19 E55: 'I F55: @ROUND((+D55*C55),2) L55: 'I N55: 55 O55: U '250 km/h zeigt sich die P55: (P2) +$V$1 Q55: ' Mwst. R55: (F2) @ROUND((+R53*P55),2) A56: 20 E56: 'I F56: @ROUND((+D56*C56),2) L56: 'I N56: 56 O56: U 'hervorragende Strassenlage Q56: \- R56: (F2) \- A57: 21 E57: 'I F57: @ROUND((+D57*C57),2) L57: 'I N57: 57 Q57: 'Gesamt DM R57: (F2)+R53+R55 A58: 22 E58: 'I F58: @ROUND((+D58*C58),2) L58: 'I N58: 58 A59: 23 E59: 'I F59: @ROUND((+D59*C59) , 2) L59: 'I N59: 59 A60: 24 E60: 'I F60: @ROUND((+D60*C60),2) L60: 'I N60: 60 A61: 25 E61: 'I F61: @ROUND((+D61*C61),2) L61: 'I N61: 61 A62: \- B62: \- C62: \- D62: \- E62: 'I L62: 'I N62: 62 L63: 'I N63: 63 F64: (F2) @SUM($SUMINPUT) L64: 'I N64: 64 L65: 'I N65: 65 B70: U 'R E C H N U N G B71: U "10/880200 B72: U(D1) @INT(@TODAY) B76: ^ist in Druck B79: ^bitte warten

Das Blatt-Listing