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: Zeilen auf Spalten umsetzten

Zeilen auf Spalten umsetzten 5 Jahre 5 Monate her #505

  • Nick
  • Nicks Avatar
  • Offline
  • Junior Member
  • Beiträge: 25
Hallo,

ist es möglich, Zeilen auf Spalten umzusetzen? Ich habe nachfolgende Beispieldaten:
<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
Der Administrator hat öffentliche Schreibrechte deaktiviert.

Aw: Zeilen auf Spalten umsetzten 5 Jahre 5 Monate her #506

  • FlowHeater-Team
  • FlowHeater-Teams Avatar
  • Offline
  • Administrator
  • Beiträge: 1102
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 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: Zeilen auf Spalten umsetzten 5 Jahre 3 Monate her #619

  • Nick
  • Nicks Avatar
  • Offline
  • Junior Member
  • Beiträge: 25
Hallo,

Danke :-). Das läuft auch mit den html-Dateien wunderbar.

Gruss
Nick
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Moderatoren: FlowHeater-Team
Ladezeit der Seite: 0.081 Sekunden