Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Business Objects > Deski
Deski Forum d'entraide Deski (client lourd)
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 25/07/2011, 21h29   #1
Invité régulier
 
Inscription : décembre 2007
Messages : 30
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 30
Points : 5
Points : 5
Par défaut Identifier un objet numérique

Bonjour,
Je dispose d'un objet de type caractère et j'aurai souhaité s'il serait possible lors de la création d'une requete s'il contient que des chiffre.
Ex: l'objet Nom ne doit pas contenir des chiffre, c'est pour cette raison je voulais lister ces noms erronés dans le fournisseur et non pas dans le rapport vu le nombre important de données.
spopo69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 08h24   #2
Modérateur
 
Avatar de djam21
 
Homme
Consultant en Business Intelligence
Inscription : janvier 2006
Messages : 560
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Luxembourg

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Finance

Informations forums :
Inscription : janvier 2006
Messages : 560
Points : 862
Points : 862
Envoyer un message via Skype™ à djam21
Citation:
Envoyé par spopo69 Voir le message
Bonjour,
Je dispose d'un objet de type caractère et j'aurai souhaité s'il serait possible lors de la création d'une requete s'il contient que des chiffre.
Ex: l'objet Nom ne doit pas contenir des chiffre, c'est pour cette raison je voulais lister ces noms erronés dans le fournisseur et non pas dans le rapport vu le nombre important de données.
Je n'ai pas BO sous les yeux, mais je pense qu'il existe une fonction du genre IsNumeric() qui te permettra de controler si ton objet String est un nombre ou pas...

@+
djam21 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 17h21   #3
Responsable Business Intelligence
 
Avatar de TomDuBouchon
 
Homme Thomas Cochin
Consultant en Business Intelligence
Inscription : juin 2009
Messages : 3 271
Détails du profil
Informations personnelles :
Nom : Homme Thomas Cochin
Âge : 29
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : juin 2009
Messages : 3 271
Points : 5 668
Points : 5 668
Bonjour,

Quoi qu'il se passe, tu n'auras de fonction toute faite pour les identifier, car même si seuls des nombres sont saisis dans un champ texte, ils seront considérés comme du texte.

Donc, il faudra plutôt utiliser une imbrication de fonctions Comparer() :

Code :
=Si(Comparer(<Dimension>,"*0*") Ou Comparer(<Dimension>,"*1*") Ou Comparer(<Dimension>,"*2*") etc...) Alors "Oui" Sinon "Non"
__________________
Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches.
Un message vous a aidé ? Votez en cliquant sur
Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton
Vous souhaitez contribuer à la rubrique BI ? Contactez-moi ou un autre responsable de l'équipe BI par MP.
TomDuBouchon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2011, 10h41   #4
Nouveau Membre du Club
 
Inscription : août 2005
Messages : 73
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 73
Points : 28
Points : 28
Bonjour à tous,

Je met une ptite question sur la réponse de TomDuBouchon, l'utilisation du "*" est comparable au "%" dans un "like" en sql avec BO ? Si oui, c'est le même usage dans DeskI ou WebI ?

Merci d'avance pour la précision.

=======================================================

Sinon pour spopo69, si tu sais touché modifié le SQL des requêtes, une intervention à ce niveau serait préférable, ton besoin est assez spécifique. Après pour la fonction, cela dépend de ton SGBD, mais avec une requête imbriquée, tu devrais pouvoir retirer les lignes qui te posent problème.

Exemple : (ici c est ta dimension contenant du texte et des chiffres)
Select a, b, c from (select a, b, c, isnumeric(c) as estNum from table) where estNum=1
Migraine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2011, 10h51   #5
Responsable Business Intelligence
 
Avatar de TomDuBouchon
 
Homme Thomas Cochin
Consultant en Business Intelligence
Inscription : juin 2009
Messages : 3 271
Détails du profil
Informations personnelles :
Nom : Homme Thomas Cochin
Âge : 29
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : juin 2009
Messages : 3 271
Points : 5 668
Points : 5 668
Effectivement le "*" correspond au "%".
Néanmoins, les deux sont utilisés dans BO selon la fonction utilisée (je sais c'est débile mais c'est comme ça)

Et probablement selon la version aussi. Donc si la formule avec "*" renvoie une erreur, il faut essayer de les remplacer par des "%".
__________________
Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches.
Un message vous a aidé ? Votez en cliquant sur
Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton
Vous souhaitez contribuer à la rubrique BI ? Contactez-moi ou un autre responsable de l'équipe BI par MP.
TomDuBouchon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 11h43   #6
Nouveau Membre du Club
 
Inscription : août 2005
Messages : 73
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 73
Points : 28
Points : 28
Alors pour le coup, en bossant sur un rapport, j'ai retrouvé la fonction "EstChaîne" qui te permet d'identifier si une chaîne de caractère est composé de chiffre ou pas.

Si je ne me trompe pas, ca devrait te solutionner ton problème. Tu n'auras plus qu'à mettre un filtre ect...
Migraine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 13h45   #7
Responsable Business Intelligence
 
Avatar de TomDuBouchon
 
Homme Thomas Cochin
Consultant en Business Intelligence
Inscription : juin 2009
Messages : 3 271
Détails du profil
Informations personnelles :
Nom : Homme Thomas Cochin
Âge : 29
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : juin 2009
Messages : 3 271
Points : 5 668
Points : 5 668
Cette fonction est malheureusement bancale... Et si le champ d'origine est en varchar, elle te renverra toujours 1.
__________________
Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches.
Un message vous a aidé ? Votez en cliquant sur
Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton
Vous souhaitez contribuer à la rubrique BI ? Contactez-moi ou un autre responsable de l'équipe BI par MP.
TomDuBouchon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 13h57   #8
Nouveau Membre du Club
 
Inscription : août 2005
Messages : 73
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 73
Points : 28
Points : 28
Bon à savoir !
Pour info et si tu le sais, quel genre de champ fonctionne dans ce cas (en vocabulaire de BDD) ?

Pour rappel : les chaines de caractères :
Char : Chaîne de caractères de taille fixe
Varchar : Chaîne de caractères compris entre 1 et 255 caractères
Tinyblob : Stocke des chaînes de 255 caractères maximum. Ce champ est sensible à la casse
Tinytext : Stocke des chaînes de 255 caractères maximum. Ce champ est insensible à la casse
Blob : Stocke des Chaînes de 65535 caractères maximum. Ce champ est sensible à la casse.
Text : Stocke des chaînes de 65535 caractères maximum. Ce champ est insensible à la casse.
Mediumblob : Stocke des chaînes de 16777215 caractères maximum.
Mediumtext : Chaîne de 16 777 215 caractères maximum. Ce champ est insensible à la casse.
Longblob : Stocke des chaînes de 4 294 967 295 caractères maximum. Ce champ est sensible à la casse.
Longtext : Stocke des chaînes de 4 294 967 295 caractères maximum.


Bien que franchement, à part Char, varchar et text, j'ai jamais vu les autres utilisées...

NB : Et si il utilise un cast pour changer le type du champ ?
Migraine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2011, 14h58   #9
Responsable Business Intelligence
 
Avatar de TomDuBouchon
 
Homme Thomas Cochin
Consultant en Business Intelligence
Inscription : juin 2009
Messages : 3 271
Détails du profil
Informations personnelles :
Nom : Homme Thomas Cochin
Âge : 29
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : juin 2009
Messages : 3 271
Points : 5 668
Points : 5 668
J'ai dit varchar mais en fait il s'agit de tous les champs texte.

En effet, la formule teste le type de champ, et non pas les données à l'intérieur. Donc même si un champ texte ne contient que des chiffres, il sera quand même considéré comme un champ texte.

Et le cast n'est pas une mauvaise idée, mais si tu cherches à transformer ta chaîne en nombre et qu'il y a bien des caractères, BO te renverra une erreur.
Après, je ne sais pas s'il te renvoie une erreur sur toutes les lignes ou uniquement sur celles contenant des caractères. Dans ce deuxième cas, on pourrait donc utiliser la fonction EstErreur() englobant le cast. (malgré que d'autres erreurs, #VALEURMULTI par exemple, pourrait du coup passer à l'as)
__________________
Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches.
Un message vous a aidé ? Votez en cliquant sur
Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton
Vous souhaitez contribuer à la rubrique BI ? Contactez-moi ou un autre responsable de l'équipe BI par MP.
TomDuBouchon est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h31.


 
 
 
 
Partenaires

Hébergement Web