[JAVA] Créez un formateur personnalisé pour Yellowfin et affichez le moins de la valeur numérique avec △ (triangle)

Il y a des cas où les nombres négatifs sont écrits comme «△ 100 000» dans les documents relatifs à la comptabilité. Yellowfin peut y parvenir avec ** Custom Formatter **.

** Les plugins Yellowfin ** tels que les formateurs personnalisés sont développés en Java. Cette fois, j'utilise Eclipse (Pleiades qui est une version japonaise d'Eclipse).

La méthode de développement est décrite dans le manuel en ligne de Yellowfin. Principes de base du développement de plug-ins Création d'un formateur personnalisé Dans cet article, nous procéderons au pliage, veuillez donc vous référer au manuel le cas échéant.

Créer un projet Java

Créez un nouveau projet Java. Même si la version Java est 7, elle est écrite dans le manuel, donc JRE doit sélectionner java7. .. image001.png

Cliquez sur Suivant et remplacez le dossier de sortie par défaut par ** / ROOT / WEB-INF / classes **. image002.png

Cliquez avec le bouton droit sur le projet et sélectionnez Importer. image003.png

Sélectionnez Système de fichiers et cliquez sur Suivant. image004.png

** Accédez au <répertoire d'installation Yellowfin> / appserver / webapps / ROOT **. Sélectionnez ROOT et cliquez sur Ouvrir. image005.png

Sélectionnez tout sous ROOT et cochez la case "Créer des liens dans l'espace de travail" dans l'élément "Etendu". image006.png

Structure du projet

Cliquez avec le bouton droit sur le projet et sélectionnez Build Path> Configure Build Path dans le menu. image007.png

Cliquez sur Bibliothèque. image008.png

Cliquez sur le bouton Ajouter JAR et saisissez i4 dans la barre de recherche. Sélectionnez "i4-core.jar" et "i4-mi.jar" dans les résultats de la recherche. image009.png

Créez un nouveau dossier avec le nom ** META-INF ** sous le dossier src. Créez un nouveau dossier nommé ** services ** sous ce dossier. image010.png image011.png

Créez un fichier appelé ** com.hof.mi.interfaces.CustomFormatter ** sous le dossier services. image012.png image013.png

Écrivez com.company.yellowfin.formatters.SankakuFormatter dans le fichier créé. Ce sera le nom de classe complet du formateur personnalisé que vous créez. image014.png

Créer un formateur personnalisé

Cliquez avec le bouton droit sur le projet et sélectionnez Nouveau> Package. Nommez le nouveau package ** com.company.yellowfin.formatters **. (Correspondance avec le nom de classe qualifié complet défini précédemment) image015.png image016.png

Cliquez avec le bouton droit sur le package que vous avez créé et sélectionnez Nouveau> Fichier. Le nom du fichier est ** SankakuFormatter.java **. (Ceci est également combiné avec le nom de classe complet) image017.png image018.png

Collez le code suivant dans SankakuFormatter.java.

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 "Formateur triangulaire";
    }
    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

À propos, l 'exemple de code auquel j'ai fait référence se trouve dans le manuel en ligne.

Créer un fichier JAR

Cliquez avec le bouton droit sur le projet et sélectionnez Exporter. image020.png

Sélectionnez "Fichier JAR". image021.png

Sélectionnez tout ** sauf **. Paramètres et ROOT, spécifiez le nom du fichier JAR (ici ** SankakuFormatter.jar **) et exportez. image022.png

Nouveau plugin ajouté à Yellowfin

Depuis l'écran de gestion du plugin Yellowfin, ajoutez le fichier JAR créé en tant que nouveau plugin. image023.png

Exemple d'utilisation dans le rapport Yellowfin

Le formateur personnalisé créé cette fois est nommé ** Triangle Formatter **. Le nom est spécifié dans ** getName () ** dans SankakuFormatter.java. Avec ce formateur, vous pouvez formater des nombres négatifs avec le symbole "△".

Par exemple, supposons que vous ayez les données simples suivantes. image024.png

Pour ce nombre, spécifiez «formateur triangulaire» dans le format. image025.png

Ensuite, le nombre négatif est affiché sous forme de triangle! image026.png

À première vue, il peut sembler qu'elle a été modifiée en une chaîne avec des symboles, mais en réalité, les données elles-mêmes restent un type numérique simplement en changeant le format apparent, il est donc possible d'appliquer une mise en forme conditionnelle. image027.png image028.png

Bonus: fichier JAR créé cette fois

J'ai mis le fichier JAR créé sur Github. Veuillez l'utiliser si vous le souhaitez! https://github.com/hadatuna/SankakuFormatter

Recommended Posts

Créez un formateur personnalisé pour Yellowfin et affichez le moins de la valeur numérique avec △ (triangle)
Afficher la valeur moyenne de l'évaluation sous forme d'étoile
Créons une application TODO en Java 5 Changer l'affichage de TODO
Extrait la valeur de HashMap et renvoie le résultat trié par valeur de valeur sous forme de liste.
Passez un argument à la méthode et recevez le résultat de l'opération comme valeur de retour
[Java] Lancer une requête et afficher l'écran ② (GET / POST)
[Ruby] Questions et vérification du nombre d'arguments de méthode
Commande pour vérifier le nombre et l'état des threads Java
[Java] Lancer une requête et afficher l'écran (GET / POST)
Je veux appeler une méthode et compter le nombre
J'ai essayé JAX-RS et pris note de la procédure
Un programme qui compte le nombre de mots dans une liste
Créer plus d'onglets et de fragments dans le fragment de BottomNavigationView
Trouvez le nombre de jours dans un mois avec Kotlin
Créez un grand nombre d'enregistrements avec une seule commande à l'aide du fichier seeds.rb Ruby on Rails
J'ai essayé d'exprimer les résultats avant et après de la classe Date avec une ligne droite numérique
Générez un numéro de série avec TableGenerator of Hibernate (JPA) et stockez-le dans l'ID de String.