Schlagwort-Archive: Aufräumen

Sieht so aus

Als ob ich zum Ende meiner Refaktorierung komme. Es scheint, ich konnte 4 verschiedene Formulare mit 4 verschiedenen Abfragen auf 1 Form mit 1 Abfrage umprogrammieren. Es ist IMHO hilfreich, das Wissen was man hat, in Objekten/Strukturen unterzubringen. Der Code ist bislang nicht perfektioniert, aber immerhin statt 4 Formen mit Code von 120 Zeilen ist es nur noch eine Form mit rund 140 +/- 20 Zeilen.

So sieht der ersetzte Code aus:

'Dim intAntwort As Integer
'Dim strNeueZeile As String
'strNeueZeile = Chr$(10) & Chr$(13)
'
'Dim intSchleife As Integer
'Dim lngNr As Long
'Dim lngDrucker As Long, strBericht As String
'
'Dim WSP1 As Workspace, DB1 As Database, Tabelle1 As Recordset
'Set WSP1 = DBEngine.Workspaces(0)
'Set DB1 = WSP1.OpenDatabase(strDatenbankGlo)
'
'Set Tabelle1 = DB1.OpenRecordset("HT_Nummernkreise", DB_OPEN_TABLE)     ' Tabelle öffnen.
'
'If Forms!HF_AuftrAnkErz!AngebotKz = True Then
'    ' Rückfrage mit Speicherung der Antwort
'    intAntwort = MsgBox("Für diesen Auftrag wurde bereits ein Angebot gedruckt!" & strNeueZeile & "Wollen Sie diesen Ausdruck wiederholen?", 33, "Angebot drucken?")
'    If intAntwort = 2 Then
'        GoTo Exit_DruckAngebot_Click
'    End If
'End If
'
'' Firma Beller
'If strKundeNr = "143" Then
'    strBericht = "BR_DruckAngebotAnkErz_Bel"
'Else
'    strBericht = "BR_DruckAngebotAnkErz"
'End If
'
'ordneDruckerZu "Angebot", strBericht, HAUPT_DRUCKER
'
'' Prüfen ob Kontrollkästchen für Seitenansicht aktiviert
'' wenn aktiviert dann Seitenansicht, ansonsten Ausdruck auf Drucker
'If Me!Seitenansicht = True Then
'    DoCmd.OpenReport strBericht, acViewPreview
'Else
'    Tabelle1.MoveLast                     ' Letzten Datensatz suchen.
'    setzeFelder Forms!HF_AuftrAnkErz, Tabelle1, DRUCK_BEREICH_ANGEBOT
'    erhoeheNummer Tabelle1, "AngebotNr"
'
'    Forms!HF_AuftrAnkErz!AngebotKz = True   ' Setzen der Druckkennziffer
'    Forms!HF_AuftrAnkErz.Refresh
'
'    ' Logbucheintrag
'    If DLookup("[Benutzerverwaltung]", "HT_SysParameter") = True Then
'        Call SetzeBenutzerLog("Drucke Angebot m. Summen Ankauf Erz.-Preis! Auftrag Nr: " & CStr(Forms!HF_AuftrAnkErz!AuftragNr) & ", Angebot Nr: " & CStr(Forms!HF_AuftrAnkErz!AngebotNr))
'    End If
'End If

Also grob 4 * 120 = 480 (es kommen wahrscheinlich noch ein paar Zeilen dazu, wegen eines Berichts, der genau auf die Anforderungen eines Kunden zugeschnitten war, die Logik ändert sich aber nicht, auf, sagen wir mal 160 LOC, 60 – 70 % weniger Code. Macht bei 500 000 Loc rund 600 / 500 000 * 100 = 0,12 % 😉 und 3 Formulare weniger … Nicht beeindruckend, wenn man aber betrachtet, in wie vielen Bereichen man das erreichen könnte. Wäre eine erste Schätzung, daß man den Code auf 160 / 600 = 26,6 % runter brächte, was dann auf gerade mal 125 000 Zeilen von Code hinausliefe, ohne Einbußen bei der Funktionalität. Wenn man dann noch die extrem aufwendige Übergabe an diverse Buchhaltungssysteme auf Datev herunterschraubte (was wohl jede Fibu in D einlesen kann) … Da kann man mal sehen, was nur eine andere Strukturierung an Vorteilen brächte und wie viel weniger Fehler gäbe es und wie viel einfacher wäre eine Korrektur? Sollte ich mal einen Fehler in den Angeboten finden, bräuchte ich nur eine Methode ändern statt … Mal sehen wie’s weitergeht. Es kommt wohl etwas dazu, weil es das Ziel ist, alle Reports auch als Email versenden zu können. Mal schauen…