Gebeugte Anredeform in Verkaufsbeleg

Beantwortet

Kommentare

12 Kommentare

  • Avatar
    Holger Büttner

    Sehr geehrter Herr Waldherr,

    eine individuelle Anrede können Sie in der Adresse im Bereich "Notizen" in der Briefanrede hinterlegen.

    0
    Aktionen für Kommentare Permalink
  • Avatar
    Jørn Rings

    Ich würde das Thema gerne nach 7 Jahren wieder aufgreifen :-)

    Nach DIN-Norm steht in einem Anschriftenfeld "Herrn Büttner" statt "Herr Büttner" (damit ist nicht die Briefanrede gemeint, sondern das Adressfeld). 

    Man kann das zwar händisch bei jedem Verkaufsbeleg ändern, den man erstellt - es wäre aber deutlich besser, wenn das System das automatisch so formatiert. Programmiertechnisch vermutlich eine Kleinigkeit.

    VG Jørn Rings

    0
    Aktionen für Kommentare Permalink
  • Avatar
    Christian Bremm (Bearbeitet )

    Das habe ich mal per Mail angefragt und folgendes erhalten:

    Sie können den Anrede-Text mit Hilfe der Replace-Anweisung im Druckformular wie folgt ersetzen.

    Für die Rechnungsanschrift:

    Replace(AUF_Rechnungsanschrift, "Herr", "Herrn")

    Für die Lieferanschrift:

    Replace(AUF_Lieferanschrift, "Herr", "Herrn")

     

    0
    Aktionen für Kommentare Permalink
  • Avatar
    Jørn Rings

    Das klingt logisch. Wo setzte ich das ein?

    Wenn ich es direkt über die Zeile setze, wo die Anschrift ausgegeben wird, meldet mir das Druckformular beim Drucken einen Fehler.

    Und was passiert, wenn ein Kunde "Peter Herr" heißt? Steht dann dort "Herrn Peter Herrn"?

    0
    Aktionen für Kommentare Permalink
  • Avatar
    Stefano Kowalke (Bearbeitet )

    In der Doku steht 

    Über die Variablen AUF_Lieferanschrift und AUF_Rechnungsanschrift wird die Liefer- bzw. Rechnungsanschrift als gesamter Block ausgegeben. Eine Formatierung einzelner Zeilen (z. B. nur den Namen in Fettdruck) ist auf diese Weise nicht möglich. Sie können jedoch die Anschrift zeilenweise selbst zusammensetzen und nach Ihren Wünschen formatieren. Die Felder dafür stehen Ihnen in der Drop-down-Liste Felder (Global) zur Verfügung.

    https://www.monkey-office.de/doc/Adress-_und_Infobereich.html

    Ich gehe also davon aus, dass es genauso ist, wie Du sagst. Jedes Herr in der Variable wird zu Herrn geändert. Die Alternative ist wohl dies dann selbst zusammenzubauen. 

    Wie lautet denn die Fehlermeldung?

    0
    Aktionen für Kommentare Permalink
  • Avatar
    ds

    Und was passiert, wenn ein Kunde "Peter Herr" heißt? Steht dann dort "Herrn Peter Herrn"?

    Hab es nicht ausprobiert, aber REPLACE sollte eigentlich nur das erste vorkommen ersetzen und es würde lauten "Herrn Peter Herr".

    0
    Aktionen für Kommentare Permalink
  • Avatar
    ds (Bearbeitet )

    Allerdings wird bei der prosaldo-Lösung aus der Anrede "Frau Maria Herr" ein "Frau Maria Herrn". Wenn man es richtig machen will, dann muß man schon etwas mehr Logik reinstecken (z.B.  if + position).

    0
    Aktionen für Kommentare Permalink
  • Avatar
    Stefano Kowalke

    Stimmt. Replace ersetzt tatsächlich das erste Vorkommen und ReplaceAll ersetzt alle Vorkommen.

    Eine andere Möglichkeit ist es, die Anrede "Herrn" im Adressdatensatz zu hinterlegen. Dort kann ich zwar zwischen "Herr" und "Frau" auswählen, aber auch "Herrn" reinschreiben.

    0
    Aktionen für Kommentare Permalink
  • Avatar
    Jørn Rings

    Wenn ich REPLACE auf AUF_Rechnungsanschrift anwende, kommt beim Drucken die Fehlermeldung: 

    "Die Skriptumgebung konnte nicht initialisiert werden."

    und direkt danach:

    "There is no Command with this Name!!"

    Scheinbar geht es also nicht mit dem ganzen Block und man muss es tatächlich neu zusammenpuzzeln. Das allerdings ist nicht ganz simpel, da die Adresse ja immer schön aussehen soll, auch wenn die Hausnummer fehlt, jemand einen Zusatz in der Adresse hat oder das Land erscheinen soll oder oder oder.

    Sinniger wäre es, wenn AUF_Rechnungsanschrift und AUF_Lieferanschrift direkt eine DIN-konforme Ausgabe liefern.

    0
    Aktionen für Kommentare Permalink
  • Avatar
    Stefano Kowalke

    Jørn Rings Versucht mal mit Replace. Ich denke es wird zwischen Groß-/Kleinschreibung unterschieden.

    0
    Aktionen für Kommentare Permalink
  • Avatar
    ds

    Wenn ich REPLACE auf AUF_Rechnungsanschrift anwende, kommt beim Drucken die Fehlermeldung:

    "Die Skriptumgebung konnte nicht initialisiert werden."
    und direkt danach:
    "There is no Command with this Name!!"

    Das funktioniert eigentlich schon, Du muß jedoch über eine if-Klausel sicherstellen, dass die Variable tatsächlich definiert ist. Bspw:

    If ( AUF_Art = AUFTRART_LIEFERSCHEIN Or (AUF_Art = AUFTRART_STORNO And AUF_VorbelegArt = AUFTRART_LIEFERSCHEIN) And AUF_LieferanschriftVerwenden )
    DrawText(Replace(AUF_Lieferanschrift, "Herr", "Herrn"), LAYOUTLEFT, hoehe, 900, 250)
    Else
    DrawText(Replace(AUF_Rechnungsanschrift, "Herr", "Herrn"), LAYOUTLEFT, hoehe, 900, 250)
    Endif

    Anmerkung: Es darf vermutlich immer noch keine ELSEIF-Abfrage sein. Da hatte (und hat vermutlich noch) der Compiler einen Bug.

    Wie ich zuvor schon schrieb ist dies allerdings keine saubere Lösung, da einfach das erste Vorkommen von "Herr" ersetzt wird. Dummerweise gibt es aber Firmen und Kunden deren Namen oder die Straße mit "Herr" beginnen und dann hat man da plötzlich den Namen geändert, jedoch nicht die Anrede. Dumme Sache!

    Man kann das schon irgendwie im Druckformular lösen, aber ganz so trivial wie von prosaldo vorgeschlagen ist es nicht.

     

    0
    Aktionen für Kommentare Permalink
  • Avatar
    Jørn Rings
    DrawText(Replace(AUF_Lieferanschrift, "Herr", "Herrn"), LAYOUTLEFT, hoehe, 900, 250)

    Damit funktioniert es. Ich hatte das Replace eine Zeile davor angewendet.

    Der Hinweis mit dem "Herr" im Firmennamen ist allerdings wahr. Das ist mir zu risikoreich. Da bleiben wir erstmal bei der alten Version ohne n und hoffen, dass prosaldo irgendwann den Fehler in der Anrede fixt.

    0
    Aktionen für Kommentare Permalink

Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.