Verwendung des SelectedObjects Objektes zur Auswahl Verarbeitung einer Zusatztabelle (z.B. Warenkorb)

Peter Brandt [Grutzeck Software GmbH]
17.12.2013 12:27

Beschreibung:
In den vorherigen AG-VIP SQL Versionen (vor 1.40.003) war das Umsetzen einer Verarbeitung von ausgewählten Einträgen wegen der Selektierung bzw. Markierung der Zeilen in einer Zusatztabelle sehr umständlich, da man eine extra Spalte einbinden musste, welche die Auswahl über einen "Ja" bzw. "Nein" Wert identifizierte.
Seit der AG-VIP SQL Version 1.40.003 kann man die Selektierung per Makro direkt abfragen.

Allgemein:
Der Artikel befasst sich mit einer im unteren Abschnitt angehängten Telefonverkauf Beispiel, welche es ermöglicht einen Warenkorb in AG-VIP SQL abzubilden und dabei die Selektionen über das neue Makro-Objektmodell abzufragen.

Import des Beispiels:
Zuerst die Adresstabellenstrukturen importieren und anschließend die Ansichten.
Danach die Artikelliste in die Adresstabelle "Telefonverkauf Artikel" importieren.


Das Makro (Auf der "Telefonverkauf Bestellung mit SelectedObjects" in der Schaltfläche "In Warenkorb übernehmen" hinterlegt):
Option Explicit

' Zusatztabellen Objekt zum Auslesen erzeugen.
' Dabei ist zu beachten, dass über ActiveForm.Controls das Objekt erzeugt wird !
Dim oProducts
Set oProducts = Application.ActiveForm.Controls("Suchergebnis")

' Array der selektierten Objekte erstellen
Dim oSelItems
oSelItems = oProducts.SelectedObjects

' Analysieren ob überhaupt ein Eintrag ausgewählt wurde
If UBound(oSelItems)>=0 Then

' Zusatztabellen Objekt zum Eintragen der ausgelesenen Daten erzeugen
Dim oCart, oCartEntry
Set oCart = ActiveAddress.Relations("Warenkorb")

' Über alle ausgewählten Daten schleifen und übernehmen
Dim oProduct, strText
For Each oProduct in oSelItems
Set oCartEntry = oCart.Add
oCartEntry.Fields("W_Artikelnummer").Value = oProduct.Fields("S_Artikelnummer").Value
oCartEntry.Fields("W_Artikeltext").Value = oProduct.Fields("S_Artikeltext").Value
oCartEntry.Fields("W_Belegdatum").Value = Now()
oCartEntry.Fields("W_Menge").Value = "1"
oCartEntry.Fields("W_Preis").Value = oProduct.Fields("S_Preis").Value

Set oCartEntry = Nothing
Next
Else
MsgBox "Nichts ausgewählt"
End If

 

Änderungslog:
17.12.2013

  • Bestellansicht des beiliegenden Telefonverkauf Beispiels auf die Query Funktionalität angepasst (ohne SQL-Statements)

angehängte Dateien: Telefonverkauf v4.zip

Tags: Artikel, Makro, Telefonverkauf, Zusatztabelle
Durchschnittliche Bewertung: 0 (0 Abstimmungen)

Kommentieren nicht möglich