Dynamischer Daten Import / Export

datenbank

weil Einfach - produktiver ist
Mit der Freeware Version können bis zu 10.000 Datensätze verarbeitet werden!
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
Willkommen im FlowHeater Support Forum!

Hier werden Fragen zum Umgang mit dem FlowHeater beantwortet.

THEMA: zusätzliche Felder updaten/berechnen aufgrund Eingabetabelle

zusätzliche Felder updaten/berechnen aufgrund Eingabetabelle 3 Jahre 11 Monate her #1179

  • Kraus
  • Krauss Avatar
  • Offline
  • New Member
  • Beiträge: 3
Folgende Situation:

Eingabetabelle enthält:
Artikelnummer
Prozentsatz

SQLtabelle Preise enthält u.a
Artikelnummer
Verkaufspreis

Aufgabe:
Aufgrund der Texttabelle/EXCEL soll der Verkaufspreis
entsprechend des hinterlegten Prozentsatzes in der SQL-Datenbank erhöht werden.

Gibt es ein Beispiel oder wie wäre der Lösungsansatz.
Herzlichen Dank
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: zusätzliche Felder updaten/berechnen aufgrund Eingabetabelle 3 Jahre 11 Monate her #1180

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Beiträge: 1099
Hallo Herr Kraus,

um mit dem alten Preis in der Definition rechnen zu können müssen Sie diesen mittels des SQL Heaters aus der Tabelle lesen (Datenbank Lookup). Damit nur Updates auf der WRITE Seite generiert werden deaktivieren Sie die Option "Daten anfügen (Insert)" und aktivieren dafür die Option "Daten aktualisieren (update)" im Configurator auf der WRITE Seite.
Ziehen Sie nun einen SQL Heater auf den Designer und tragen Sie für das SQL Statement folgendes ein.

select Preis from Ihr-Tabellenname where ArtikelNr = '$ArtNr$'

Hinweis: Falls die Artikelnummer als Zahlenwert (INT, LONG, DECIMAL, ...) im SQL Server gespeichert dürfen Sie die Artikelnummer nicht in Hochkommas einschließen und ggf. über Menü->Bearbeiten->Parameter die Zahlenformatierung auf ohne Tausendertrennzeichen und ggf. ohne Nachkommastellen einstellen.

Hiermit wird die Spalte Preis von der Tabelle "Ihr-Tabellenname" gelesen. Der Parameter $ArtNr$ wird mit dem aktuellen Wert des aktuellen Datensatzes der READ Seite ersetzt. Damit das Funktioniert benötigen Sie noch einen Set Parameter Heater mit dem die aktuelle Artikelnummer der READ Seite dem Parameter $ArtNr$ zugeordnet wird.

Mit dem so ermittelten Wert können Sie ihren Prozentsatz ausrechnen und den neu berechneten Wert der Spalte Preis zuordnen.

Im Anhang finden Sie ein kleines Beispiel dazu. Hier wird anstatt des Excel Adapters eine einfache CSV Datei gelesen sowie wird auf der WRITE Seite eine kleine Access Datenbank verwendet.

Anhang update_preise_berechnung.zip nicht gefunden

Anhang:
gruß
Robert Stark

Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: zusätzliche Felder updaten/berechnen aufgrund Eingabetabelle 3 Jahre 11 Monate her #1181

  • Kraus
  • Krauss Avatar
  • Offline
  • New Member
  • Beiträge: 3
Hallo H. Stark,
zunächst besten Dank für die schnelle Antwort.

in Ihrem Beispiel gibt es auf der Write Seite zwei Preisfelder (Preis und AlterPreis).
In der DB gibt es nur ein Preisfeld,
welches um den Prozentsatz erhöht werden soll.

Ich möchte vermeiden die DB um zusätzliche Felder zu ergänzen. Ist das möglich?

Danke und viele Grüße
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: zusätzliche Felder updaten/berechnen aufgrund Eingabetabelle 3 Jahre 11 Monate her #1182

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Beiträge: 1099
Hallo Herr Kraus,

das Feld habe ich nur zur bessren Verständnis eingefügt, damit Sie in dem Beispiel bei mehrmaligen Updates nachvollziehen können was der ursprüngliche alte Preis war.

Sie können natürlich direkt das Preis feld aktuallisieren. Sie benötigen nur das PrimaryKey Feld (ArtikelNr) sowie das eigentliche Preis Feld.

Zum test können Sie das Feld "AlerPreis" aus der Feldauflisting einfach löschen, die Definition wird weiterhin funktionieren.
gruß
Robert Stark

Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: zusätzliche Felder updaten/berechnen aufgrund Eingabetabelle 3 Jahre 11 Monate her #1183

  • Kraus
  • Krauss Avatar
  • Offline
  • New Member
  • Beiträge: 3
Hallo Herr Stark,
ich habe das getestet, dabei gibt es noch folendes Problem:
Datenbank:
Artikel ab Menge Preis
1 50,00 100,00
1 100,00 80,00
usw.

Es sind also mehrere gleiche Artikelnummern vorhanden, mit einer Staffel und dementsprechend anderem Preis.
Führt man das Beispiel durch, werden alle Staffeln mit der ersten Preiserhöhung verändert. Das Erbenis ist dann, dass der Artikel in allen Staffeln den gleichen Preis hat.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: zusätzliche Felder updaten/berechnen aufgrund Eingabetabelle 3 Jahre 11 Monate her #1184

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Beiträge: 1099
Hallo Herr Kraus,

dann ist die Lösung über den SQL Heater nicht brauchbar, da hier der Bezug zu einem eindeutigen Datensatz fehlt.

Wenn Ihre SQL Tabelle einen Primary Key hat (z.B. AutoIncrement) hat können Sie folgendermaßen vorgehen.
Verwenden Sie den benötigten Datenbank Adapter auf der READ sowie auf der WRITE Seite. Geben Sie auf der READ Seite die gleiche Tabelle wie auf der WRITE Seite an. Lesen Sie die Felder ein und verbinden Sie die Primary Key Felder der READ mit der WRITE Seite.

Dann benötigen Sie noch einen String Replace Heater mit dem Sie den Prozentsatz aus einer CSV Textdatei, ähnlich wie mit dem SQL Heater, einlesen können. Die Berechnung ist dann die gleiche wie im vorherigen Beispiel
Sie schreiben, dass die Prozentwerte in einer Excel Datei vorliegen. Diese müssten Sie vorher mit Hilfe einer weiteren Definition in eine CSV Datei umwandeln.

In der Anlage ist dazu wieder ein kleines Beispiel. Im Beispiel werden zusätzlich nicht vorhandene Preiserhöhungen gefiltert.
Ein weiteres Beispiel zum String Replace Heater finden Sie hier CSV Lookup

Hinweis: Damit dieses Beispiel funktioniert müssen Sie auf der WRITE Seite Datenbanktransaktionen deaktivieren, s.Bild.



Anhang update_preise_berechnung2.zip nicht gefunden

Anhang:
gruß
Robert Stark

Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Moderatoren: FlowHeater-Team
Ladezeit der Seite: 0.088 Sekunden