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.
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.
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.