Back to Sagegmbh

Anzeige und Bearbeitung von zusätzlichen Daten in der Verkaufsbelegerfassung

wiki-spaces-s1-pages-540901567-anzeige-plus-und-plus-bearbeitung-plus-von-plus-zus-plus-tzlichen-plus-daten-plus-in-plus-der-plus-verkaufsbelegerfassung.md

latest10.0 KB
Original Source

Anzeige und Bearbeitung von zusätzlichen Daten in der Verkaufsbelegerfassung

By Andreas Langmaack (Unlicensed)

Feb 12, 2019

8 min

Add a reaction

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"

Folgende Metadaten sind anzulegen (Gruppenname in allen Bereichen "Belegerfassung"):

  • Anlage der Datenstruktur "strVKBelege"

  • Anlage des Daten-Edit-Elementes "ediVKBelegerfassung"

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"

  • "Name" = "BelegerfassungProjektsteuerungZuordnen"

  • "Name" = "BelegerfassungProjektsteuerungNeuZuordnen"

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"

Im Ereignis "Nach Aktualisierung" hinterlegen wir folgende Makros:

|

Zeile

|

Befehl

|

Parameter 1

|

Parameter 2

|

Parameter 3

| | --- | --- | --- | --- | --- |

|

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

| |

Collapse action bar

View all comments

Open Details Panel

Create page

Open Rovo Chat

Add a comment

Add a reaction