[JAVA] Erstellen Sie einen benutzerdefinierten Formatierer für Yellowfin und zeigen Sie das Minus des numerischen Werts mit △ (Dreieck) an.

Es gibt Fälle, in denen negative Zahlen in buchhalterischen Materialien als "△ 100.000" geschrieben werden. Yellowfin kann dies mit ** Custom Formatter ** erreichen.

** Yellowfin-Plugins ** wie benutzerdefinierte Formatierer werden in Java entwickelt. Dieses Mal verwende ich Eclipse (Plejaden, eine japanische Version von Eclipse).

Die Entwicklungsmethode ist im Online-Handbuch von Yellowfin beschrieben. Grundlagen der Plug-In-Entwicklung Erstellen eines benutzerdefinierten Formatierers In diesem Artikel werden wir beim Falten fortfahren. Lesen Sie daher das entsprechende Handbuch.

Erstellen eines Java-Projekts

Erstellen Sie ein neues Java-Projekt. Selbst wenn die Java-Version 7 ist, ist sie im Handbuch geschrieben, daher sollte JRE java7 auswählen. .. image001.png

Klicken Sie auf Weiter und ändern Sie den Standardausgabeordner in ** / ROOT / WEB-INF / classes **. image002.png

Klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie Importieren. image003.png

Wählen Sie Dateisystem und klicken Sie auf Weiter. image004.png

** Navigieren Sie zu / appserver / webapps / ROOT **. Wählen Sie ROOT und klicken Sie auf Öffnen. image005.png

Wählen Sie alles unter ROOT aus und aktivieren Sie das Kontrollkästchen "Links im Arbeitsbereich erstellen" im Element "Erweitert". image006.png

Projektstruktur

Klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie im Menü Build Path> Configure Build Path. image007.png

Klicken Sie auf Bibliothek. image008.png

Klicken Sie auf die Schaltfläche JAR hinzufügen und geben Sie i4 in die Suchleiste ein. Wählen Sie "i4-core.jar" und "i4-mi.jar" aus den Suchergebnissen. image009.png

Erstellen Sie einen neuen Ordner mit dem Namen ** META-INF ** unter dem Ordner src. Erstellen Sie unter diesem Ordner einen neuen Ordner mit dem Namen ** services **. image010.png image011.png

Erstellen Sie eine Datei mit dem Namen ** com.hof.mi.interfaces.CustomFormatter ** im Ordner "services". image012.png image013.png

Schreiben Sie "com.company.yellowfin.formatters.SankakuFormatter" in die erstellte Datei. Dies ist der vollständig qualifizierte Klassenname für den von Ihnen erstellten benutzerdefinierten Formatierer. image014.png

Erstellen eines benutzerdefinierten Formatierers

Klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie Neu> Paket. Nennen Sie das neue Paket ** com.company.yellowfin.formatters **. (Übereinstimmung mit dem zuvor festgelegten vollständig qualifizierten Klassennamen) image015.png image016.png

Klicken Sie mit der rechten Maustaste auf das von Ihnen erstellte Paket und wählen Sie Neu> Datei. Der Dateiname lautet ** SankakuFormatter.java **. (Dies wird auch mit dem vollständig qualifizierten Klassennamen kombiniert.) image017.png image018.png

Fügen Sie den folgenden Code in SankakuFormatter.java ein.

SankakuFormatter.java


package com.company.yellowfin.formatters;
import java.text.NumberFormat;

import com.hof.mi.interfaces.CustomFormatter;

public class SankakuFormatter extends CustomFormatter {
    public String getName() {
            return "Dreiecksformatierer";
    }
    public boolean acceptsNativeType(int type) {
            // We only handle numeric types
            if (type == TYPE_NUMERIC) return true;
            return false;
    }
    public String render(Object value, int renderType) throws Exception {
            if (value == null) return null;
            if (renderType == RENDER_LINK) {
                  // Return a generic version of the value
                  return value.toString();
            }

    // Create a String representing the value
    NumberFormat nf = NumberFormat.getNumberInstance();
    String mark = "";
    String valStr = value.toString();
    double valNum = Double.parseDouble(valStr);
    double val = valNum;
    if (valNum < 0 ) {
    	mark = "△";
    	val = Math.abs(val);
    	}
    return mark + nf.format(val);
    }
}
image019.png

Das Codebeispiel, auf das ich mich bezog, befindet sich übrigens im Online-Handbuch.

Erstellen einer JAR-Datei

Klicken Sie mit der rechten Maustaste auf das Projekt und wählen Sie Exportieren. image020.png

Wählen Sie "JAR-Datei". image021.png

Wählen Sie alle ** außer ** aus. Einstellungen und ROOT, geben Sie den Namen der JAR-Datei an (hier ** SankakuFormatter.jar **) und exportieren Sie. image022.png

Neues Plugin zu Yellowfin hinzugefügt

Fügen Sie im Bildschirm zur Verwaltung des Yellowfin-Plug-Ins die erstellte JAR-Datei als neues Plug-In hinzu. image023.png

Anwendungsbeispiel im Yellowfin-Bericht

Der diesmal erstellte benutzerdefinierte Formatierer heißt ** Dreiecksformatierer **. Der Name wird in ** getName () ** in SankakuFormatter.java angegeben. Mit diesem Formatierer können Sie negative Zahlen mit dem Symbol "△" formatieren.

Angenommen, Sie haben die folgenden einfachen Daten. image024.png

Geben Sie für diese Nummer im Format "Dreiecksformatierer" an. image025.png

Dann wird die negative Zahl als Dreiecksymbol angezeigt! image026.png

Auf den ersten Blick scheint es, als ob es zu einer Zeichenfolge mit Symbolen geändert wurde, aber in Wirklichkeit bleiben die Daten selbst ein numerischer Typ, indem nur das scheinbare Format geändert wird, sodass eine bedingte Formatierung angewendet werden kann. image027.png image028.png

Bonus: Diesmal wurde eine JAR-Datei erstellt

Ich habe die erstellte JAR-Datei auf Github abgelegt. Bitte benutzen Sie es, wenn Sie möchten! https://github.com/hadatuna/SankakuFormatter

Recommended Posts

Erstellen Sie einen benutzerdefinierten Formatierer für Yellowfin und zeigen Sie das Minus des numerischen Werts mit △ (Dreieck) an.
Zeigen Sie den Durchschnittswert der Bewertung als Stern an
Lassen Sie uns eine TODO-App in Java 5 erstellen. Schalten Sie die Anzeige von TODO um
Extrahiert den Wert von HashMap und gibt das nach dem Wert von value sortierte Ergebnis als Liste zurück.
Übergeben Sie ein Argument an die Methode und erhalten Sie das Ergebnis der Operation als Rückgabewert
[Java] Wirf eine Anfrage und zeige den Bildschirm ② (GET / POST) an.
[Ruby] Fragen und Überprüfung der Anzahl der Methodenargumente
Befehl zum Überprüfen der Anzahl und des Status von Java-Threads
[Java] Wirf eine Anfrage und zeige den Bildschirm an (GET / POST)
Ich möchte eine Methode aufrufen und die Nummer zählen
Ich habe JAX-RS ausprobiert und mir das Verfahren notiert
Ein Programm, das die Anzahl der Wörter in einer Liste zählt
Erstellen Sie weitere Registerkarten und Fragmente im Fragment von BottomNavigationView
Finden Sie mit Kotlin die Anzahl der Tage in einem Monat
Erstellen Sie mit der Datei Ruby on Rails seeds.rb eine große Anzahl von Datensätzen mit einem einzigen Befehl
Ich habe versucht, die Ergebnisse vor und nach der Date-Klasse mit einer geraden Zahl auszudrücken
Generieren Sie mit TableGenerator of Hibernate (JPA) eine Seriennummer und speichern Sie diese in der ID von String.