- Beiträge: 53
Zeilen auf Spalten umsetzten
- Nick
- Autor
- Offline
- Benutzer
Weniger
Mehr
13 Jahre 5 Monate her #505
von Nick
Zeilen auf Spalten umsetzten wurde erstellt von Nick
Hallo,
ist es möglich, Zeilen auf Spalten umzusetzen? Ich habe nachfolgende Beispieldaten:
Die Daten eines kompletten Datensatzes stehen immer zwischen den "<tr></tr>"-Tags. Die "Blöcke" dazwischen sollen nun immer von den einzelnen Zeilen auf eine Spalte umgesetzt werden:
11;07.06.2011;103;64;0;1;168 (Daten des ersten Blocks)
Die Anzahl der Zeilen pro Block sind immer gleich, lediglich die Anzahl der Blöcke innerhalb der Datei können unterschiedlich sein.
Kann hier jemand weiterhelfen wie man so etwas realisieren kann?
Danke und Gruss
Nick
ist es möglich, Zeilen auf Spalten umzusetzen? Ich habe nachfolgende Beispieldaten:
Code:
<tr>
<td class="html_qiscenter">11</td>
<td class="html_qiscenter">07.06.2011</td>
<td class="html_standard">103</td>
<td class="html_standard">64</td>
<td class="html_standard">0</td>
<td class="html_standard">1</td>
<td class="html_standard">168</td>
</tr>
<tr>
<td class="html_qiscenter">12</td>
<td class="html_qiscenter">07.06.2011</td>
<td class="html_standard">67</td>
<td class="html_standard">36</td>
<td class="html_standard">0</td>
<td class="html_standard">0</td>
<td class="html_standard">103</td>
</tr>
Die Daten eines kompletten Datensatzes stehen immer zwischen den "<tr></tr>"-Tags. Die "Blöcke" dazwischen sollen nun immer von den einzelnen Zeilen auf eine Spalte umgesetzt werden:
11;07.06.2011;103;64;0;1;168 (Daten des ersten Blocks)
Die Anzahl der Zeilen pro Block sind immer gleich, lediglich die Anzahl der Blöcke innerhalb der Datei können unterschiedlich sein.
Kann hier jemand weiterhelfen wie man so etwas realisieren kann?
Danke und Gruss
Nick
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
13 Jahre 4 Monate her #506
von FlowHeater-Team
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.
FlowHeater-Team antwortete auf Aw: Zeilen auf Spalten umsetzten
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.
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.
Code:
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.
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.
Anhänge:
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Nick
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 53
13 Jahre 3 Monate her #619
von Nick
Nick antwortete auf Aw: Zeilen auf Spalten umsetzten
Hallo,
Danke . Das läuft auch mit den html-Dateien wunderbar.
Gruss
Nick
Danke . Das läuft auch mit den html-Dateien wunderbar.
Gruss
Nick
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 0.265 Sekunden