Après windows pour les nuls, voici PB pour les bons (ou presque).

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 21-04-2010 07:42:10

krimo  
Membre Geek
Date d'inscription: 22-03-2010
Messages: 61
Pépites: 267
Banque: 0

[RESOLU] Problème de filtre

Bonjour,
je suis confronté de à un problème de filtre...
Je m'explique: J'essaie de faire un filtre sur 2 champs(l'un de type varchar et l'autre de type number) d'une datawindows.
Le problème est que lorsque j'exécute, une erreur apparaît avec pour message Excepting TRUE/FALSE Expression.
Pourtant mon code à l'air de fonctionner....
Voilà le bout de code que j'effectue

Code: pb

dw_parametre.setredraw(false)
dw_parametre.SetFilter( "l_parametre LIKE '%" + this.text + "%' and i_parametre = 12")
dw_parametre.Filter()
dw_parametre.Setredraw(true) 


Merci de votre aide

Dernière modification par krimo (21-04-2010 13:16:32)

Hors ligne

 

#2 21-04-2010 08:26:33

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

Re: [RESOLU] Problème de filtre

Bonjour,

On ne peut pas utiliser d'expression SQL dans un filtre, mais des expressions datawindows valides :

Code: pb

dw_parametre.SetFilter("match('" + this.text + "') and i_parametre = 12")

Hors ligne

 

#3 21-04-2010 09:10:31

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Problème de filtre

le LIKE est accepté :

LIKE and NOT LIKE operators

Use LIKE to search for strings that match a predetermined pattern. Use NOT LIKE to search for strings that do not match a predetermined pattern. When you use LIKE or NOT LIKE, you can use the % or _ characters to match unknown characters in a pattern.
For example, the following expression for the Background.Color property of the Salary column displays salaries in red for employees with last names beginning with F and displays all other salaries in white:

If(emp_lname LIKE'F%',RGB(255,0,0),RGB(255,255,255))

Escape keyword   

If you need to use the % or _ characters as part of the string, you can use the escape keyword to indicate that the character is part of the string. For example, the _ character in the following filter string is part of the string to be searched for, but is treated as a wildcard:

comment LIKE ~'%o_a15progress%~'

The escape keyword designates any character as an escape character (do not use a character that is part of the string you want to match). In the following example, the asterisk (*) character is inserted before the _ character and designated as an escape character, so that the _ character is treated as part of the string to be matched:

comment like ~'%o*_a15progress%~' escape ~'*~'

NB : la balise de code PB est en minuscules [ code=pb ] (sans les espaces) et non [ code langage =PB]


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#4 21-04-2010 09:53:10

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

Re: [RESOLU] Problème de filtre

Bonjour,

Effectivement, j'ai été un peu vite pour répondre comme tu as pu le voir .

J'avais en tête cette réponse car de souvenir il me semblait avoir déjà eu ce genre de problème et je l'avais contourné en remplaçant par un match.

Hors ligne

 

#5 21-04-2010 12:49:32

krimo  
Membre Geek
Date d'inscription: 22-03-2010
Messages: 61
Pépites: 267
Banque: 0

Re: [RESOLU] Problème de filtre

Effectivement, les deux solutions fonctionnent ^^
Merci pour l'aide

Hors ligne

 

#6 21-04-2010 13:09:07

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Problème de filtre

OK cool. Petites précisions sur les règles pour poster :

un espace après le [RESOLU] et :

erasorz a écrit:

[ code=pb ] (sans les espaces) et non [ code langage =PB]


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22