Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > BIRT
BIRT Forum d'entraide sur BIRT (Business Intelligence and Reporting Tools). Avant de poster --> FAQ BIRT,Tutoriels BIRT
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/06/2011, 16h45   #1
Candidat au titre de Membre du Club
 
Inscription : mai 2009
Messages : 65
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 65
Points : 11
Points : 11
Par défaut Pb de reporting voir détail

Bonjour à tous,
Je souhaite savoir s’il est possible en face d’1 report (unique), d’utiliser un paramètre pour pouvoir éditer soit 1 champ soit 1 autre champ (si ce dernier existe)
Exemple :

J’ai 2 datasources xml de structure suivante :
Datasource1
Code XML :
1
2
3
4
5
6
<Niv1>
    <Par1>Client1</Par1>
    <Par2>0606060606</Par2>
    <Par3>0202020202</Par3>
    <Par4>Paris</Par4>
</Niv1>

Datasource2
Code XML :
1
2
3
4
5
<Niv1>
    <Par1>Client2</Par1>
    <Par3>0202020202</Par3>
    <Par4>Paris</Par4>
</Niv1>

Si <Par2> existe je veux éditer <Par2> sinon j’édite <Par3>
j’ai essayé par l’intermédiaire d’une variable local
comme ceci
Code :
1
2
3
4
5
nom_local=row["Par2"];
}
if (nom_local =="") {
nom_local=row["Par3"];
}
Mais ???????
Rien ne se passe comme je pensais, quelqu’un aurait-il une idée ? cela m’éviterais de faire 2 reports.
Merci d'avance pour vos lumières et bonne fin de journée
rouletabille63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2011, 11h07   #2
Candidat au titre de Membre du Club
 
Inscription : mai 2009
Messages : 65
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 65
Points : 11
Points : 11
Par défaut Euréka j'ai trouvé

bonjour à tous,

en parallèle de la question posée, j'ai continué à chercher, et j'ai trouvé une solution que je vous fais partager.
Les 2 champs (<Par2> <Par3>) sont définis en alpha, et en les concaténant, je me suis aperçus que la nouvelle chaine quand <Par2> n'existe pas est si je fait
nom_local=row["Par2"]+row["Par3"] =====> "null0202020202"
alors je teste avec le "null" de la façon suivante :
Code :
1
2
3
4
5
if (nom_local =="null0202020202") {
nom_local=row["Par3"];
}
else 
nom_local=row["Par2"];
Et oh! miracle ça marche, je ne trouve pas cela élégant mais l'important c'est l'efficacité.
Je profite de ce message pour vous poser une autre question, dans mes recherches, j'ai voulu utiliser les fonctions natives de BIRT, et sur cette exemple je ne vois pas comment faire la syntaxe :
Fonction de chaine :
si je veux extraire une chaine nom_local par la fonction substr(pos,long)
comment faut-il faire car dans birt, je ne vois pas où faut mettre le nom de ma variable, j'ai essayé comme ceci (entre autres)
substr(nom_local,1,4) alors que dans BIRT on met simplement substr (1,4) donc le question de fond est où mettre la variable.
En espérant avoir été assez clair, sinon je peux apporter des compléments de réponses.
Vous remerciant par avance en vous souhaitant un excellent week-end
rouletabille63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2011, 15h04   #3
Candidat au titre de Membre du Club
 
Inscription : mai 2009
Messages : 65
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 65
Points : 11
Points : 11
Par défaut Euréka Bis

Hello,
décidemment tout va de mieux en mieux pour moi dans Birt, car toujours en parallèle de la question posée sur le forum, j'ai cherché et trouvé la syntaxe d'utilisation des fonctions natives, ça donne ceci .
Code :
nom_local=row["Par2"].substr(1,4)
Il fallait tout simplement (mais c'est toujours simple quand on sait !!!!) séparer le champ à traiter (ici pour l'exemple row["Par2"]) de la fonction à utiliser (substr) d'un "." (point). Pour les experts cela peut paraître élémentaire, mais bien que commençant à me sentir à l'aise dans BIRT, je n'en pas explorer tous les recoins. Ce message est destiné à ceux qui comme moi peuvent buter sur de l'élémentaire.
Excellent week-end à tous
rouletabille63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2011, 14h43   #4
Rédacteur/Modérateur
 
Avatar de David55
 
Homme David S.
Etudiant en alternance
Inscription : août 2010
Messages : 1 167
Détails du profil
Informations personnelles :
Nom : Homme David S.
Âge : 22
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Etudiant en alternance
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2010
Messages : 1 167
Points : 2 304
Points : 2 304
Apparemment tu arrive à trouver tes solutions seul!

PS: Utilise les balises code on verra beaucoup mieux
__________________
Vous trouverez ma page perso avec des tutoriels sur Android et BIRT au lien suivant : http://dsilvera.developpez.com
N'oubliez pas de voter pour les messages dont la réponse est pertinente (en bas à droite du cadrant)
Vous voulez afficher du code :
Votre problème est résolu :
Pas de question technique par MP !
David55
David55 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h01.


 
 
 
 
Partenaires

Hébergement Web