IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement de jobs Discussion :

Sommes de colonnes CSV variables


Sujet :

Développement de jobs

  1. #1
    Membre à l'essai
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Mai 2012
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Mai 2012
    Messages : 24
    Points : 18
    Points
    18
    Par défaut Sommes de colonnes CSV variables
    Bonjour,

    Je cherche un moyen de rajouter en bas des colonnes d'un CSV la somme des valeurs de chaque colonne, sachant qu'on ne connaît pas le nombre de colonnes du CSV à l'avance, il fluctue.

    En entrée un CSV de la forme : Date ; Réf ; Nom ; ValNum1 ; ValNum2 ; ValNum3 ; ... ; ValNumN

    N de la colonne de ValNumN varie d'une fois à l'autre.

    En sortie : le même CSV avec pour toutes les colonnes ValNum[1-N], la somme en dernière ligne.

    Une idée de comment procéder avec TOS DI ? Merci.

  2. #2
    Membre expérimenté Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    796
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 796
    Points : 1 686
    Points
    1 686
    Par défaut
    Salut,
    J'ai résolu ton problème.
    Tu peux importer le job en pièce jointe dans Talend via le menu "Importer des éléments".

    Nom : sommeCsv.png
Affichages : 336
Taille : 39,5 Ko

    Dans le tJava_1, je défini des constantes.
    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    final String separator = ";";
    // J'ai considéré que le caractère d'échapement est celui d'entourage , cette ligne est à supprimée si tu n'utilises pas les option csv
    final String echapement =  "\"";

    Dans le tFileInputDelimeted_1 je l'ai configuré comme ceci,
    Dans le schema j'ai défini que les données sûr mais j'aurai juste pu mettre la première, car en fait le traitement sur les données sont fait dans le tJavaFlex_1 suivant et le tFileInputDelimeted_1 défini un tableau avec les données d'une ligne :
    Nom : csvSommeInput.png
Affichages : 338
Taille : 62,7 Ko

    Dans le tJavaFlex :
    Début :
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    //te tableau avec les sommes
    // J'ai décidé de travailler avec des double mais tu peux travailler avec des Integer
    Double[] sums = null;
    //nombre de champs non numérique
    final int NB_STRING_FIELDS = 3;
    // Une classe utilitaire qui va me permettre de reconstruire la ligne du csv
    class CsvLineBuilder {
     
    		String buildLine(List fieds){
    		boolean first = true;
    		StringBuilder builder = new StringBuilder();
    		for(Object o : fieds){
    			if(first){
    				first = false;
    			}
    			else{
    				builder.append(separator);
    			}
    			if(o != null){
    				String s =  o.toString();
                                    // A supprimer si tu n'utilise pas les options csv
    				if(s.indexOf(separator) >= 0 || s.indexOf(echapement) >= 0 ){
                                            // Attention j'ai oublié les retours à la ligne, si ça te pose problème reviens vers moi
    					s = echapement + ( s.replaceAll(java.util.regex.Pattern.quote(echapement), echapement + echapement) )  + echapement;
    				}
    				builder.append(s);
    			}
    		}
    		return builder.toString();
    	}
     
     
    }
     
    CsvLineBuilder csvLineBuilder = new CsvLineBuilder();
    Principal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    // INIT SUMS line TABLE
    if(sums == null){
    	sums = new Double[rowtFileInputDelimited_1.length];
    }
     
    for(int cpt = NB_STRING_FIELDS; cpt < sums.length ; cpt++){
    	try{
                    // A modifier si tu travaille avec des integers : int value = Integer.parseInt(rowtFileInputDelimited_1[cpt]); 
    		double value = Double.parseDouble(rowtFileInputDelimited_1[cpt]);
    		if(sums[cpt] == null){
    			sums[cpt] = value;
    		}else{
    			sums[cpt] += value;
    		}
    	}
    	catch(NumberFormatException nfe){
    	    // A supprimer si tu supprimes les logs : nfe.printStackTrace();
    		talendLogs_LOGS.addMessage(currentComponent.substring(0,currentComponent.indexOf("_")), currentComponent, 5, nfe.getMessage(), 4);
    		talendLogs_LOGSProcess(globalMap);
    	}
    }
     
    //Je build ma ligne avec la ligne extraite par le tFileInputDelimeted
    row2.content = csvLineBuilder.buildLine(java.util.Arrays.asList(rowtFileInputDelimited_1));
    Fin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    globalMap.put("LINE_TOTAL" , csvLineBuilder.buildLine(java.util.Arrays.asList(sums)));
    Je mets dans la globalMap la derniere ligne que je build, elle sera ensuite utilisé dans le tFixedFlowInput

    Le tFileOutputDelimeted_1 fait office de tFileOutputFullRow_1 fait gaffe sont context contient qu'une colonne content qui contient une ligne du csv

    Ensuite je récupère la derniere ligne dans tFixedFlowInput_1 pour la flushé.

    Certe c'est pas facile, mais j'ai testé avec le fichier :

    [code]10-01-2015;REF1;NOM1;1;2;3;4;5;6;7;8
    11-01-2015;REF2;NOM2;1;2;3;4;5;6;7;8
    11-01-2015;REF3;NOM3;10;20;30;40;50;60;70;80[code]

    et j'ai le résultat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    10-01-2015;REF1;NOM1;1;2;3;4;5;6;7;8
    11-01-2015;REF2;NOM2;1;2;3;4;5;6;7;8
    11-01-2015;REF3;NOM3;10;20;30;40;50;60;70;80
    ;;;12.0;24.0;36.0;48.0;60.0;72.0;84.0;96.0
    Pense à changer les chemin des fichiers, et remets la configuration par défaut pour les logs.

    Pose-moi toutes questions si tu veux comprendre certaines choses.
    Fichiers attachés Fichiers attachés
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

    Quand une discution est résolue depuis un moment pour revenir dessus, il est mieux d'en crée une nouvelle avec un lien vers l'autre car :
    • Elle sera en haut du forum, elle sera donc plus visible
    • Une discussion résolue, on ne passe pas dessus pour aider, on passe dessus si on a le même problème
    • Tu demandes surement à tes clients de faire le même

  3. #3
    Membre à l'essai
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Mai 2012
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Mai 2012
    Messages : 24
    Points : 18
    Points
    18
    Par défaut
    Merci supergeoffrey, ça promet !

    Mais pour le moment, le tJavaFlex me chiffonne à l'exécution : rowtFileInputDelimited_1 cannot be resolved to a variable (3 fois).

  4. #4
    Membre expérimenté Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    796
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 796
    Points : 1 686
    Points
    1 686
    Par défaut
    Tu as quelle version de Talend? J'utilise une version 5.4 pour mes exemple. Comme ça les gens peuvent migrer facilement.

    As-tu fait des modification ? Si oui lesquelles ?

    Peux-tu checker l'identifiant du tFileInputDelimeted. Si c'est toujours le tFileInputDelimeted_1
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

    Quand une discution est résolue depuis un moment pour revenir dessus, il est mieux d'en crée une nouvelle avec un lien vers l'autre car :
    • Elle sera en haut du forum, elle sera donc plus visible
    • Une discussion résolue, on ne passe pas dessus pour aider, on passe dessus si on a le même problème
    • Tu demandes surement à tes clients de faire le même

  5. #5
    Membre à l'essai
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Mai 2012
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Mai 2012
    Messages : 24
    Points : 18
    Points
    18
    Par défaut
    C'est une version 6.0.0 de TOS DI sur Ubuntu.

    C'est bien tFileInputDelimited_1 et je n'ai modifié que le "Nom de fichier/Flux" dans ses "Paramètres simples" et décoché les options CSV.

    Dans tJavaFlex, j'ai commenté :
    dans
    • dans Code initial :
      // if(s.indexOf(separator) >= 0 || s.indexOf(echapement) >= 0 ){
      // s = echapement + ( s.replaceAll(java.util.regex.Pattern.quote(echapement), echapement + echapement) ) + echapement;
      // }
    • dans Code principal :
      catch(NumberFormatException nfe){
      // A supprimer si tu supprimes les logs
      // talendLogs_LOGS.addMessage(currentComponent.substring(0,currentComponent.indexOf("_")), currentComponent, 5, nfe.getMessage(), 4);
      // talendLogs_LOGSProcess(globalMap);
      }

  6. #6
    Membre expérimenté Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    796
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 796
    Points : 1 686
    Points
    1 686
    Par défaut
    Citation Envoyé par mpintor Voir le message
    C'est une version 6.0.0 de TOS DI sur Ubuntu.

    C'est bien tFileInputDelimited_1 et je n'ai modifié que le "Nom de fichier/Flux" dans ses "Paramètres simples" et décoché les options CSV.

    Dans tJavaFlex, j'ai commenté :
    dans
    • dans Code initial :
      // if(s.indexOf(separator) >= 0 || s.indexOf(echapement) >= 0 ){
      // s = echapement + ( s.replaceAll(java.util.regex.Pattern.quote(echapement), echapement + echapement) ) + echapement;
      // }
    • dans Code principal :
      catch(NumberFormatException nfe){
      // A supprimer si tu supprimes les logs
      // talendLogs_LOGS.addMessage(currentComponent.substring(0,currentComponent.indexOf("_")), currentComponent, 5, nfe.getMessage(), 4);
      // talendLogs_LOGSProcess(globalMap);
      }
    Ok je pense que la génération du code n'est pas la même, sans options csv.
    Je regarderai ça cet aprem.
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

    Quand une discution est résolue depuis un moment pour revenir dessus, il est mieux d'en crée une nouvelle avec un lien vers l'autre car :
    • Elle sera en haut du forum, elle sera donc plus visible
    • Une discussion résolue, on ne passe pas dessus pour aider, on passe dessus si on a le même problème
    • Tu demandes surement à tes clients de faire le même

  7. #7
    Membre expérimenté Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    796
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 796
    Points : 1 686
    Points
    1 686
    Par défaut
    Quand je supprime les options csv, j'ai la même erreur que toi.

    Pour moi je plus simple c'est que tu remettes les options CSV.
    Et utiliser le séparateur comme caractère d’échappement et d'entourage.
    C'est un peu moche, j'avoue, mais comme tu n'as pas d'option CSV tu ne risque pas d'avoir de séparateur dans tes données.

    Nom : csvSommeINputV2.png
Affichages : 323
Taille : 49,0 Ko
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

    Quand une discution est résolue depuis un moment pour revenir dessus, il est mieux d'en crée une nouvelle avec un lien vers l'autre car :
    • Elle sera en haut du forum, elle sera donc plus visible
    • Une discussion résolue, on ne passe pas dessus pour aider, on passe dessus si on a le même problème
    • Tu demandes surement à tes clients de faire le même

  8. #8
    Membre expérimenté Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    796
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 796
    Points : 1 686
    Points
    1 686
    Par défaut
    Voici une solution qui remplace le tFileInputDelimeted
    Par un tFileInputFullRow et tExtractDelimetedField c'est un peut plus sexy
    Fichiers attachés Fichiers attachés
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

    Quand une discution est résolue depuis un moment pour revenir dessus, il est mieux d'en crée une nouvelle avec un lien vers l'autre car :
    • Elle sera en haut du forum, elle sera donc plus visible
    • Une discussion résolue, on ne passe pas dessus pour aider, on passe dessus si on a le même problème
    • Tu demandes surement à tes clients de faire le même

  9. #9
    Membre à l'essai
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Mai 2012
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Mai 2012
    Messages : 24
    Points : 18
    Points
    18
    Par défaut
    Ah oui, ça le fait bien cette version, encore merci !

    J'ai un peu pataugé parce que les valeurs numériques sont de la forme a,b dans le fichier d'entrée et non a.b : en remplaçant à l'éditeur les , par des . ça fonctionne.
    Mais n'y a-t-il pas un moyen de traiter ça directement dans le javaflex ?

    Mais aussi, ne suffirait-il pas de faire la somme des colonnes et de "l'écrire après" dans le CSV utilisé en input ?
    Ça m'irait tout aussi bien, d'autant que j'ai une ligne d'entête du CSV d'input qui a sauté dans la bataille, j'avais omis de le spécifier au début de ce sujet, désolé. En rajoutant juste une dernière ligne de sommes, on préserve tout le reste...

  10. #10
    Membre à l'essai
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Mai 2012
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Mai 2012
    Messages : 24
    Points : 18
    Points
    18
    Par défaut
    Je me réponds à moi-même pour :
    Citation Envoyé par mpintor Voir le message
    Mais aussi, ne suffirait-il pas de faire la somme des colonnes et de "l'écrire après" dans le CSV utilisé en input ?
    Ça m'irait tout aussi bien, d'autant que j'ai une ligne d'entête du CSV d'input qui a sauté dans la bataille, j'avais omis de le spécifier au début de ce sujet, désolé. En rajoutant juste une dernière ligne de sommes, on préserve tout le reste...
    J'ai juste commenté dans le javaflex
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    //row6.content = field_tExtractDelimitedFields_1;
    Supprimé le lien main entre ce tJavaFlex et tUnite, qui a aussi été supprimé. Puis mis un OnComponent OK entre le tJavaFlex et le tFixedFlowInput_2 qui sort directement vers le tFileOutputDelimited_2 dont le nom de fichier est celui en input.

    Nom : Capture du 2016-02-17 16:11:55.png
Affichages : 315
Taille : 25,3 Ko

    Il me reste à voir la question des virgules dans les doubles...

  11. #11
    Membre expérimenté Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    796
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 796
    Points : 1 686
    Points
    1 686
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    java.text.DecimalFormatSymbols symb = new java.text.DecimalFormatSymbols();
    symb.setDecimalSeparator(',');
    final java.text.DecimalFormat df = new java.text.DecimalFormat("0.#####################################",symb); 
     
    Double[] sums = null;
    final int NB_STRING_FIELDS = 3;
     
    class CsvLineBuilder {
     
    		String buildLine(List<Double> fieds){
    		boolean first = true;
    		StringBuilder builder = new StringBuilder();
    		for(Double o : fieds){
    			if(first){
    				first = false;
    			}
    			else{
    				builder.append(separator);
    			}
    			if(o != null){
    				builder.append(df.format(o));
    			}
    		}
    		return builder.toString();
    	}
     
     
    }
     
    CsvLineBuilder csvLineBuilder = new CsvLineBuilder();
    Change le code de début du tJavaFlex
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

    Quand une discution est résolue depuis un moment pour revenir dessus, il est mieux d'en crée une nouvelle avec un lien vers l'autre car :
    • Elle sera en haut du forum, elle sera donc plus visible
    • Une discussion résolue, on ne passe pas dessus pour aider, on passe dessus si on a le même problème
    • Tu demandes surement à tes clients de faire le même

  12. #12
    Membre à l'essai
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Mai 2012
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Mai 2012
    Messages : 24
    Points : 18
    Points
    18
    Par défaut
    Tu es décidément ultra prompt à apporter ton aide, merci !

    En même temps, n'y connaissant pas grand chose à java, j'ai juste touché le Code initial du tJavaFlex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    Double[] sums = null;
    final int NB_STRING_FIELDS = 3;
    
    class CsvLineBuilder {
    		String Sommes = new String("");
    		String buildLine(List fieds){
    		boolean first = true;
    		StringBuilder builder = new StringBuilder();
    		for(Object o : fieds){
    			if(first){
    				first = false;
    			}
    			else{
    				builder.append(separator);
    			}
    			if(o != null){
    				builder.append(o);
    			}
    		}
    		Sommes = builder.toString();
    		Sommes = Sommes.replace('.',',');
    		return Sommes;
    	}
    
    
    }
    
    CsvLineBuilder csvLineBuilder = new CsvLineBuilder();
    Et celui du Code Principal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    // INIT SUMS line TABLE
    if(sums == null){
    	sums = new Double[newFields_tExtractDelimitedFields_1.length];
    }
    
    for(int cpt = NB_STRING_FIELDS; cpt < sums.length ; cpt++){
    	try{
    		double value = Double.parseDouble(newFields_tExtractDelimitedFields_1[cpt].replaceAll(",","."));
    		if(sums[cpt] == null){
    			sums[cpt] = value;
    		}else{
    			sums[cpt] += value;
    		}
    	}
    	catch(NumberFormatException nfe){
    	    // A supprimer si tu supprimes les logs 
    		talendLogs_LOGS.addMessage(currentComponent.substring(0,currentComponent.indexOf("_")), currentComponent, 5, nfe.getMessage(), 4);
    		talendLogs_LOGSProcess(globalMap);
    	}
    }
    
    //row6.content = field_tExtractDelimitedFields_1;
    Et ça fonctionne !

  13. #13
    Membre expérimenté Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    796
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2010
    Messages : 796
    Points : 1 686
    Points
    1 686
    Par défaut
    Si c'est pour parser des nombres à virgules c'est dans le code main
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    if(sums == null){
    	sums = new Double[newFields_tExtractDelimitedFields_1.length];
    }
     
    for(int cpt = NB_STRING_FIELDS; cpt < sums.length ; cpt++){
    	try{
    	    Number number = df.parse(newFields_tExtractDelimitedFields_1[cpt]);
        	double value = number.doubleValue();
    		//double value = Double.parseDouble(newFields_tExtractDelimitedFields_1[cpt]);
    		if(sums[cpt] == null){
    			sums[cpt] = value;
    		}else{
    			sums[cpt] += value;
    		}
    	}
    	catch(java.text.ParseException nfe){
    	    nfe.printStackTrace();
    	    // A supprimer si tu supprimes les logs 
    		talendLogs_LOGS.addMessage(currentComponent.substring(0,currentComponent.indexOf("_")), currentComponent, 5, nfe.getMessage(), 4);
    		talendLogs_LOGSProcess(globalMap);
    	}
    }
     
    row6.content = field_tExtractDelimitedFields_1;
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

    Quand une discution est résolue depuis un moment pour revenir dessus, il est mieux d'en crée une nouvelle avec un lien vers l'autre car :
    • Elle sera en haut du forum, elle sera donc plus visible
    • Une discussion résolue, on ne passe pas dessus pour aider, on passe dessus si on a le même problème
    • Tu demandes surement à tes clients de faire le même

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL] Somme de colonnes sur des variables indicées
    Par blastfrance dans le forum SAS Base
    Réponses: 14
    Dernier message: 11/10/2018, 16h31
  2. [XL-2013] Blocage pour faire une somme dans colonne variable
    Par damprt dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/01/2016, 16h00
  3. [XL-2007] Somme de colonnes de longueur variable
    Par jerdel dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 02/04/2012, 17h37
  4. Somme de colonne comme sur Sql Server
    Par Soulama dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 16/06/2010, 13h51
  5. affecter le résultat de chaque colonne à une variable
    Par zut94 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 21/11/2005, 17h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo