[Gelöst] Anrede in Reports

27. Februar 2009 17:23

Hallo allerseits,

ich habe dieses Forum nach einiger Suche zufällig gefunden und nutze nun die Gelegenheit um eine Frage zu stellen.

Zunächst zu meiner Firma: Wir sind ein kleines Unternehmen mit ca. 30 MA und haben vor ca. 2 Jahren unsere "Verwaltung" auf Navision umgestellt.

Ich habe damals einen Designer-Lehrgang mitgemacht, damit ich die Reports an unsere Bedürfnisse anpassen kann.

Das ist mir auch relativ gut gelungen. Allerdings klemmt es schon mal hier und mal da. Das Übliche :-(

In den meisten Reports verwende ich die original Codeunits (FormatAddr) für die Aufbereitung der Kundenadressen.

Zur korrekten Gestaltung dieser Adressen haben die Kollegen zunächst die Kontaktadressen "verbogen", d.h. um die Ausgabe der Kundenadresse in dieser Form:

Firma Mustermann
Herrn Martin Mustermann
Musterstraße 1
12345 Musterdorf

hinzubekommen, haben sie als Vorname "Herrn Martin" eingetragen.

Das ist nicht sehr elegant, hat aber funktioniert.

Nun wollen wir dieses aber ändern und stattdessen den Anredecode (bzw. den darin hinterlegten Text "Herrn") verwenden.

Momentan kämpfe ich gerade mit dem Codeunit "FormatAddr". Leider haben wir keine Lizenz zur Einsicht/Änderung von Codeunits.

Auch eine Dokumentation ist nicht aufzutreiben :-(

Nun meine Frage:

Ist es möglich mit den original Codeunits diese Art der Adressausgabe darzustellen?

Wenn nein, welche Alternativen habe ich? Alle Adress-Felder einzeln hintereinander packen und dann ausgeben?

Viele Grüße
Peter
Zuletzt geändert von Materialtest am 9. Juli 2009 09:25, insgesamt 1-mal geändert.

Re: Anrede in Reports

27. Februar 2009 17:50

Hallo Peter,

das solltest du eigentlich über die Einrichtung lösen können.
Bei uns sieht zb der Anredecode für DEU, formell, männlich so aus: Sehr geehrter Herr %1 %2 %3,
Unter Name1,2,3 stellst du dann ein was er statt %1 etc einsetzen soll, also in diesem Fall Vorname, Vorname2, Nachname.
Damit müsste es dann in den Standardberichten funktionieren.

Gruss
Christian

Re: Anrede in Reports

27. Februar 2009 18:55

Hallo Christian,

ich glaube, Du verwechsels etwas. Die Anredeformel "Sehr geehrter Herr %1 %2 %3," taucht in der Adresse im Briefkopf garnicht auf.

Es geht um die Funktion "ContactAddr" in der Codeunit "FormatAddr".

Folgende Zeile steht in meinem Report unter "OnAfterGetRecord":

FormatAddr.ContactAddr(CustAddr, Kontakt);

"CustAddr" sind die 8 Zeilen im Briefkopf, in der die Adresse erscheinen soll und "Kontakt" ist der zuverwendene Datensatz aus der Kontakt-Tabelle.

Die Funktion "ContactAddr" gibt dann aus:

Firmenname
Vorname Nachname
Straße

PLZ Ort

Ich möchte aber:

Firmenname
Anrede* Vorname Nachname
Straße

PLZ Ort

* Anredetext (also z.B. "Herrn") aus Tabelle "Salutation Code".

Viele Grüße
Peter

Re: Anrede in Reports

27. Februar 2009 20:05

Hallo Materialtest

wenn ich das richtig gesehen habe, ist es in NAV nicht vorgesehen die Anrede mit auf den Belegen auszugeben. Die einzige Stelle wo mit der Anrede gearbeitet wird, ist in den Kontakten, wenn Briefe erstellt werden. Hier wäre also eine Sonderprogrammierung notwendig, die sich durch alle Belegtabellen, Stammdaten und die Codeunit Formataddress zieht.

Gruß, Fiddi

Re: Anrede in Reports

27. Februar 2009 20:48

Der Trick ist, an dieser Stelle
Code:
FormatAddr.ContactAddr(CustAddr, Kontakt);

das zu imitieren, was ihr ohnehin schon tut:
Schreibt in Kontakt.Vorname die Andrede dem Anredecode entsprechend vorher ein (Vorsicht wegen evtl. Textpufferüberlauf, hinten ggf. abschneiden oder auf das Anfügen verzichten).

Also in etwa so (Achtung, z.T. Pseudocode):
Code:
IF Anrede.GET(Kontakt.Anredecode) THEN BEGIN
  IF STRLEN(Anrede.Inhalt + ' ' + Kontakt.Vorname) <= MAXSTRLEN(Kontakt.Vorname) THEN
    Kontakt.Vorname := Anrede.Inhalt + ' ' + Kontakt.Vorname;

  // Dadurch, dass KEIN Kontakt.MODIFY ausgeführt wird, wird nur so getan
  // als wenn der Vorname erweitert wäre.
  // Eure tatsächlichen Daten bleiben davon unberührt.
END;
FormatAddr.ContactAddr(CustAddr, Kontakt);


Auf diese Weise umschifft ihr das Problem, dass ihr die Funktion ContactAddr aufgrund eurer Lizenzbeschränkung nicht ändern könnt.
Geändert werden lediglich die Reports.

Re: Anrede in Reports

2. März 2009 11:33

Hallo an alle,

erstmal vielen Dank für die schnellen und hilfreichen Antworten.

Ich bin überrascht, wie einem in diesem Forum schnell und kompetent geholfen wird.

Das ich etwas tricksen muss ist mir schon im Vorfeld eigentlich klar gewesen.

Der Tipp von Natalie kommt mir entgegen, da ich dann die Codeunit weiter verwenden kann.

Das ist mir wichtig, da die Codeunit die Adressen sprachabhängig formatiert, d.h. die Ausgabe der Adresse im Englischen ist anders als im Deutschen.

Nochmals vielen Dank und Grüße
Peter

PS: Ich bekomme keine Benachrichtigungs-Mail bei neuen Nachrichten. Vorher kommt das? Im Persönlichen Bereich habe ich bei "Benachrichtige mich über neue Nachrichten" ein "Ja" stehen!

Re: Anrede in Reports

7. Juli 2009 17:07

Hallo alle miteinander,

ich wärme den Thread mal wieder auf, da ich eine Frage zu den Anrede-Codes habe:

Wo kann man einstellen, welchen Anrede-Code Navision bei Erstellen einen neues Kontaktes voreinstellt?

Ich würde mich sehr freuen, wenn mir hier jemand einen Tipp geben könnte.

Vielen Dank im voraus.

Viele Grüße
Peter

Re: Anrede in Reports

7. Juli 2009 18:03

Hallo,

Die Standard-Anrede stellt man unter Marketing & Vertrieb / Einrichtung / Marketing & Vertrieb Einr.
dann auf dem Reiter Standards ein.

PS: noch zu der Ausgabe von Adressen im Adressfeld

Dies läußt sich sauber und durchgänig und somit auch mehrsprachig nur durch
eine individuelle Erweiterung lösen.
Ergänzung der Anredeart um "Adresse".

Re: Anrede in Reports

9. Juli 2009 08:17

Hallo Ingo,

vielen Dank für die super schnelle Antwort.

Hat sofort funktioniert :-D

Ich hatte schon selbst in dem Parameter-Wirrwarr gesucht, aber leider ohne Erfolg.

Dieses Forum ist einfach genial!

Viele Grüße
Peter

Re: Anrede in Reports

9. Juli 2009 09:23

Hallo Natalie,

danke für den Hinweis. Habe ich mir keine Gedanken gemacht...

Wird aber jetzt umgehend erledigt!

Viele Grüße
Peter