Quoi, tu ne connais pas PB ? Va falloir parcourir tout le forum alors !

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 11-03-2016 14:11:53

Dodger  
Membre
Lieu: Dijon
Date d'inscription: 09-01-2008
Messages: 11
Pépites: 51
Banque: 0

Remplacement de caractéres dans un setFilter PB11.5

Auteur: Dodger
Bonjour à tous,

Je désespère avec un setFilter dans une DW ...

Le but est de filtrer le contenu d'une DW avec une chaine de caractère saisie par l'utilisateur sans respecter la casse ni les caractères accentués...

Je pensais utiliser la fonction TRANSLATE d'oracle pour avoir quelque chose comme :
translate(lower(MON_CHAMP) ,'éèêëàäâîïôöûüçÉÈÊËÀÄÂÎÏÔÖÛÜÇ','eeeeaaaiioouucEEEEAAAIIOOUUC') LIKE ...

Mon problème est que la fonction translate n'est pas reconnue dans un SetFilter

Message : User function was not found.

avant de passer a des chose plus crade comme definir une nouvelle colonne sans accents ni majuscule pour le filtre ou remplacer le setFilter par un getSqlSelect,  modif à la barbarre suivi d'un setSqlSelect, je pose la question aux pro du PB.

Merci

Hors ligne

 

#2 11-03-2016 14:25:14

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2483
Pépites: 76
Banque: 9,223,372,036,854,776,000

Re: Remplacement de caractéres dans un setFilter PB11.5

Tu as essayé la fonction PB Upper?
Il faudrait aussi que tu regardes l'utilisation des expressions régulières: Il y a plusieurs exemples sur ce forum.


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#3 11-03-2016 14:37:16

Dodger  
Membre
Lieu: Dijon
Date d'inscription: 09-01-2008
Messages: 11
Pépites: 51
Banque: 0

Re: Remplacement de caractéres dans un setFilter PB11.5

Merci de ta réponse, le problème du Upper() est qu'il ne "supprime" pas les accents

Pour les expressions régulières, je vais regarder même si j'ai un doute sur la transformation d'une colonne pour faire un filtre (je les réservent plus pour les masques de saisie, non ? )

@+ Dodger

Hors ligne

 

#4 11-03-2016 15:09:15

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2483
Pépites: 76
Banque: 9,223,372,036,854,776,000

Re: Remplacement de caractéres dans un setFilter PB11.5

Sinon, tu as possibilité  d'utiliser les fonctions pos et Replace de PB. En les intégrant dans une fonction globale, ça devrait même être réutilisable partout dans ton application.
(Note: je crois que dans les PFC, il existe une fonction of_global_replace qui devrait déjà gérer ça).


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#5 11-03-2016 16:30:29

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 745
Pépites: 1,028,837
Banque: 171,170,849,654

Re: Remplacement de caractéres dans un setFilter PB11.5

Bonjour,

Sinon, tu peux ajouter une computed column à la requête SQL de ta datawindow avec la fonction translate d'oracle et tu fais le SetFilter sur cette nouvelle colonne.

Hors ligne

 

#6 14-03-2016 07:21:58

Dodger  
Membre
Lieu: Dijon
Date d'inscription: 09-01-2008
Messages: 11
Pépites: 51
Banque: 0

Re: Remplacement de caractéres dans un setFilter PB11.5

Merci buck,

Nous avons eu la même idée, que j'ai d’ailleurs mise en oeuvre dés vendredi ;-)
Dommage que Sybase n'ai pas prévu une petit fonction pour ce cas.

Bien sur Foon je vais utiliser les fonction pos et replace pour formater ma chaine d'entrée.

Merci a tous les deux pour votre aide.

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22