29. April 2009 

Namen seien Schall und Rauch. Nicht immer, aber immer häufiger :-)

Attention to detail

Mit den Anwendungsjahren verändert sich das eigenen Namensschema. Zuerst gibt es kein Bewußtes, Felder und Variablen heißen, wie es gerade einfällt und nicht bereits vergeben ist. 4D ist das egal, die Namen sind nur für uns vor der Mattscheibe, damit wir uns nicht die internen Nummern merken müssen.

Bald findet man sich in seinen Namen nicht mehr zurecht. Ist das Feld MannFrau nun ein boolsches oder ein longint-Feld und ist Mann = Wahr und Frau = 1 oder umgekehrt? Also heißt das Feld bei mir IstFrau_b. Die Suche liest sich IstFrau_b = Wahr und das b hält mich davon ab, IstFrau_b = 0 zu prüfen.

cbIstFrau Mein Schema ist jetzt: Objektart_Name_Datentyp. Die Checkbox Frau heißt als Variable cb_IstFrau_b und als Feld aus der Tabelle [PERSON] heißt es [PERSON]PERS_IstFrau_b.

Mein Schema ist also dreiteilig: Objektart_Name_Datentyp. Es gibt andere Namensschemen, die ebenfalls funktionieren.

Inzwischen versuche ich auch den mittleren Teil, den Namen konsequenter zu strukturieren. Das ist mir eine große Hilfe. Kurze Geschichte dazu:

Vermittler von Privatunterkünften müssen für ihre Vermittlungsprovision die MwSt. berechnen für die Unterkunft selbst aber nicht, wenn der Vermieter nicht mehrwertsteuerabzugsbrechtigt ist. Das ist kompliziert! Jede Position muß um einen Satz Felder für Marge in Prozent, netto, MwSt.-Satz, MwSt.-Betrag und brutto der Marge ergänzt werden und um Felder in den Rechnungssummen.

Weitere Felder sind in 4D problemlos anzulegen und nur die Anwender, die sie brauchen, sehen sie. Sie werden am Ende der Tabelle angehängt. Habe ich gemacht und ich weiß nicht mehr wie benannt.

Lange fummelte ich an den Berechnungs-Methoden rum und fand immer wieder einen Berechnungsfehler, in der Marge, in der MwSt.-Berechnungsbasis, im Runden auf 2 Stellen. Schließlich war es mir zu bunt. Hier mußte ich konsequent aufräumen. Als erstes kam die komplette Umbenennung der betroffenen Felder. 31 Zeichen dürfen Feldnamen haben, woran also sparen?

Position Marge
netto: RECHPOS_Einzel_netto_R RECHPOS_Marge_netto_R
Menge: RECHPOS_Einzel_Menge_R RECHPOS_Marge_Menge_R
Menge * netto: RECHPOS_Einzel_MengeNetto_R RECHPOS_Marge_MengeNetto_R
MwSt.-Satz: RECHPOS_Einzel_MwStSatz_R RECHPOS_Marge_MwStSatz_R
MwSt.-Betrag: RECHPOS_Einzel_MwStMengeBetrag_R RECHPOS_Marge_MwStMengeBetrag_R
brutto: RECHPOS_Einzel_BruttoBetrag_R RECHPOS_Marge_BruttoBetrag_R

Sofort fielen mir die logischen Fehler in meinen Berechnungsmethoden auf. Die ließen sich korrigieren und seitdem habe ich Ruh.

Diese Geschichte erzähle ich gerne, wenn mir jemand nahelegt es muß funktionieren, gut aussehen wird nicht bezahlt. Der Zeitaufwand, Felder konsequent neu zu benennen, kann sich rechnen. Konsequentes Design auf allen Ebenen lohnt sich.

4D Themen: Berichte in Arbeit