Anleitung

Als erstes legst du über den ObjectDesigner eine neue Tabelle mit der Bezeichnung „Debitoren Artikel VK-Preis” an. Diese Tabelle ist identisch aufgebaut wie die Tabelle „Artikel VK-Preis”. Einzige Ausnahme ist das Feld „Debitorennr.” mit einer Relation auf die Tabelle „Debitor”, das das Feld „Preisgruppencode” ersetzt.

Die neue Tabelle 50000 Debitoren Artikel VK-Preis - Table Designer

Nach der Speicherung und Kompilierung der neuen Tabelle musst du noch ein passendes Formular entwerfen. Die nachfolgende Abbildung zeigt das neue Formular welches du mit der ID: 50000 und der Bezeichnung „Debitoren Artikel VK-Preis” speicherst und kompilierst.

Die neue Form 50000 Debitor Artikel VK-Preis - Formular Designer

Da der Benutzer später dieses Formular über die Debitorenkarte öffnet können wir die Eigenschaft „Visible” der Spalte „Debitorennr.” auf „False” setzen. Somit ist es standardmäßig ausgeblendet und kann ggf. durch den Benutzer wieder eingeblendet werden.

Wie gerade erwähnt soll das neue Formular über die Debitorenkarte und dann über den Verkaufsbutton geöffnet werden können. Dazu öffnest du die Debitorenkarten im Design-Modus und fügst dem Button einen neuen Menüeintrag mit der Bezeichnung „Artikel VK-Preis” hinzu. Die Eigenschaft „RunObject” geben wir den Wert „Form Debitor Artikel VK-Preis” und die Eigenschaft „RunFormLink” geben wir „Debitorennr.=FIELD(Nr.)”. Somit ist sichergestellt, dass sich das neue Formular öffnet und wir nur die VK-Preise des gewählten Debitors sehen. Jetzt können die neuen Artikel VK-Preise für unsere Debitoren gepflegt werden.

Nachdem jetzt die Sonderpreise gepflegt werden können, musst du dich darum kümmern, dass diese auch bei der Preisfindung berücksichtigt werden. In der Tabelle „Verkaufszeile” existiert dazu die Funktion „VKPreisAktual()”, die die Ermittlung des VK-Preises durchführt. Diese Funktion ist nun anzupassen.

Um am Navision-Standard sowenig wie möglich zu ändern, müssen die folgenden - in fett markierten - Codezeilen in die Funktion „VKPreisAktual()” hinzugefügt werden.

Da wir für die neuprogrammierte Prüfung die neue Tabelle „Debitor Artikel VK-Preis” benötigen, legen wir eine globale Record-Variable mit der Bezeichnung „DebitorArtikelVKPreis” an. Diese Record-Variable hat eine Relation auf die neue Tabelle.

Art::Artikel:
BEGIN
	ArtVKPreis.INIT;
	ArtVKPreis."Artikelnr." := "Nr.";
	ArtVKPreis.Preisgruppencode := Preisgruppencode;
	ArtVKPreis.Währungscode := VerkKopf.Währungscode;
	ArtVKPreis.Einheitencode := Einheitencode;
	IF Belegart IN [Belegart::Angebot,Belegart::Auftrag] THEN
		ArtVKPreis.Startdatum := VerkKopf.Auftragsdatum
	ELSE
		ArtVKPreis.Startdatum := VerkKopf.Buchungsdatum;
	WITH DebitorArtikelVKPreis DO BEGIN
		SETCURRENTKEY ( "Artikelnr.","Debitorennr.",Einheitencode,Währungscode,Startdatum );
		SETRANGE ( "Artikelnr.", ArtVKPreis."Artikelnr." );
		SETRANGE ( "Debitorennr.", Rec."Verk. an Deb.-Nr." );
		SETFILTER ( Einheitencode, '%1|%2', ArtVKPreis.Einheitencode, '' );
		SETFILTER ( Währungscode, '%1|%2', ArtVKPreis.Währungscode, '' );
		SETRANGE ( Startdatum, 0D, ArtVKPreis.Startdatum );
		IF DebitorArtikelVKPreis.FIND ( '+' ) THEN BEGIN
			ArtVKPreis."VK-Preis" := "VK-Preis";
			ArtVKPreis."VK-Preis inkl. MWSt" := "VK-Preis inkl. MWSt";
			ArtVKPreis."MWSt Geschäftsbuch.-Gr.(Preis)" := "MWSt Geschäftsbuch.-Gr.(Preis)";
			ArtVKPreis."Mengenrabatt zulassen" := "Mengenrabatt zulassen";
			ArtVKPreis."Deb.-/Artikelrab. zulassen" := "Deb.-/Artikelrab. zulassen";
			ArtVKPreis."Rech.-Rabatt zulassen" := "Rech.-Rabatt zulassen";
		END;
	END;
	"VK-Preis" := ArtVKPreis."VK-Preis";
	Artikel."MWSt Geschäftsbuch.-Gr.(Preis)" := ArtVKPreis."MWSt
Geschäftsbuch.-Gr.(Preis)";
	"Mengenrabatt zulassen" := ArtVKPreis."Mengenrabatt zulassen";
	"Rech.-Rabatt zulassen" := ArtVKPreis."Rech.-Rabatt zulassen";
	IF ArtVKPreis."Deb.-/Artikelrab. zulassen" THEN BEGIN
		IF DebArtRab.GET(VerkKopf."Deb.-/Artikelrabattgr.",Artikel."Deb.-/Artikelrabattgr.") THEN
			"Deb.-/Artikelrabatt %" := DebArtRab."Rabatt %";
	END ELSE
		"Deb.-/Artikelrabatt %" := 0;
	VKPreisInWähr := ArtVKPreis.Währungscode <> '';
	ArtVKPreisInklMWSt := ArtVKPreis."VK-Preis inkl. MWSt";
END;

Da wir für die neuprogrammierte Prüfung die neue Tabelle „Debitor Artikel VK-Preis” benötigen, legen wir eine globale Record-Variable mit der Bezeichnung „DebitorArtikelVKPreis” an. Diese Record-Variable hat eine Relation auf die neue Tabelle.