wiki-spaces-s1-pages-123863047-erweiterungen-plus-der-plus-erfassung-plus-und-plus-oder-plus-der-plus-bearbeitung-plus-eines-plus-beleges.md
By Andreas Langmaack (Unlicensed)
Dec 10, 2018
4 min
Add a reaction
Es soll das Feld Hersteller-Artikelnummer aus dem Artikelstamm pro Position in der Verkaufsbelegerfassung angezeigt werden.
Folgende Metadaten sind anzulegen:
Anlage der Datenstruktur „strVKBelegPosition“ mit „Anhängen an Datenstruktur der Partner-Kennung“ = „Sage.Wawi“
Anlage des Multi-Daten-Edit-Elements „mdeVKBelegPositionen“ mit „Anhängen an Multi-Data-Edit-Element der Partner-Kennung“ = „Sage.Wawi“
Anlage des Daten-Edit-Elements „ediVKBelegerfassung“ mit „Anhängen an Daten-Edit-Element der Partner-Kennung“ = „Sage.Wawi“
Für den Transfer zwischen Client und Server müssen diese DCMs verwendet werden:
VKBelegPositionProxyContainerPositionToBelegPosition
VKBelegPositionProxyBelegPositionToContainerPosition
Für das Bereitstellen der Daten bei Neuanlage einer Position muss diese DCM verwendet werden:
Mit der Verwendung der DCM der Beleg-Engine haben wir auch die clientseite Erzeugung von Positionen (Variantenmatrix, Zubehör) berücksichtigt.
Für das Bereitstellen der Daten für andere Aktionen müssen diese DCMs verwendet werden:
VKBelegLoad
VKBelegPositionClone
VKBelegPositionCopyValues
VKBelegProxyAfterTransform
VKBelegProxyAfterTransformVorgang
VKBelegPositionProxyPaste
Hinweis für Developer Partner
WDB-Eintrag 203334:
Anhang ADID.ZusatzDaten.Position.rar/ ADID.ZusatzDaten.Position81.rar
Es soll für eine selektierte Position ein Etikettendruck aus dem Kontextmenü der Position möglich sein. Die Textfelder des Etiketts sollen in Belegsprache (gegebenenfalls auch übersetzt) gedruckt werden. Der Etikettendruck darf nur für gespeicherte Lieferbelege freigeschaltet werden.
Für die Bereitstellung der Daten verwenden wir eine temporäre Tabelle. Die SQL-Anweisung für die Anlage ist wie folgt:
CREATE TABLE "tBPKPrintEtiketten" ( "ConnID" INTEGER NOT NULL DEFAULT 0, "Kto" VARCHAR(20) NULL, "Matchcode" VARCHAR(50) NULL, "Belegnummer" VARCHAR(20) NULL, "Position" VARCHAR(50) NULL, "Artikelnummer" VARCHAR(31) NULL, "Bezeichnung1" VARCHAR(50) NULL, "Menge" MONEY NULL DEFAULT 0, "Mengeneinheit" VARCHAR(5) NULL, CONSTRAINT PK_tBPKPrintEtiketten PRIMARY KEY CLUSTERED ("ConnID") ) GO INSERT INTO USysCatalog ([Table], Revision) VALUES ('tBPKPrintEtiketten', 1) GO
Da wir die ConnectionID als Schlüssel verwenden, werden wir die Daten serverseitig ermitteln, wir verwenden also einen Gechäftsprozess.
Wir leiten von BusinessProcessBase ab und codieren die Ermittlung der Daten. Um die Daten ermitteln zu können brauchen wir die Handles vom Beleg und der Position. Um den Druck übersetzen zu können, brauchen wir die Belegsprache. Alle drei Daten sind in der Erfassung bekannt und wir werden sie als Parameter "BelID", "BelPosID" und "rpSprache" (wird für die Übersetzung genauso benötigt) übergeben.
Wir legen folgende Metadaten an:
Anlage des Geschäftsprozess "Etikettendruck"
Anlage der Datenquelle "dtsEtiketten". Wir erstellen die Datenquelle mit dem Assistenten "Tabelle importieren" (tBPKPrintEtiketten)
Sollen Parameter in einem Bericht und/oder dessen Geschäftsprozess verwendet werden, so sind diese als Datenstrukturfelder des Selektionsdialoges des Berichtes anzulegen.
Anlage der Datenstruktur "strEtiketten"
Anlage des Selektionselementes "selEitketten"
Damit haben wir die Metadaten angelegt, die wir für die Berichtserstellung benötigen. Der Bericht soll unabhängig von der Lokalisierung auch in Fremdsprache (im Beispiel Belegsprache) gedruckt werden können. Die Übersetzungen sollen dazu aus dem Wörterbuch (KHKDictonary) gelesen werden.
Soll ein Bericht Übersetzungen einer Fremdsprache aus KHKDictonary lesen und drucken, dann müssen drei Punkte gegeben sein.
In den Metadaten des Berichtes muss hinterlegt sein
Im Bericht muss der NamedParameter "rpSprache" vorhanden und mit einer gültigen Sprache hinterlegt sein
Anlage des Berichtes "rptEtiketten"
Der Bericht selber enthält ein Datenband, in dem die Textfelder (Label und Inhalt) gedruckt werden.
Open
Der Bericht soll aus dem Kontextmenü der Positionen aufgerufen werden und aufgrund von bestimmten Kriterien freigeschaltet sein. Das Freischalten steuern wir mit der Eigenschaft "Festlegung Aktivierung durch Feld" des Kontextmenüeintrages. Hier können auch Daten aus Feldern der Belegerfassung abgefragt werden. Stehen aber nicht alle Informationen zur Verfügung, dann muss eine serverseitige Prüfung erfolgen. Dazu benutzen wir ein eigenes boolsches Feld, welches serverseitig auf True/False gesetzt wird.
Wir legen folgende Metadaten an:
Anlage der Datenstruktur "strVKBelegPosition“ mit "Anhängen an Datenstruktur der Partner-Kennung“ = "Sage.Wawi“
Anlage des Multi-Daten-Edit-Elements "mdeVKBelegPositionen“ mit "Anhängen an Multi-Data-Edit-Element der Partner-Kennung“ = "Sage.Wawi“
Für die Ermittlung des Flags verwenden wir diese DCM:
Bleibt nur noch die Frage, wie kann man die Übersetzung abfragen. Die Übersetzung selbst, wird mit der Systemfunktion des Translationservice im Mandantenobjekt abgefragt. Da es eine Interaktion mit dem Anwender ist, muss die Funktion auf dem Client ausgeführt werden. Dafür verwenden wir diese DCM:
Die DCM wird auf dem Client ausgeführt und enthält auch alle NamedParameter (wir benötigen ja auf alle Fälle die Sprache). Wir hinterlegen die beiden Ereignissen in den Metadaten oder tragen Sie in die OL.DCM ein. Bei der Codierung der DCM "ReportBeforePrintRequest" verwenden wir dann auch die entsprechende Methode, um die Inhalte der Textfelder des Reportes zu erhalten.
Die Codierung erfolgte in Version 8.0. Da es in diesen Bereich keine Änderung gibt, kann es, was die Codierung angeht 1:1 in Version 8.1 implementiert werden.
Hinweis für Developer Partner
WDB-Eintrag 203334:
Anhang ADID.DruckInBelegsprache.rar
Wie oben erwähnt, werden die NamedParameter (Name und Inhalt) durch die Datenstrukturfelder des Selektionselementes an den Bericht übergeben. Nun gibt es neben den im Beispiel erwähnten Aufruf durch ein Makro noch zwei weitere Möglichkeiten einen Bericht aufzurufen.
Der Anwender gibt die Daten selber ein, oder man ermittelt im Makro "Beim Anzeigen" die Daten (z.B. für versteckte Felder).
Hierbei gibt es eine andere Möglichkeit, die Daten an das Selektionselement zu übergeben.
Hinweis für Developer Partner
WDB-Eintrag 203334:
Dokument "Zusatzdokumentation zum Wiki für Developer Partner", Übergabe NamedParameter an Bericht aus Access
Collapse action bar
View all comments
Open Details Panel
Create page
Open Rovo Chat
Add a comment
Add a reaction