[JAVA] Personnalisez la sortie avec la fonction de téléchargement CSV de Wagby

Motivation

Je voulais éditer le contenu du CSV de sortie tout en utilisant la fonction de téléchargement CSV standard.

Comme ce n'était pas sur la page de support, je décrirai ce que j'ai vérifié.

Version Wagby

8.2.0

Chose que tu veux faire

--Je ne veux pas afficher la ligne d'en-tête CSV. --Je veux modifier (formater) le contenu de chaque colonne de sortie.

Évitez d'imprimer des lignes d'en-tête CSV

Première étape

Il semble qu'il ne soit pas recommandé de le faire sur l'application créée par Wagby. S'il peut être traité séparément à l'aide d'un outil ETL, cela peut être plus facile.

Lors de l'exécution sur une application créée avec Wagby

Il est nécessaire de créer une classe qui hérite du Java généré automatiquement et de modifier le contenu de la méthode de sortie CSV.

Classe à hériter: Download model name ProcessBean

DownloadTestProcessBean.java


public Object outputAllData(DbDownloadProcessor out, Map paramMap, boolean getallmodelitem) {
    ...
    // Output header line
    Collection<String> targetitems =
        (Collection<String>) getParameter("targetitems");
    String[] _data = ((jp.jasminesoft.wagby.app.test.TestPCSVHelper)p.appctx.getBean("TestPCSVHelper")).toCsvDataHeader(null, colMap, (ActionParameter)p, getallmodelitem, targetitems);
    out.write(_data);
    ...
}

Un CSV sans en-tête peut être créé en créant une méthode qui supprime le traitement de sortie d'en-tête décrit en remplaçant la méthode ci-dessus.

Ce processus peut changer lorsque la version de Wagby est mise à niveau, il est donc préférable de vérifier si le processus hérité a changé lorsque la version est mise à niveau.

Modifier (formater) le contenu de chaque colonne de sortie

Comme il n'est pas introduit sur la page de support, il semble que ce ne soit pas un point personnalisé standard, mais il existe un javascript appelé au moment de la lecture et de la sortie de chaque ligne, et il est possible d'y modifier le contenu.

nom javascript: nom du modèle + Helper_beforeShowInDownload.js

TestHelper_beforeShowInDownload.js


/**
 *Méthodes appelées depuis Java
 */
function process() {
    //Le contenu du modèle de magasin peut être réécrit
    test.id = "hoge";
}

À ce stade, non seulement la sortie de colonne au format CSV, mais également le modèle de magasin stocke tous les enregistrements du modèle.

Recommended Posts

Personnalisez la sortie avec la fonction de téléchargement CSV de Wagby
Sortie de fichier csv avec csv ouvert
Sortie CSV par Apache Commons CSV
[Ruby on Rails] Fonction de sortie CSV
Implémenter la fonction de téléchargement CSV dans Rails
[Tutoriel] Télécharger Eclipse → Lancer l'application avec Java (Pléiades)
J'ai essayé de lire et de sortir CSV avec Outsystems
Ressort avec Kotorin ―― 3. Omettre les crochets d'onde de la fonction