📊 InfoZoom / Analyzer – FAQ

Zusammengestellt aus 279 Forenbeiträgen in 100 Threads | Zeitraum: 2010–2021
Beantwortet von: Ingo Lenzen, Markus Eisenblätter, Daniel Marcuse (humanIT Software GmbH)
Formeln & Berechnungen Reguläre Ausdrücke Datenimport & -export Kommandozeile & Batch Vorlagen (FOT) Join & Verknüpfung Installation & Technik Reports & Ausgabe Sonstiges

🔢 1. Formeln & Berechnungen

F: Wie füge ich ein Leerzeichen zwischen zwei Attributen in einer Formel ein?

Verwenden Sie die Verkettung mit einem Leerzeichen in Anführungszeichen:

[Monat] + " " + [Jahr]

Ergebnis z. B.: „März 2012"

F: Wie rechne ich einen Unix-Timestamp in ein Datum um?

Ähnlich wie in Excel:

[Timestamp] / 86400 + DATE(1970,01,01)
F: Wie kann ich ein Datum mit Jahren und Monaten addieren (z. B. Renteneintrittsalter)?

Einfache Addition geht über Tage (+ 365 pro Jahr). Für exakte Monatsberechnung:

DATE(
  IF(MONTH([Datum]) + [Monate] > 12,
     YEAR([Datum]) + [Jahre] + 1,
     YEAR([Datum]) + [Jahre]),
  IF(MONTH([Datum]) + [Monate] > 12,
     MONTH([Datum]) + [Monate] - 12,
     MONTH([Datum]) + [Monate]),
  DAY([Datum])
)

Die Attribute [Monate] und [Jahre] müssen separat berechnet oder per Join hinzugefügt werden.

F: Kann ich die ROUND-Funktion direkt in eine bestehende Formel integrieren?

Ja, die ROUND-Funktion kann um die gesamte Formel gewrappt werden:

ROUND( <gesamte Formel> , 7)

Alternativ kann über das Zahlenformat (z. B. #.###,0000000) gerundet werden.

F: Wie kann ich einen String in mehrere Attribute aufteilen?

Kombination aus FIND und MID:

MID([Attribut], FIND("ZL", [Attribut]), 2)

FIND liefert die Position, MID schneidet ab dieser Position die gewünschte Anzahl Zeichen aus.

F: Wie flagge ich das erste Vorkommen eines Wertes in einem Attribut?

Zuerst das kleinste Element (z. B. eine Kennung) pro Attributwert ermitteln, dann vergleichen:

  • Stimmt die kleinste Kennung mit der aktuellen überein → Wert übernehmen
  • Sonst → leer lassen
F: Wie zähle ich, wie oft ein bestimmter Wert in einem Textattribut vorkommt?

Über verschachtelte REPLACEMATCH-Aufrufe:

LEN(REPLACEMATCH(REPLACEMATCH(UPPER([Attribut]), "TEST", "*"), "[^*]+", ""))
⚠ Wichtig: Das + hinter [^*] ist essentiell, da es sonst bei langen Texten zu Abstürzen kommen kann.
F: Wie prüfe ich, ob eine Datei existiert, bevor ich ein Bild anzeige?

Mit der Funktion FileExists:

IF(FileExists("C:/Bild.jpg"), "%C:/Bild.jpg", "")

Metadaten (Größe, Abmessungen) können nicht direkt ausgelesen werden – dafür einen externen Job nutzen (z. B. CMD-Skript mit DIR).

F: Wie füge ich ein Prozentzeichen an eine berechnete Zahl an?
[Attribut] + " %"

Es gibt kein „echtes" Prozentformat in InfoZoom. Alternativ die Prozent-Aggregationen im Bereich Zusammenfassungen nutzen. Das Zahlenformat des Attributs kann weiterhin angepasst werden (z. B. #.###,00).

F: Wie prüfe ich, ob ein Parameter in einer kommaseparierten Liste vorkommt?

Exakte Prüfung (damit z. B. „p" nicht „xp" matcht):

IF([Verwendungsart] = "p", "ja",
  IF(BEGINSWITH([Verwendungsart], "p,"), "ja",
    IF(ENDSWITH([Verwendungsart], ",p"), "ja",
      IF(MATCHES([Verwendungsart], ",p,"), "ja", "nein"))))

Elegante Lösung mit Regex:

MATCHES([Verwendungsart], "^(.+?,)?p(,.+)?$")
F: Wie erstelle ich ein automatisches „Einlesedatum" in einer FOX-Datei?
  1. Formelattribut mit TODAY() erstellen
  2. Aktualisierung auf „Nach dem Laden von Daten" setzen
  3. In den Berechtigungen: Umdefinieren und Daten-Einlesen verbieten + Kennwort setzen
  4. Als FOT speichern und per Kommandozeile mit -insert befüllen
F: Wie fasse ich Attributwerte pro Kunde zusammen (mehrere Textzeilen)?

Die Funktion Liste verwenden: Liste(Text) pro Kundennummer. Anschließend über „Objekte speichern unter…" eine normalisierte Tabelle erzeugen.

Hinweis: Die Liste ist das einzige Attribut, das nicht für weitere Berechnungen genutzt werden kann.
F: Wie durchsuche ich alle Attribute gleichzeitig per Formel?

Es gibt keine direkte Funktion dafür.

Workaround: Alle Attribute per Konkatenation aneinanderhängen und dann FIND auf das Ergebnis anwenden. Alternativ: Suchabfrage in eine Anfrage legen und ausführen.

🔍 2. Reguläre Ausdrücke / ReplaceMatch

F: Wie entferne ich Sonderzeichen aus Attributwerten?

Mit REPLACEMATCH und regulären Ausdrücken:

REPLACEMATCH([Attr], "(\?) | (/) | (\*)", " ")

Sonderzeichen müssen mit Backslash maskiert werden: . [ ] ? + * ( ) { } \ | ! ^ -

Alternative – alles außer Buchstaben/Zahlen entfernen:

REPLACEMATCH([Attribut1], "{[^0-9a-z ]}", "", "no", "yes")
F: Wie ersetze ich doppelte Leerzeichen (Fulltrim)?
TRIM(REPLACEMATCH([Attribut], "\\b+", " ", "no", "yes"))
F: Wie wandle ich HTML-Entities (&uuml; etc.) in echten Text um?

Mehrfach verschachtelte REPLACEMATCH-Aufrufe:

REPLACEMATCH(
  REPLACEMATCH(
    REPLACEMATCH(
      REPLACEMATCH([Attribut], "<{.+?}>", "", "yes", "yes"),
      "&uuml;", "ü", "yes", "yes"),
    "&ouml;", "ö", "yes", "yes"),
  "&auml;", "ä", "yes", "yes")

Für Großbuchstaben (Ä, Ö, Ü) weitere Verschachtelungen ergänzen.

F: Wie filtere ich eine E-Mail-Adresse aus einem Freitextfeld?

InfoZoom unterstützt nicht den vollständigen JavaScript-RegExp-Standard (\b für Wortgrenzen fehlt). Ansätze:

  • MID/FIND-Methode: Nach dem @-Zeichen suchen und von dort die umgebenden Leerzeichen ermitteln
  • Regex: \\b[a-z]*@[a-z]*\\.[a-z][a-z][a-z]\\b – funktioniert eingeschränkt

📥 3. Datenimport & -export

F: Kann man Excel-Dateien (XLS) automatisch per Batch einlesen?

Direkt geht das nicht. Workaround:

  1. XLS zuerst in CSV wandeln (per ETL oder externe Tools)
  2. CSV dann per Kommandozeile einlesen
F: Wie lese ich eine CSV-Datei ein, die Leerzeichen in den Werten enthält?

Ein neues Formelattribut erstellen:

TRIM([Attribut])

Anschließend das Format auf „numerisch" anpassen.

F: Wie lese ich mehrere CSV-Dateien per Batch in eine FOX-Datei ein?
infozoom -invisible KD.fox -appendInsertedRecords -insert -delimiter ; KD*.csv -saveasfox KDgesamt.fox -Exit
F: Fehler „ACE.OLEDB.12.0-Provider ist nicht registriert" beim Access-Import?

Prüfen, ob InfoZoom und der Treiber die gleiche Architektur haben:

  • InfoZoom 64-Bit → 64-Bit-Access-Treiber erforderlich
  • InfoZoom 32-Bit → 32-Bit-Access-Treiber erforderlich
  • Auch die Office-Version (32/64 Bit) muss dazu passen

⚙️ 4. Kommandozeile & Batch-Automatisierung

F: Wie verhindere ich, dass Anfragen beim Nachladen doppelt importiert werden?

Den Kommandozeilenparameter -ignorequeries verwenden. Damit werden Anfragen aus FOX-Dateien beim Nachladen nicht importiert.

F: Warum werden Datumswerte beim automatischen Einlesen verändert?

Das Problem liegt meist im Importformat des Attributs in der FOT-Datei. Wenn das Importformat z. B. auf #### statt auf JJJJ-MM-TT steht, werden Datumswerte falsch interpretiert.

Lösung: Importformat im Attribut auf JJJJ-MM-TT korrigieren.

📄 5. Vorlagen (FOT) & Nachladen

F: Kann ich eine FOT-Vorlage mit Daten aus mehreren FOX-Dateien automatisch befüllen?

Das Nachladen in eine manuell gejointe Tabelle geht leider nicht.

Alternative: Den Datenbankassistent verwenden, um die Quell-Tabellen zu verbinden und als eine Quelle zu nutzen, aus der per Knopfdruck nachgeladen werden kann.

F: Wie verwende ich eine FOT-Vorlage mit neuen Daten?

Eine FOT-Datei behält Filter und Attribute bei. Als Vorlage speichern und per -insert mit neuen FOX-Dateien befüllen.

Voraussetzung: Die Attributnamen dürfen sich nicht geändert haben.

🔗 6. Join & Datenverknüpfung

F: Was ist der Unterschied zwischen Join und Anfügen/Einfügen?
  • Join: Verknüpft Daten über einen Schlüssel → ergänzt vorhandene Objekte (1:1) und erstellt ggf. neue (1:n)
  • Einfügen/Nachladen: Lädt Daten nacheinander ein → es werden immer neue Objekte erzeugt, keine vorhandenen ergänzt

Um Daten aus verschiedenen Tabellen zu verknüpfen, kommt man um den Join nicht herum.

F: Speicherprobleme bei großen Joins – was tun?

Best Practices für speicherintensive Joins:

  1. Klären, ob 1:n oder n:m Joins vorliegen
  2. Schritte nacheinander durchführen, nicht alle auf einmal
  3. Zwischenergebnis als FOX-Datei speichern und neu laden → optimale Speicherstruktur
  4. Idealerweise per Batch automatisieren
⚠ Achtung: Einzoomen hilft nicht – im Hintergrund werden immer die vollständigen Tabellen verarbeitet.
F: Wie vergleiche ich Werte mit einer großen Referenzliste (z. B. 10.000 Warennummern)?

Die Wertemenge erlaubt ca. 30.000 Zeichen zum Editieren. Über „In der Tabelle markierte Werte einfügen" können mehr Werte übernommen werden. Das Markieren lässt sich über eine Anfrage automatisieren.

Alternativ: Link/Join-Funktion verwenden – mit Professional per Batch automatisierbar.

🛠️ 7. Installation, Lizenzierung & Technik

F: Wie installiere und aktiviere ich InfoZoom richtig?
  1. Installationsschlüssel bei der Installation eingeben (muss zur Version passen)
  2. Kennung des Rechners wird automatisch erzeugt
  3. Aktivierungsschlüssel wird aus Installationsschlüssel + Rechnerkennung generiert
  4. Setup.exe als Administrator ausführen
  5. Lizenzschlüssel vollständig mit Bindestrichen eingeben (kein Leerzeichen am Ende!)
  6. Mehrfachaktivierungen sind nicht erlaubt
F: Wo finde ich installierte InfoZoom-Versionen in der Registry?
HKEY_LOCAL_MACHINE\SOFTWARE\humanIT\[InfoZoom Variante]\[Version]

Der Schlüssel „Install Location" enthält den Pfad des Installationsverzeichnisses.

F: Warum werden Unicode-Zeichen in InfoZoom um 90° gedreht angezeigt?

Das liegt an der Schriftart. Fonts mit @ im Namen (z. B. @Arial) sind senkrechte/vertikale Fonts.

Lösung: Schriftart ändern auf eine ohne @-Präfix.

F: Was bedeutet die Meldung „Server ist ausgelastet"?

Seit Version 8.20 werden Zertifikate online geprüft. Ohne Internetverbindung kann diese Meldung erscheinen.

Abhilfe: Im Internet Explorer unter den erweiterten Einstellungen die Option zur Zertifikatsprüfung deaktivieren.

F: Stimmt es, dass InfoZoom Control 9.0 zum SDK 8.1 gehört?

Ja. Die Versionierung der Bibliotheken folgt der Microsoft-Konvention mit Ganzzahlen (analog: Office 2010 = Office 14).

📊 8. Reports & Ausgabe

F: Kann ich alte Reportvorlagen (Format 4.10, *.izt) in die aktuelle Version übernehmen?

Ja, über einen mehrstufigen Konvertierungsprozess:

  1. In InfoZoom 4.10 die alte Vorlage öffnen und als Excel-Datei (*.xls) speichern
  2. In der neuen Version dieselbe FOX-Datei öffnen, gleiche Attribute selektieren
  3. Neuen Report erstellen, dann über „Design verwenden" die Excel-Datei importieren
  4. Design und Formate werden automatisch übernommen
F: Kann ich Überschriften im internen Report fixieren?

Im internen Report gibt es leider keine Funktion zum Fixieren von Überschriften (im Gegensatz zu Excel).

💡 9. Sonstiges

F: Welche USB-Netzwerk-Hubs funktionieren mit der Concurrent-Version (Dongle)?

Folgende Hubs sind bei Kunden im Einsatz:

  • myUTN-80 USB Dongleserver von SEH (8 Ports)
  • Ubox 4100 von Lantronix (4 Ports, Discontinued)
F: Wie lasse ich mich über neue Forumsbeiträge benachrichtigen?

Im jeweiligen Forum rechts oben „Aktionen"„Benachrichtigung für das Forum" aktivieren. Dies kann für jedes Forum einzeln eingestellt werden.