FlowHeater Demo Video
 
Der Daten Import / Export Spezialist
 
Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
×

Erweiterte Suche

Suche nach Stichwort
×

Suchoptionen

Finde Beiträge von
Ergebnisse sortieren nach
Suche zu einem bestimmten Zeitpunkt
Zu Resultat springen
Suche in Kategorien
×

Suchergebnisse

Gesucht wurde: GroupBy
16 Nov 2011 19:44
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Doerr,

das ist theoretisch möglich, jedoch sehr fehleranfällig! Um Daten automatisch/halbautomatisch verarbeiten zu können sollten sie darauf achten, dass Sie immer das gleiche Format verwenden!

Bei Ihrem Beispiel werden u.a. auch noch Spaltenorientierte und Zeilenorientierte Daten vermischt. Das können Sie so über den FlowHeater nur mit 2 unterschiedlichen Definitionen durchführen.

z.b. Eine Definition die die Zeilenorientierten Daten – in Ihrem Beispiel die oberen Excel Daten – importiert, sowie eine Definition die die Spaltenorientierten Daten – in Ihrem Beispiel die unteren Excel Daten einliest.

Im Anhang finden Sie ein Beispiel wie Zeilenorientierte Excel Daten importiert bzw. hier im Beispiel in eine CSV Datei exportiert werden können.

Die unteren Spaltenorientierten Excel Daten können Sie mit einer weiteren Definition im Anschluss an den ersten Import/Export ebenfalls exportieren. Diese zwei Definitionen können Sie dann über das Batch Modul automatisch nacheinander ausführen.

Beispiel CMD Datei zur automatischen Ausführung
@echo off
FHBatch.exe Import-Excel-Zeilendaten.fhd
FHBatch.exe Import-Excel-Spaltendaten.fhd


Wie Funktioniert es) Es wird davon ausgegangen das die Feldnamen in den ersten 3 Excel Spalten (A-C) vorkommen, in den Excel Spalten D-G können dann jeweils die dazugehörigen Werte stehen.

Zuerst werden die 3 Spalten für die Feldnamen über den String Append Heater zusammengefasst. Der Output geht hier einmal zu einem GroupBy Heater und dann noch zu 3 IF-THEN-ELSE Heatern . Der GroupBy Heater fasst alle Excel Zeilen zu einer Export Zeile zusammen. Eine neue Gruppe beginnt jeweils mit dem Schlüsselwort "Titel".

Die IF-THEN-ElSE Heater benötigen Sie um zu entscheiden welche Werte der Excel Zeilen in die jeweiligen Export Spalten geschrieben werden sollen.

Die einzelnen Werte (Spalten D-G) werden ebenfalls mit einem String Append Heater zu einem Wert zusammengefasst. Der Output dient als DANN Wert für die 3 IF-THEN-ELSE Heater.

Anhang excel_import_export.zip wurde nicht gefunden.

Kategorie: Excel Adapter
01 Nov 2011 11:18
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Ich gehe mal davon aus, dass die Daten hinzugefügt werden sollen. Zusätzlich vermute ich dass die Daten in den einzelnen Zeilen aufsummiert werden sollen, so dass lediglich nur ein Datensatz in die SQLite Tabelle geschrieben werden soll.

Ich habe Ihnen dazu ein kleines Beispiel erstellt. Für das aktuelle Datum verwende ich den Now Heater . Das Datum aus einer weiteren Tabelle zu lesen geht nur wenn sich diese in der gleichen SQLite Datenbank befindet.

Der GroupBy Heater gruppiert alle Datensätze der READ Seite zu einem Datensatz der WRITE Seite zusammen. Während der Gruppierung wird die Summe berechnet, die dann als Ergebnis in die SQLite Datenbank geschrieben wird.

Es werden immer alle Excel Zeilen gelesen inkl. der letzten Zeile mit dem Disclaimer. Diese verursacht bei der Ausführung eine Warnung, die Sie ignorieren müssen. So wird auch der Wert 0 in die Datenbank geschrieben wenn in der Excel Tabelle keine Daten vorhanden sind.

Eine IF-THEN-ELSE Bedingung oder ein Filter sind so nicht notwendig.

Anhang excel_import_sqlite.zip wurde nicht gefunden.

Kategorie: Excel Adapter
20 Okt 2011 19:03
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Dr. Schwindler,

das ist problemlos machbar, es geht aber noch wesentlich komplexer :-)

Sie benötigen dazu 1x den GroupBy Heater , 1x den Additions Heater (für die Summenbildung) und 2x den IF-THEN-ELSE Heater .

Der GroupBy Heater fasst die CSV Eingangssätze anhand des Datums zu einer Zeile zusammen. Der Additions Heater ermittelt daraus über die Gruppierung die Summe.

Um jetzt die Werte für (NAV_P und NAV_I) der 2 CSV Zeilen auf der READ Seite den Spalten auf der WRITE Seite zuzuordnen benötigen Sie pro Feld einen IF-THEN-ELSE Heater. Als Bedingung tragen Sie 1x "= LU001" und 1x "=LU002" ein.

Hiermit teilen Sie dem FlowHeater mit, dass das Feld NAV_I nur zu befüllen ist wenn der Inhalt des Feldes ISIN_CODE gleich dem Wert LU002 ist bzw. NAV_P nur wenn ISIN_CODE gleich dem Wert LU001 ist.

Im Anhang (csv_groupby_sqlite_import.zip) habe ich Ihnen ein Beispiel erstellt. Das Beispiel verwendet Ihre CSV Datei sowie SQlite Datenbank.

Hinweis für alle anderen: Für SQlite Datenbanken wird ein ODBC Treiber benötigt. Weiter Info können Sie folgenden Forumsbeitrag entnehmen: Kompatibilität zu SQLite

Anhang csv_groupby_sqlite_import.zip wurde nicht gefunden.

Kategorie: TextFile Adapter
08 Aug 2011 05:43
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
wenn nur zwei Spalten in die CSV Ausgabe geschrieben werden sollen, kann das über einen zusätzlichen .NET Script Heater mit einer Definition gelöst werden.

Schauen Sie sich dazu mal das Beispiel im Anhang an.

Der GroupBy Heater gruppiert alle vorhandenen Datensätze der READ Seite zu einem Datensatz zusammen.

Dann erzeugt der String Append Heater mit eingeschalteter Gruppierungfunktion aus den Wertepaaren jeweils eine Zeile. Die Wertepaare werden CSV Like mit einem Strichpunkt getrennt.

Dieses Vorgehen ist so nun für jede Spalte notwendig die Sie auf die WRITE Seite übernehmen wollen. Die Ausgaben der String Append Heater leiten Sie in den .NET Script Heater . Dieser fügt die einzelnen Eingangsparameter zu einem zusammen. pro Wertepaar fügt der .NET Script Heater einen Zeilenumbruch an. Der Output daraus wandert auf die WRITE Seite in ein Feld.
public object DoWork()
{
  string sOut = String.Empty;

  // Schleife über alle Eingangsparameter
  for(int i = 0; i < InValues.Length; i++)
  {
    if (sOut.Length != 0)
    {
      // Falls nicht der erste Parameter einen Zeilenumbruch anfügen
      sOut += "\r\n";
    }

    sOut += (string)InValues[i].GetString();
  }

  return sOut;
}

Anhang kreuztabellenabfrage_II.zip wurde nicht gefunden.

Kategorie: Allgemein
11 Jul 2011 05:47
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Tim,

nämlich ob es FH auch für Unix-Systeme (NET/Mono) geben wird bzw. ob da generell mal was geplant ist?

Ich bin zwar ein Linux/UNIX Freund, aber den FlowHeater wird es leider vorerst nicht für .NET / Mono geben. Auch wenn es auf den ersten Blick einfach erscheint hier was umzustellen, der erforderliche zusätzliche Testaufwand steht in keinem Verhältnis zum möglichen Ertrag.

Werden alle Heater compiliert?

Ja, es werden immer alle .NET Script Heater kompiliert die auf der Definition vorhanden sind. Es ist aber eine Art Script Bibliothek geplant. Hier können Sie sich im.NET Script Heater vorhandene Skripts einfach auswählen und verwenden.

Zu Ihrer Definition) Respekt! Die ist echt sehenswert. Ziel ist es so wenig wie möglich Heater zu verwenden, deshalb werden die einzelnen Heater stetig um weitere Funktionalitäten erweitert. Siehe aktuell String Append Heater bzw. String Replace Heater . Momentan werden die Rechenoperationen (plus, minus, mal, geteilt) um eine Konfigurationsdialog erweitert, so dass ein evtl. statischer Operand nicht mühsam über einen zusätzlichen X-Value Heater angegeben werden muss. Der GroupBy Heater wird ebenfalls erweitert, so dass nicht nur gleich einlaufenden Eingangswerte z u einem Datensatz gruppiert werden können sondern eine Datengruppe anhand eines Wertes im Eingangswert bestimmt werden kann. Dies musste bisher über ein zusätzliches Skript realisiert werden.
Hinweis: Die letzten beiden Funktionen werden mit Version 2.0.8 in den FlowHeater einfließen, ca. Anfang August.

z.B.
From: info [ät] test.com = 1. Gruppe
Name: Test1
Datum: 2011-07-11
Grund: Infomaterial
From: info [ät] 123.com = 2. Gruppe
Name: Test2
Datum: 2011-07-11
Grund: Weitere Bestellung
Kategorie: Allgemein
25 Jun 2011 14:41
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Stoeger,

Das ist eine klassische Kreuztabellenabfrage und kann im FlowHeater mittels des GroupBy Heaters umgesetzt werden. Sie benötigen dann noch einen AutoID Heater mit eingeschalteter Gruppierungsfunktion sowie pro Feld das Sie von einer Zeile in eine Spalte umwandeln möchten einen IF-THEN-ELSE Heater .

Um die Werte zwischen den HTML Tags zu extrahieren können Sie den String Replace Heater mit den erweiterten Einstellungen verwenden. Hier können Sie eine CSV Ersetzungsliste definieren worüber die führenden sowie abschließenden Tags jeweils mit einem Leerstring ersetzt werden, übrig bleibt dann nur noch der eigentliche Wert.
Zur Veranschaulichung habe ich Ihnen ein kleines Beispiel erstellt, siehe Anhang Kreuztabellenabfrage.zip.
Achtung: Das Beispiel läuft erst ab Version 2.0.5, siehe Release Notes zur Version 2.0.5 .

Umsetzung der Kreuztabellenabfrage bzw. die Gruppierung:
Damit der GroupBy Heater weiß wann eine neue Gruppe beginnt, wird hier noch ein zusätzliches Skript für den .NET Script Heater benötigt. Das Skript prüft ob in der Zeile ein <tr> vorkommt und erhöht falls der Wert gefunden wurde einen internen Zähler. Anhand dieses Wertes gruppiert der GroupBy Heater alle nachfolgenden Werte zu einer Zeile zusammen.

Um jetzt die einzelnen Zeilen einer separaten Spalte zuzuordnen benötigen Sie noch einen AutoID Heater mit eingeschalteter Gruppierungsfunktion. Hiermit wird pro Gruppe ein Zähler beginnend bei 1 hochgezählt. Diesen Wert müssen Sie über einen IF-THEN-ELSE Heater abfragen z.B. mit der Bedingung = 1 wird die erste Zeile der Gruppe abgefragt. Der DANN Wert, falls die Bedingung zutrifft weisen Sie dem Feld/der Spalte zu das Sie setzen möchten. Dieses Vorgehen ist so jetzt für jede Spalte notwendig. Schauen Sie sich hierzu das Beispiel an.
int nGroup = 0;

public object DoWork()
{
  if (InValues.Length == 0)
    throw new Exception("mind. ein Eingangsparameter erwartet");

  string sLine = (string)InValues[0].GetString();
  if (sLine == null)
    return nGroup;
  
  if (sLine.IndexOf("<tr>", StringComparison.CurrentCultureIgnoreCase) >= 0)
  {
    // wenn die Zeichnfolge <tr> in der Zeile vorkommt, dann ist das eine neue Gruppe
    nGroup++; // Gruppenzähler um 1 erhöhen!
  }

  // Der GroupBy Heater gruppiert alle Zeilen anhand dieses Werte zu einer Zeile zusammen!
  return nGroup;
}

Anhang Kreuztabellenabfrage.zip wurde nicht gefunden.

Kategorie: Allgemein
28 Mär 2011 05:48
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo,

ich hätte eine Frage zum FlowHeater, die nun aktuell aufkam.

Kann man mittels des FlowHeater auch Daten an Dateien anhängen (Append) bzw. im Sinne eines "Load Distinct Befehls" vorhandene Datensätze nicht zu überschreiben?

Ein Erster Ansatz ist mir mittels des Sort Heaters und des GroupBy-Heaters gelungen. Allerdings gelingt es mir nicht, Daten anzuhängen.
(Ich lade von Excel-Adapter zu Excel Adapter bzw. von Excel-Adapter zu SQL-Server)

Könnten Sie mir ggfs. einen Tip geben?

Mit besten Grüßen aus München,
Thomas

Anfrage per Email erhalten!
Kategorie: SqlServer Adapter
15 Mär 2011 19:23
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Nein Sie machen nichts falsch. Der Ausführungsmodus wird noch nicht mit in der Definition abgespeichert, das müssen Sie von Hand vor der Ausführung umstellen.

Über das Batchmodul können Sie den Parameter /massdata verwenden um auf den Massendatenmodus umzustellen.

PS: Das ursprüngliche Problem ist mit Version 1.3.2 gefixt.
Kategorie: Allgemein
27 Feb 2011 10:02
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
da haben Sie einen Fehler aufgedeckt. Das Ganze tritt zusammen mit dem GroupBy und dem Filter Heater auf wenn Sie die Definition im Modus "Memory" ausführen. Sie können das umgehen wenn Sie die Defintion im Massendatenmodus ausführen.

Der Fehler wird demnächst gefixt!

Vielen Dank für die Fehlemeldung. Hoffe Ihnen damit weitergeholfen zu haben.
Kategorie: Allgemein
27 Feb 2011 07:31
  • Martin
  • Martins Avatar
Hallo,

ich habe eine ganz einache groupby Funktion. Alle Datensätze sollen zu einem zusammengefasst werden, der Wert sollte addiert werden. Ich habe dazu ein Feld gesucht, bei dem in jedem Datensatz der Wert gleich ist. Egal ob ich das Feld als INT oder STRING festlege, es kommt immer die Fehlermeldung:

"Der Index lag ausserhalb des Bereichs.
Er muss nicht negativ und kleiner als die Auflistung sein. Parametername: Index".

Können Sie mir helfen?

PS: ich kann leider nur eine Datei hochladen. Evtl. muss ich die txt-Datei noch zumailen.
Kategorie: Allgemein
24 Feb 2011 07:12
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Das ist leider etwas komplexer, aber möglich. Das Problem dabei ist Ihr erstes Feld "Time Point/Zeitpunkt". Das wird hier nicht bei jeder Zeile mitgeliefert, sowie stehen in den 2 nachfolgenden Werten andere Werte darin?!

Um das zu lösen, benötigen wir als erstes den .NET Script Heater . Folgendes kleine Skript schaut im Feld "Time Point" nach ob an der 3 Stelle ein Punkt vorkommt und geht dann davon aus, dass somit ein Datum vorliegt. Dieses Datum gibt der .NET Script Heater zurück und merkt sich zusätzlich den Wert solange bis ein neues Datum = Punkt an 3 Stelle ankommt, usw.
string lastTP = String.Empty;
public object DoWork()
{
	object o = InValues[0].GetString();
	if ( o != null )
	{
		string s = (string)o;
		if (s.Length >= 3 && s.Substring(2, 1) == ".")
			lastTP = s;
	}

	return lastTP;
}

Der Output des .NET Script Heaters wandert einmal zu einem GroupBy Heater und dann noch 1:1 auf die WRITE Seite in das Feld "Zeitpunkt".
Der GroupBy Heater gruppiert nun alle gleichen Datumswerte zu einer CSV Zeile auf der WRITE Seite. Um nun noch die einzelnen Werte der CSV Zeilen zu einer Spalte zuzuweisen, benötigen Sie für jedes Feld noch einen IF-THEN-ELSE Heater . Hier muss geprüft werden ob der Wert vom Feld "UNIT" gleich Spalte1 (oder Device State, ...) ist. Wenn das der Fall ist wandert der Output der IF-THEN-ELSE Bedingung in das Feld Spalte1 (oder Device State, ...) der WRITE Seite. Dieses Vorgehen ist notwendig, ansonsten würde in jeder Spalte der WRITE Seite immer nur der letzte Wert der Gruppierung stehen! Sie benötigen somit für jede Spalte die Sie in die CSV Datei auf der WRITE Seite ausgeben möchten einen IF-THEN-ELSE Heater.

Im Anhang "csv_gruppierung.zip" finden Sie dazu ein kleines Beispiel.

Anhang csv_gruppierung.zip wurde nicht gefunden.

Kategorie: TextFile Adapter
17 Jan 2011 20:17
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Besier,

das ist etwas komplexer aber umsetzbar :)

Zuerst einmal müssen die Daten zusammengefasst werden. Dazu ziehen Sie einen GroupBy Heater und einen XValue Heater auf den Designer. Bei der Eingabe für den X-Value Heater geben Sie ein beliebiges Zeichen an. Nun verbinden Sie den Ausgang des X-Value Heaters mit dem GroupBy Heater. Somit erzeugen Sie auf der Ausgabe Seite lediglich nur einen Datensatz.

Bitte beachten: Diese 2 Heater haben keine weitere Verbindung zur READ bzw. WRITE Seite. Dieses Vorgehen ist notwendig, damit auf der WRITE Seite nur ein Datensatz ankommt!

Jetzt müssen Sie noch die 10 Zeilen der READ Seite auf Felder der WRITE Seite mappen. Dazu benötigen wir einmal den AutoID Heater mit eingeschalteter Gruppierungsfunktion, einen Split Heater um den zweiten Teil der Daten nach dem Doppelpunkt zu extrahieren sowie pro Feld folgendes.

1 x einen Trim Heater um das 1. Leerzeichen nach dem Doppelpunkt zu entfernen

1 x einen If-Then-Else Heater um den Output einem Definierten Feld zuzuordnen.

Folgendes Vorgehen ist Pro Feld notwendig:
Verbinden Sie den Ausgang des AutoID Heaters mit dem If-Then-Else Heater. Danach Verbinden Sie den Ausgang des Split mit dem Trim Heater und anschließend diesen Ausgang wiederum mit dem IF-Then-Else Heater. Den Ausgang des IF-Then-Else Heaters verbinden Sie mit dem 1. Feld auf der WRITE Seite. Öffnen Sie nun über einen Doppelklick auf den IF-Then-Else Heater die Eigenschaften und tragen für die Bedingung "=1" ein. Das Ganze wiederholen Sie für jedes Feld auf der WRITE Seite und erhöhen jeweils die Bedingung um den Wert 1. Also für Feld 2 "=2" für Feld 3 "=3", …

Mit diesem Vorgehen teilen Sie dem FlowHeater mit, dass jedes Feld nur 1x gesetzt wird. Beim 1. Durchlauf das Feld 1 beim 2. Durchlauf das Feld 2, und so weiter.

Beachten Sie, dass der If-Then-Else Heater in diesem Fall keinen Else Wert = 3. Eingangsparameter hat!

Zur Veranschaulichung habe ich Ihnen dazu ein kleines Beispiel erstellt. Siehe Anlage Kreuztabellenexport.zip. Das Beispiel verwendet auf der WRITE Seite ebenfalls den Textfile Adapter , kann aber leicht an Excel angepasst werden.

Sie möchten jetzt noch mehrere Dateien an ein Excel Worksheet anfügen? Das wird z.Zt. vom FlowHeater leider noch nicht direkt unterstützt. In folgenden Link finden Sie aber ein Beispiel wie es dennoch umgesetzt werden kann.

CSV Daten an Excel Arbeitsblatt anfügen

Über das Batch Modul können Sie das dann auch noch automatisieren. Schauen Sie sich hierzu folgendes Beispiel an.
Automatisierter Batch CSV Import mit MS Access

Anhang Kreuztabellenexport.zip wurde nicht gefunden.

Kategorie: Excel Adapter
09 Dez 2010 20:22
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Das Problem dabei ist, dass bei einer Gruppierung über den GroupBy Heater standardmäßig das Ausgabefeld immer mit dem gerade aktuellen Feld überschrieben wird. Am Ende der Gruppierung bzw. des Gruppenwechsels steht somit der letze Wert der Gruppe in dem Feld. Möchten Sie nun einen anderen Wert als Ausgabe für das Feld setzen, müssen Sie dies dem FlowHeater über eine IF-THEN-ELSE Bedingung mitteilen.

Ich habe Ihnen dazu ein kleines Beispiel zu Ihren Daten erstellt, siehe Anhang gruppierung.zip.

Beachten Sie, dass der IF-THEN-ELSE Heater in diesem Beispiel nur 2 Parameter hat.

1x der Wert der in der Bedingung verglichen wird
1x der Wert der zurückgegeben wird falls die Bedingung zutrifft

Hier wird das Feld [ZUSATZ] mit einem Leerstring verglichen = in Ihrem Fall der erste Datensatz ohne Zusatzinformationen.

Trifft die Bedingung zu wird die Beschreibung in das Ausgabe Feld geschrieben.

Trifft die Bedingung nicht zu, wird vom IF-THEN-ELSE Heater nichts zurückgegeben, der vorhandene 1. Ausgabenwert wird hierbei nicht überschrieben!

Anhang gruppierung.zip wurde nicht gefunden.

Kategorie: TextFile Adapter
20 Nov 2010 11:25
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Meurer,

Das kommt jetzt leider nicht ganz rüber was Sie eigentlich vorhaben. Ich vermute, dass Sie Anhand des CSV Feldes "Nr" alle doppelt (oder mehrfach) vorkommende Werte entfernen möchten?

Wenn das so ist, brauchen Sie auf Ihre Definition zusätzlich nur einen GroupBy Heater ziehen und das CSV Feld "Nr" damit verbinden. Der GroupBy Heater fast dann aufeinanderfolgende gleiche Werte zu einem Datensatz/Zeile auf der Write Seite zusammen. Einziges Problem ist, dass so der Letzte Wert an der WRITE Seite ankommt.

Hinweis: Dieses Verhalten kann über If-Then-Else Bedinungen auch umgangen werden!

Für Ihr Beispiel denke ich reicht es aus wenn Sie die Lösung von Ihrem vorherigen Posting einsetzen: CSV Import, leere CSV Felder mit vorherigen Wert belegen

PS: Ihre CSV Beispieldatei ist nicht vorhanden. Bei Dateianlagen sind nur ZIP Archive erlaubt!
Kategorie: TextFile Adapter
25 Aug 2010 16:44
  • FlowHeater-Team
  • FlowHeater-Teams Avatar
Hallo Herr Stoeger,

das können Sie mit dem GroupBy Heater erledigen. Ziehen Sie dazu den GroupBy Heater auf den Designer und verbinden Ihr Feld F_RP.TP_ID damit. Damit das ganze funktioniert müssen Sie jetzt nur noch die "order by" Klausel im SQL Select anpassen. In Ihrem Fall z.B.

order by F_TP.T_SU, F_RP.TP_ID, F_RP.R_DATE

Wichtig ist nur, dass alle "F_RP.TP_ID" Felder die gruppiert werden sollen nacheinander am FlowHeater eintreffen. Der GroupBy Heater fasst dann gleiche Werte auf der WRITE Seite zu einem Datensatz zusammen. Möchten Sie nicht den letzten sondern den ersten Wert angezeigt bekommen, reicht es aus wenn Sie im Order by nach dem Datumsfeld ein DESC (steht für Absteigend) schreiben z.B.

order by F_TP.T_SU, F_RP.TP_ID, F_RP.R_DATE DESC
Kategorie: SqlServer Adapter
76 - 90 von 95 Ergebnissen angezeigt.
Ladezeit der Seite: 0.842 Sekunden

andere Sprachen

en

FlowHeater Home

de en

Impressum/Kontakt

Datenschutz

Copyright © 2009-2021 by FlowHeater GmbH.
Alle Rechte vorbehalten.

Follow us on

twitter  facebook

YouTube

 de en