Anzeige und Bearbeitung von zusätzlichen Daten in der Verkaufsbelegerfassung
Es wurde an anderer Stelle bereits erwähnt, dass das Beispiel Schritt für Schritt erweitert wird. Daher können sich auch Datenbankänderungen ergeben. Sollten Sie den letzten Stand aus dem Eintrag der Wissensdatenbank verwenden und wollen Ihre Daten nicht verlieren, dann führen Sie bitte folgende Datenbankänderung durch: ALTER TABLE BPKVKBelegePositionenMitarbeiter ADD BelID INTEGER NOT NULL DEFAULT 0
Im übergeordneten Kapitel sind die verschiedene Möglichkeiten der Integration beschrieben. Wir werden nicht alle Möglichkeiten benötigten. Die Platzierung von Feldgruppen hängt von der Eigenschaft "Ebene" ab. Einzelne Felder werden immer in einer bestehenden Feldgruppe hinten angehängt. Bei benutzerdefinierten Feldern kann die Position gesetzt werden. In einer 1:N-Beziehung können Felder durch Eingabe von "Zeilennummer" = "1" und "Spaltennummer" > "0" im Grid platziert werden. Eigene Felder können also nicht beliebig platziert werden. Letztendlich können natürlich die Felder auch durch die Konfiguration an die gewünschte Stelle verschoben werden.
Beim ersten Punkt unseres Beispiels sollen wir die Projektsteuerung integrieren. Da die Projektsteuerung direkt von der Zuordnung eines Projektes abhängt, platzieren wir es in der Standard-Feldgruppe "Beleginformation". Die Projektsteuerung ("SteuerungId") soll pro Beleg gespeichert und bei Belegübernahmen auch mit übernommen werden. Daher verwenden wir dafür ein benutzerdefiniertes Feld. Laut Beschreibung der Anforderung (Beschreibung des UIs und Funktionen) sollen bei Hinterlegung/ Wechsel des Projektes/ der Projektsteuerung diverse Validierungen und gegebenenfalls Meldungen (Messagebox, keine Meldung im Fehlerstack) erfolgen. Dafür benötigen wir neue Felder (Status Messagebox, Felder für Daten vor der Änderung, neu ermittelte Daten). Die Integration erfolgt wie in den Stammdaten mit der Eigenschaft "Anhängen an ...".
Beispiel Projektsteuerung
- Anlage des benutzerdefinierten Feldes "BPKProjektsteuerung"
- "Beschreibung" = "Projektsteuerung"
- "Typ" = "Zahl (Long)"
- "Standardwert" = "0"
Folgende Metadaten sind anzulegen (Gruppenname in allen Bereichen "Belegerfassung"):
- Anlage der Datenstruktur "strVKBelege"
- "Anhängen an Datenstruktur der Partner-Kennung" = "Sage.Wawi"
- Anlage des Datenstrukturfeldes "KHKVKBelege_USER_BPKProjektsteuerung"
- "Feld-Attribute anhängen?" aktivieren
- "Datentyp" = "Schlüssel 1 einer Datenklasse"
- "Datenklasse" = "clsBPKProjektsteuerung.<ihre_partnerid>.<ihre_loesungid>"
- Anlage des Datenstrukturfeldes "BPKProjektsteuerungMatchcode"
- "Datentyp" = "Matchcode für Schlüssel 1 einer Datenklasse"
- "Datenklasse" = "clsBPKProjektsteuerung.<ihre_partnerid>.<ihre_loesungid>"
- "Datenklassen-Schlüsselfeld" = "KHKVKBelege_USER_BPKProjektsteuerung"
- Anlage des Datenstrukturfeldes "BPKProjektsteuerungSteuerungIdOld"
- "Datentyp" = "Integer"
- "Schreibschutz?" aktivieren
- Anlage des Datenstrukturfeldes "BPKProjektsteuerungSteuerungIdNew"
- "Datentyp" = "Integer"
- "Schreibschutz?" aktivieren
- Anlage des Datenstrukturfeldes "BPKMessageStatus"
- "Datentyp" = "Integer"
- "Schreibschutz?" aktivieren
- Anlage des Datenstrukturfeldes "BPKProjektOld"
- "Schreibschutz?" aktivieren
- Anlage des Daten-Edit-Elementes "ediVKBelegerfassung"
- "Anhängen an Daten-Edit-Element der Partner-Kennung" = "Sage.Wawi"
- Anlage der Daten-Edit-Element-Registerkarte "Belegkopf"
- "Feld-Attribute anhängen?" aktivieren
- Anlage der Daten-Edit-Element-Feldgruppe "Beleginformation"
- "Feld-Attribute anhängen?" aktivieren
- Anlage des Daten-Edit-Element-Feldes "KHKVKBelege_USER_BPKProjektsteuerung"
- "Feld-Attribute anhängen?" aktivieren
- "Position" = "9"
- Anlage des Daten-Edit-Element-Feldes "BPKProjektsteuerungMatchcode"
- "Position" = "0"
- "Sichtbarkeit" = "Versteckt"
- Anlage des Daten-Edit-Element-Feldes "BPKProjektsteuerungSteuerungIdOld"
- "Position" = "0"
- "Sichtbarkeit" = "Versteckt"
- Anlage des Daten-Edit-Element-Feldes "BPKProjektsteuerungSteuerungIdNew"
- "Position" = "0"
- "Sichtbarkeit" = "Versteckt"
- Anlage des Daten-Edit-Element-Feldes "BPKMessageStatus"
- "Position" = "0"
- "Sichtbarkeit" = "Versteckt"
- Anlage des Daten-Edit-Element-Feldes "BPKProjektOld"
- "Position" = "0"
- "Sichtbarkeit" = "Versteckt"
Damit haben wir die Metadaten für die Integration in die Belegerfassung des Verkaufes angelegt. Es folgt die Validierung laut Anforderung. Neben der Validierung wollen wir für den Anwender auch die Eingabe optimieren. Daher setzen wir bei der Suche der Projektsteuerung den Filter auf das gewählte Projekt (laut Definition des Beispiels gibt es eine 1:1-Beziehung zwischen Projekt und Projektsteuerung). Dafür verwenden wir das Ereignis "Vor Suche" des Daten-Edit-Feldes "KHKVKBelege_USER_BPKProjektsteuerung":
Zeile | Befehl | Parameter 1 | Parameter 2 |
---|---|---|---|
1 | FestlegenAdhocFilterSuche | Projekt | [VKProjektnummerErfassung] |
Die Anzeige einer Datenklasse wird auch durch den "Schlüssel für Formatierung" definiert. Wird bei der Definition der Datenklasse die Eigenschaft "Datentyp Schlüssel 1" = "TAN" gesetzt, dann kann kein Schlüssel für die Formatierung angegeben werden. Daher wird bei einem (laut Datenklasse) ungültigen Wert (SteuerungId = 0) dieser auch angezeigt, da kein Matchcode ermittelt werden kann. In diesem Fall übertragen wir in den DataContainer ein Leerstring (Codierung).
Bevor wir die Validierungsfälle, die eine Anwendereingabe bedingen als Makros hinterlegen, müssen wir die Bedingungen laut den Anforderungen codieren und die verwendeten DCMs unter "Erweiterungen/ Ereignisse" (oder in der OL.DCM) hinterlegen.
Hinweis für Developer Partner
WDB-Eintrag 203334:
Dokument "Zusatzdokumentation zum Wiki für Developer Partner", Kapitel 2.1 MacroProcessBase
Anhang ADID.Projektsteuerung.rar
Dateien/Klassen VKBelegerfassungProjektAfterUpdate, VKBelegerfassungProjektsteuerungAfterUpdate, BelegLoad, BelegProxyBelegEnable, BelegProxyBelegValidateSave, BelegProxyBelegToConatiner, BelegProxyContainerToBeleg
Laut Anforderung und Codierung sollen Messageboxen und Hinweise unter bestimmten Bedingungen ausgegeben werden. Diese legen wir zunächst an.
Strings:
Name | ID | Wert |
---|---|---|
MeldungVKBelegerfassung | 0 | Die gewählte Projektsteuerung passt nicht zum Projekt. Die Änderung wurde verworfen. |
MeldungVKBelegerfassung | 1 | Das Projekt wurde gewechselt. Es wurde keine gültige Projektsteuerung gefunden. Die zugeordnete Projektsteuerung wurde gelöscht. |
Meldungen:
- "Name" = "BelegerfassungProjektsteuerungLoeschen"
- "Titel" = "Projektsteuerung"
- "Meldungstext" = "Es sind bereits Termine erfasst worden.(Zeilenumbruch)Wollen Sie wirklich die Zurodnung der Projektsteuerung aufheben?"
- "Typ" = "Konfirmation mit drei Schaltflächen"
- "Standard-Schaltfläche" = "1"
- "mit Abbrechen-Schaltfläche?" deaktivieren
- "Schaltflächen-Text 1" = "Ja"
- "Schaltflächen-Text 2" = "Nein"
- "Name" = "BelegerfassungProjektsteuerungZuordnen"
- "Titel" = "Projektsteuerung"
- "Meldungstext" = "Soll die Projektsteuerung '{0}' zugeordnet werden?"
- "Typ" = "Konfirmation mit drei Schaltflächen"
- "Standard-Schaltfläche" = "1"
- "mit Abbrechen-Schaltfläche?" deaktivieren
- "Schaltflächen-Text 1" = "Ja"
- "Schaltflächen-Text 2" = "Nein"
- "Name" = "BelegerfassungProjektsteuerungNeuZuordnen"
- "Titel" = "Projektsteuerung"
- "Meldungstext" = "Das Projekt wurde gewechselt. Die zugeordnete Projektsteuerung ist nicht mehr gültig.(Zeilenumbruch)Soll die Projektsteuerung '{0}' zugeordnet werden?"
- "Typ" = "Konfirmation mit drei Schaltflächen"
- "Standard-Schaltfläche" = "1"
- "mit Abbrechen-Schaltfläche?" deaktivieren
- "Schaltflächen-Text 1" = "Ja"
- "Schaltflächen-Text 2" = "Nein"
Damit können wir die Makros hinterlegen. Da Interaktionen mit dem Anwender gefordert sind (Messageboxen), verwenden wir das clientseitige Ereignis "Nach Aktualisierung" des Feldes "KHKVKBelege_USER_BPKProjektsteuerung" (PartnerID und LösungID entsprechend Ihren Daten):
Zeile | Befehl | Parameter 1 | Parameter 2 | Parameter 3 |
---|---|---|---|---|
1 | FestlegenFeldWert | [BPKMessageStatus] | 0 | |
2 | AufrufenDll | Sage.ADID.Projektsteuerung.RealTimeData.dll | Sagede.ADID.Projektsteuerung.RealTimeData.Macros.VKBelegerfassungProjektsteuerungAfterUpdate | [BPKProjektsteuerungSteuerungIdOld];[KHKVKBelege_USER_BPKProjektsteuerung] |
3 | #Kommentar | Zuordnung gelöscht, Abfrage ob wirklich gelöscht werden soll, falls Termine vorhanden sind. | ||
4 | Wenn | [BPKMessageStatus] = 1 | ||
5 | Meldungsfeld | 100065830.ADID_Projektsteuerung.BelegerfassungProjektsteuerungLoeschen | ||
6 | Wenn | [_DialogResult] = 1 | ||
7 | FestlegenFeldWert | BPKProjektsteuerungSteuerungIdOld | [KHKVKBelege_USER_BPKProjektsteuerung] | |
8 | FestlegenFeldWert | BPKProjektsteuerungMatchcode | "" | False |
9 | Sonst | |||
10 | FestlegenFeldWert | KHKVKBelege_USER_BPKProjektsteuerung | [BPKProjektsteuerungSteuerungIdOld] | False |
11 | EndeWenn | |||
12 | #Kommentar | Zuordnung gewechselt -> 1:1-Beziehung -> geht nicht | ||
13 | SonstWenn | [BPKMessageStatus] = 2 | ||
14 | HinweisMelden | 100065830.ADID_Projektsteuerung.MeldungVKBelegerfassung.0 | ||
15 | Sonst | |||
16 | FestlegenFeldWert | BPKProjektsteuerungSteuerungIdOld | [KHKVKBelege_USER_BPKProjektsteuerung] | |
17 | EndeWenn | |||
18 | FestlegenFeldWert | [BPKMessageStatus] | 0 |
Da wir nicht nur die Zuordnung der Projektsteuerung, sondern auch die des Projektes validieren, bzw. nach Änderungen des Projektes auch Meldungen anzeigen sollen, benötigen wir auch das Daten-Edit-Element-Feld des Standards.
- Anlage des Daten-Edit-Element-Feldes "VKProjektnummerErfassung" im angehängten Daten-Edit-Element "ediVKBelegerfassung/ Belegkopf/ Beleginformation"
- "Feld-Attribute anhängen?" aktivieren
Im Ereignis "Nach Aktualisierung" hinterlegen wir folgende Makros:
Zeile | Befehl | Parameter 1 | Parameter 2 | Parameter 3 |
---|---|---|---|---|
1 | FestlegenFeldWert | [BPKMessageStatus] | 0 | |
2 | AufrufenDll | Sage.ADID.Projektsteuerung.RealTimeData.dll | Sagede.ADID.Projektsteuerung.RealTimeData.Macros.VKBelegerfassungProjektAfterUpdate | [Handle];[VKProjektnummerErfassung];[BPKProjektOld];[KHKVKBelege_USER_BPKProjektsteuerung] |
3 | #Kommentar | Abfrage, ob passende Projektsteuerung zugeordnet werden soll (Neuanlage) | ||
4 | Wenn | [BPKMessageStatus] = 1 | ||
5 | Meldungsfeld | 100065830.ADID_Projektsteuerung.BelegerfassungProjektsteuerungZuordnen | [_BPKProjektsteuerungMatchcode] | |
6 | Wenn | [_DialogResult] = 1 | ||
7 | FestlegenFeldWert | KHKVKBelege_USER_BPKProjektsteuerung | [BPKProjektsteuerungSteuerungIdNew] | |
8 | FestlegenFeldWert | BPKProjektsteuerungMatchcode | [_BPKProjektsteuerungMatchcode] | False |
9 | FestlegenFeldWert | BPKProjektOld | [[VKProjektnummerErfassung]] | |
10 | Sonst | |||
11 | FestlegenFeldWert | BPKProjektsteuerungSteuerungIdNew | 0 | |
12 | FestlegenFeldWert | BPKProjektsteuerungMatchcode | "" | |
13 | EndeWenn | |||
14 | #Kommentar | Abfrage, ob passende Projektsteuerung zugeordnet werden soll (Projektwechsel) | ||
15 | SonstWenn | [BPKMessageStatus] = 2 | ||
16 | Meldungsfeld | 100065830.ADID_Projektsteuerung.BelegerfassungProjektsteuerungNeuZuordnen | [_BPKProjektsteuerungMatchcode] | |
17 | Wenn | [_DialogResult] = 1 | ||
18 | FestlegenFeldWert | KHKVKBelege_USER_BPKProjektsteuerung | [BPKProjektsteuerungSteuerungIdNew] | |
19 | FestlegenFeldWert | BPKProjektsteuerungMatchcode | [_BPKProjektsteuerungMatchcode] | False |
20 | FestlegenFeldWert | BPKProjektOld | [VKProjektnummerErfassung] | |
21 | Sonst | |||
22 | FestlegenFeldWert | BPKProjektsteuerungSteuerungIdNew | 0 | |
23 | FestlegenFeldWert | BPKProjektsteuerungMatchcode | "" | |
24 | EndeWenn | |||
25 | #Kommentar | Projektwechsel, aber keine passende Projektsteuerung gefunden | ||
26 | SonstWenn | [BPKMessageStatus] = 3 | ||
27 | HinweisMelden | 100065830.ADID_Projektsteuerung.MeldungVKBelegerfassung.1 | ||
28 | FestlegenFeldWert | KHKVKBelege_USER_BPKProjektsteuerung | 0 | False |
29 | FestlegenFeldWert | BPKProjektsteuerungMatchcode | "" | False |
30 | EndeWenn | |||
31 | FestlegenFeldWert | BPKProjektOld | [VKProjektnummerErfassung] | |
32 | FestlegenFeldWert | [BPKMessageStatus] | 0 |
Beispiel Mitarbeiter pro Position
Dadurch das pro Position N-Mitarbeiter erfasst/geändert werden können, haben wir auf dem Beleg bezogen eine 1:N:M-Beziehung. Und genau so, wie wir es in den Stammdaten gelöst haben, lösen wir es in der Erfassung. Aber auch mit diesen Daten gilt: für den Transfer zwischen Client und Server ist selbst zu sorgen (es muss codiert werden). Aufgrund der Tatsache, dass nach wie vor Geschäftsprozesse in Access ablaufen und damit verbunden durch die Interop-Schicht ein COM-Objekt erzeugt wird, kann die Objektklasse ParameterBag keine Collection nach COM durchreichen. Das wiederum bedeutet, dass wir die N-Mitarbeiter als flache Struktur in die DCMProperties der Belegklasse eintragen müssen. Um uns das Lesen aus den DCMProperties zu erleichtern, verwenden wir eine Hilfsvariable (BPKZusatzdatenCount = Collection.Count) auf Positionsebene. Der Aufruf der 1:N:M-Beziehung erfolgt aus dem Kontextmenü der Position.
Folgende Metadaten sind für die M-Beziehung anzulegen:
- Anlage der Datenstruktur "strBPKVKBelegPositionMitarbeiter"
- Anlage des Datenstrukturfeldes "BelPosID"
- "Datentyp" = "Integer"
- Anlage des Datenstrukturfeldes "MitarbeiterId"
- "Datentyp" = "Integer"
- Anlage des Datenstrukturfeldes "BelID"
- "Datentyp" = "Integer"
- Anlage des Datenstrukturfeldes "Mitarbeiter"
- "Datentyp" = "Schlüssel 1 einer Datenklasse"
- "Datenklasse" = "clsMitarbeiter.Sage.System"
- Anlage des Datenstrukturfeldes "Mitarbeitermatchcode"
- "Datentyp" = "Matchcode für Schlüssel 1 einer Datenklasse"
- "Datenklasse" = "clsMitarbeiter.Sage.System"
- "Datenklassen-Schlüsselfeld" = "Mitarbeiter"
- Anlage des Datenstrukturfeldes "DatumVon"
- "Datentyp" = "Date"
- Anlage des Datenstrukturfeldes "DatumBis"
- "Datentyp" = "Date"
- Anlage des Datenstrukturfeldes "BelPosID"
- Anlage der Datenstruktur "strVKBelegPosition"
- "Anhängen an Datenstruktur der Partner-Kennung" = "Sage.Wawi"
- "Detail-Datenstrukturen" = "Virtueller Feldname = BPKMitarbeiter, Detail-Datenstruktur-Referenz = strBPKVKBelegPositionMitarbeiter.<ihre_partnerid>.<ihre_loesungid>"
- Anlage des Kontextmenüs "VKBelegPositionMitarbeiter"
- Anlage des Kontextmenüeintrags "Loeschen"
- "Funktionstitel" = "Löschen"
- "Funktionskurztitel" = "Löschen"
- "Position in Sortierung" = "1"
- "Schaltflächenposition" = "1"
- "Funktionsaufruf" = "DatensatzLoeschen.Sage.System"
- "für Wawi?" aktivieren
- Anlage des Kontextmenüeintrags "Loeschen"
- Anlage des Multi-Daten-Edit-Elementes "mdeBPKVKBelegPositionMitarbeiter"
- "Titel" = "Mitarbeiter"
- "Datenstruktur" = "strBPKVKBelegPositionMitarbeiter.<ihre_partnerid>.<ihre_loesungid>"
- "Kontextmenü" = "VKBelegPositionMitarbeiter.<ihre_partnerid>.<ihre_loesungid>"
- Anlage der Vorlage "Standard" und Import der Felder
- "BelPosID", "MitarbeiterId", und "BelID"
- "Sichtbarkeit" = "Versteckt"
- Anlage des Daten-Edit-Elementes "ediBPKVKBelegPositionMitarbeiter"
- "Titel" = "Mitarbeiter"
- "Datenstruktur" = "strBPKVKBelegPositionMitarbeiter.<ihre_partnerid>.<ihre_loesungid>"
- "Primärschlüssel 1 für Datensatz" = "1"
- "Primärschlüssel 2 für Datensatz" = "2"
- Anlage des Daten-Edit-Element-Registers "Mitarbeiter"
- Anlage der Daten-Edit-Element-Feldgruppe "Mitarbeiter"
- Anlage des Daten-Edit-Element-Feldes "BPKMitarbeiter"
- "Typ" = "Unterelement"
- "Unterelement" = "mdeBPKVKBelegPositionMitarbeiter.<ihre_partnerid>.<ihre_loesungid>"
- "Zeilenanzahl" = "4"
- Anlage des Daten-Edit-Element-Feldes "BPKMitarbeiter"
- Anlage der Daten-Edit-Element-Feldgruppe "Mitarbeiter"
- Anlage des Kontextmenüs "VKBelegPositionenErfassung"
- "Anhängen an Kontextmenü der Partner-Kennung" = "Sage.Wawi"
- Anlage des Kontextmenüeintrags "MitarbeiterBearbeiten"
- "Funktionstitel" = "Mitarbeiter bearbeiten"
- "Funktionskurztitel" = "Mitarbeiter bearbeiten"
- "Position in Sortierung" = "1"
- "Schaltflächenposition" = "1"
- "Funktionsaufruf" = "DatensatzBearbeiten.Sage.System"
- "Child-Element" = "ediBPKVKBelegPositionMitarbeiter.<ihre_partnerid>.<ihre_loesungid>"
- "für Wawi?" aktivieren
Folgende Metadaten sind für die Hilfsvariable anzulegen:
- Anlage des Datenstrukturfeldes "BPKZusatzdatenCount" in der angehängten Datenstruktur "strVKBelegPosition"
- "Datentyp" = "Integer"
- Anlage des Multi-Daten-Edit-Elementes "mdeVKBelegPositionen"
- "Anhängen an Multi-Daten-Edit-Element der Partner-Kennung" = "Sage.Wawi"
- Anlage der Vorlage "Standard"
- "Feld-Attribute anhängen?" aktivieren
- Anlage des Multi-Daten-Edit-Element-Feldes "BPKZusatzdatenCount"
- "Sichtbarkeit" = "Versteckt"
- Anlage des Daten-Edit-Element-Registers "Positionen" in dem angehängten Daten-Edit-Element "ediVKBelegerfassung"
- "Feld-Attribute anhängen?" aktivieren
- Anlage der Daten-Edit-Element-Feldgruppe "PositionSonstiges"
- "Feld-Attribute anhängen?" aktivieren
- Anlage des Daten-Edit-Element-Feldes "BPKZusatzdatenCount"
- "Sichtbarkeit" = "Versteckt"
Damit sind die Metadaten für dieses Beispiel (1:N:M-Beziehung) angelegt. der Datentransfer, Laden und Speichern der Daten ist Aufgabe des durch Schnittstellen erweiterten Geschäftsprozesses.
Hinweis für Developer Partner
WDB-Eintrag 203334:
Anhang ADID.Projektsteuerung.rar
Dateien/Klassen Sagede.ADID.VKBelegPosition.Mitarbeiter, BelegDelete, BelegPositionCloneOrCopy, BelegPositionDelete, BelegPositionLoad, BelegPositionSave, BelegProxyAfterTransform, BelegPositionProxyBelegPositionToContainerPosition, BelegPositionProxyContainerPositionToBelegPosition
Beispiel Kalkulation Projektsteuerung pro Position
In dem ersten Beispiel haben wir zusätzliche Felder in eine Erfassung integriert. Im Zweiten Beispiel haben wir eine weitere Beziehung integriert. Das dritte Beispiel ändert Daten eines Standardfeldes. Hier gäbe es zwei Varianten:
- Die Änderung erfolgt durch Daten, die entweder bereits in der Erfassung vorhanden, oder gelesen werden können
- Die Änderung erfolgt durch Daten, die der Anwender eingeben kann
Der ersten Fall wäre durch einem Kontextmenüeintrag und einen Daten-Service lösbar. Der zweite Fall ist zwar auch lösbar, das Formular für die Anwendereingaben können aber nicht via Metadaten definiert werden. Hierfür gäbe es folgende Ansätze:
- Man verwendet ein Selektionselement
- Hier sind nur einfache Elemente möglich
- Es ist nicht sicher, ob dieser Elementtyp für Zusatzdialoge erhalten bleibt. Bestenfalls braucht man es nur umbenennen, wobei dann gegebenenfalls Berechtigungen nachzutragen wären. Schlimmstenfalls müssten die Metadaten erneut angelegt/getestet werden.
- Man verwendet einen Aufruf eines lokalen .Net-Dll-Applications-Service
- Das Formular wäre zu programmieren
- Man kann bereits eine Trennung von Client- und Servercode vornehmen
- Metadaten sind anzulegen, Test wäre zu wiederholen, wenn die Zusatzdialoge via Metadaten definiert werden können
- Man verwendet ein Access-Formular
- Man muss ein AddIn zur Verfügung stellen
- Man kann eine Lösung auf alter Technologie weiter verwenden (Einstiegspunkt im AddIn wäre zu ändern, eventuell Unterscheidung alte/neue Technologie im Formular)
- Metadaten sind anzulegen, Test wäre zu wiederholen, wenn die Zusatzdialoge via Metadaten definiert werden können
Da laut Anforderung die Mitarbeiter in einer Liste angezeigt werden sollen, fällt die Verwendung eines Selektionselementes aus. Für die anderen beiden Fälle gibt es Beispiele, so dass wir aus diesem Grund nichts präferieren müssten. Da wir für andere Beispiele bereits ein AddIn erstellt haben, verwenden wir für diesen Fall ein Access-Formular.
Die Programmierung des Formulars ist auf das Mindeste beschränkt.
Hinweis für Developer Partner
WDB-Eintrag 203334:
Anhang OLAppDesignerImDetail81.rar
Was in den Metadaten anzulegen ist, ist ein Kontextmenüeintrag. Da es um Kalkulation geht und im Standard es einen Unterordner für Kalkulationsdialog gibt, wollen wir uns auch in diesen Unterordner anhängen. Dazu müssen wir auch den Eintrag des Elternmenüs in userer Lösung anlegen. Wir legen folgende Metadaten an:
- Kopieren des Menüeintrags "Kalkulation" aus dem Kontextmenü "VKBelegPositionenErfassung.Sage.Wawi" und einfügen in das angehängte Kontextmenü "VKBelegPositionenErfassung.<ihre_partnerid>.<ihre_loesungid>"
- "Menüeintrag anhängen?" aktivieren
- "Position in Sortierung" = "2"
- Anlage des Kontextmenüeintrags "ProjektsteuerungPreiskalkulation"im angehängten Kontextmenü "VKBelegPositionenErfassung.<ihre_partnerid>.<ihre_loesungid>"
- "Funktionstitel" = "Projektsteuerung Preiskalkulation"
- "Funktionskurztitel" = "Preiskalkulation (PS)"
- "Elternmenü" = "Kalkulation"
- "Menüeintrag anhängen?" aktivieren
- "Position in Sortierung" = "3"
- "Festlegung Aktivierung durch Feld" = "[BPKZusatzdatenCount] > 0"
- "Funktionsaufruf" = "gsAppServiceCall.Sage.System"
- "Parameter 1 Funktionsaufruf" = "OLAppDesignerImDetail:gEntryErfassung"
- "Parameter 2 Funktionsaufruf" = "Vollstaendig : Ersetzen"
- "Parameter 3 Funktionsaufruf" = ""Mode:=2""
- "für Wawi?" aktivieren
Damit haben wir die Kalkulation mit den aktuellen Möglichkeiten in die Belegerfassung Verkauf integriert.