Pas de problème (pb), que du PowerBuilder (PB) ^^

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 05-09-2007 12:26:05

Nephtis  
Bienfaiteur du site
Award: bf
Lieu: Longjumeau
Date d'inscription: 29-06-2007
Messages: 665
Pépites: 17,189,873,958
Banque: 9,223,372,036,854,775,808

[RESOLU] Fonctions sur les filtres

Bonjour,

Je recherche l'équivalent de la fonction IN en SQL pour l'appliquer dans un de mes filtres.

Connaissez vous si elle existe? (j'ai recherché dans la lsite des fonctions proposées dans le painter de filtre mais je ne l'ai pas trouvé)

Merci de vos réponses

Dernière modification par Nephtis (06-09-2007 12:32:00)


Qui sème des problèmes, récolte des réponses.
PB 6.5 || ASE 12.5.4 || XP SP3

Hors ligne

 

#2 05-09-2007 13:15:20

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

Re: [RESOLU] Fonctions sur les filtres

Bonjour, colonne IN (valeur1, valeur2) fonctionne.


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

Hors ligne

 

#3 05-09-2007 13:19:27

Tonio  
Membre
Lieu: Lille
Date d'inscription: 30-07-2007
Messages: 10
Pépites: 30
Banque: 0

Re: [RESOLU] Fonctions sur les filtres

Salut!

Tu ne trouveras pas l'équivalent du IN.
Par contre je te conseille de regarder le CASE...WHEN. Cela doit répondre à ton besoin (tu peux mettre plusieurs valeurs dans un when)

Hors ligne

 

#4 05-09-2007 13:20:51

Tonio  
Membre
Lieu: Lille
Date d'inscription: 30-07-2007
Messages: 10
Pépites: 30
Banque: 0

Re: [RESOLU] Fonctions sur les filtres

oups! savais pas

Hors ligne

 

#5 06-09-2007 11:25:03

Nephtis  
Bienfaiteur du site
Award: bf
Lieu: Longjumeau
Date d'inscription: 29-06-2007
Messages: 665
Pépites: 17,189,873,958
Banque: 9,223,372,036,854,775,808

Re: [RESOLU] Fonctions sur les filtres

Je viens de tester dans le painter de filtre et l'expression est incorrecte.

mon expression : id_titre IN (2185)


NB : Pour l'exemple je n'ai qu'une seule valeur dans la liste de valeurs possibles mais dans l'absolu il y en aura plusieurs (de toutes façon même en mettant deux valeurs ça plante à la verification)

Dernière modification par Nephtis (06-09-2007 11:25:50)


Qui sème des problèmes, récolte des réponses.
PB 6.5 || ASE 12.5.4 || XP SP3

Hors ligne

 

#6 06-09-2007 11:39:30

hellkinder  
Kinder Surprise
Award: chocomordutk6
Lieu: Bordeaux
Date d'inscription: 12-09-2006
Messages: 902
Pépites: 0
Banque: 10,524,230,367,490

Re: [RESOLU] Fonctions sur les filtres

ce que je fais :

Code: pb

if lds_reservation.rowcount() > 0 then
    ls_filtre = "code_position <> '"+lds_reservation.getitemstring(1,"code_position") +"'"
    if lds_reservation.rowcount() > 1 then
      for i = 2 to lds_reservation.rowcount()
        ls_filtre = ls_filtre + " and code_position <> '"+lds_reservation.getitemstring(i,"code_position")+"'"
      next
    end if
  end if


Et c'est l'equivalent d'un

Where code_position NOT IN (01,02,03 etc.....

Donc pour faire un IN, tu remplaces "<>" par "="

Dernière modification par hellkinder (06-09-2007 11:40:15)


http://img510.imageshack.us/img510/4229/userbar1204625572ha9.gif
"Pour la première fois dans l'histoire de l'humanité, tous les peuples de la Terre ne forment qu'un"

Hors ligne

 

#7 06-09-2007 11:44:11

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 30-05-2006
Messages: 4682
Pépites: 1,016
Banque: 2,147,483,647
Site web

Re: [RESOLU] Fonctions sur les filtres

le in fonctionne tres bien sur le filter de la datawindow


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#8 06-09-2007 11:55:00

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

Re: [RESOLU] Fonctions sur les filtres

hellkinder a écrit:

ce que je fais :

Code: pb

if lds_reservation.rowcount() > 0 then
    ls_filtre = "code_position <> '"+lds_reservation.getitemstring(1,"code_position") +"'"
    if lds_reservation.rowcount() > 1 then
      for i = 2 to lds_reservation.rowcount()
        ls_filtre = ls_filtre + " and code_position <> '"+lds_reservation.getitemstring(i,"code_position")+"'"
      next
    end if
  end if


Et c'est l'equivalent d'un

Where code_position NOT IN (01,02,03 etc.....

Donc pour faire un IN, tu remplaces "<>" par "="

tu remplaces "<>" par "=" et "and" par "or"

mais en principe le IN fonctionne...


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

Hors ligne

 

#9 06-09-2007 11:56:20

hellkinder  
Kinder Surprise
Award: chocomordutk6
Lieu: Bordeaux
Date d'inscription: 12-09-2006
Messages: 902
Pépites: 0
Banque: 10,524,230,367,490

Re: [RESOLU] Fonctions sur les filtres

eRaSorZ a écrit:

et "and" par "or"

Exact ! Heureusement que y'en a qui suivent!


http://img510.imageshack.us/img510/4229/userbar1204625572ha9.gif
"Pour la première fois dans l'histoire de l'humanité, tous les peuples de la Terre ne forment qu'un"

Hors ligne

 

#10 06-09-2007 12:05:27

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 30-05-2006
Messages: 4682
Pépites: 1,016
Banque: 2,147,483,647
Site web

Re: [RESOLU] Fonctions sur les filtres

Nephtis a écrit:

Je viens de tester dans le painter de filtre et l'expression est incorrecte.

mon expression : id_titre IN (2185)


NB : Pour l'exemple je n'ai qu'une seule valeur dans la liste de valeurs possibles mais dans l'absolu il y en aura plusieurs (de toutes façon même en mettant deux valeurs ça plante à la verification)

id_titre est du type char  ? des fois ?


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#11 06-09-2007 12:07:19

thezerg  
Modérateur
Award: calimero
Lieu: Bordeaux
Date d'inscription: 12-09-2006
Messages: 966
Pépites: 22,449
Banque: 154,120,629,477,379,104

Re: [RESOLU] Fonctions sur les filtres

Nephtis a écrit:

Je viens de tester dans le painter de filtre et l'expression est incorrecte.

mon expression : id_titre IN (2185)

et id_titre IN ('2185') ?

Hors ligne

 

#12 06-09-2007 12:08:12

Nephtis  
Bienfaiteur du site
Award: bf
Lieu: Longjumeau
Date d'inscription: 29-06-2007
Messages: 665
Pépites: 17,189,873,958
Banque: 9,223,372,036,854,775,808

Re: [RESOLU] Fonctions sur les filtres

J'avais bien cette solution mais je sais pas pourquoi je préférais m'enteter à faire marcher le IN (il est présent dans l'aide de powerbuilder)

Mais bon faut quand même avancer dans le travail


Voilà le script pour simuler un IN:

Code: pb

//  identifiant IN (val1, val2, ...)
//  (identifiant = val1 OR identifiant = val2 OR ...)
//
//  Exemple : un_autre_champ = une_autre_valeur AND (identifiant = val1 OR identifiant = val2 OR ...)
//  un_autre_champ = une_autre_valeur AND identifiant = val1 OR (identifiant = val2 OR ...)


// L'expression que l'on souhaite appliquer comme filtre
ls_mon_filtre = ""
li_taille_tableau = UpperBound (la_mon_tableau)

If (li_taille_tableau > 0) Then
      // clefs " OR " qui constituent un IN
  ls_mon_filtre = ls_mon_filtre + " (identifiant = " + String(la_mon_tableau[1])
  // Ensuite il va falloir regarder si il y a plus d'une valeur dans le tableau
  // Si il n'y en avait qu'une alors on ne rentre pas dans la boucle for et donc on a fini
  // Si il en avait au moins deux alors il faut rajouter les autres tests en les separant par le mot clef
  // " OR "
  For li_curseur = 2 To li_taille_tableau
    ls_mon_filtre = ls_mon_filtre + " OR identifiant = " + String(la_mon_tableau[li_curseur])
  Next
    ls_mon_filtre = ls_mon_filtre + ") "
End If

Qui sème des problèmes, récolte des réponses.
PB 6.5 || ASE 12.5.4 || XP SP3

Hors ligne

 

#13 06-09-2007 12:10:03

Nephtis  
Bienfaiteur du site
Award: bf
Lieu: Longjumeau
Date d'inscription: 29-06-2007
Messages: 665
Pépites: 17,189,873,958
Banque: 9,223,372,036,854,775,808

Re: [RESOLU] Fonctions sur les filtres

pick ouic a écrit:

Nephtis a écrit:

Je viens de tester dans le painter de filtre et l'expression est incorrecte.

mon expression : id_titre IN (2185)


NB : Pour l'exemple je n'ai qu'une seule valeur dans la liste de valeurs possibles mais dans l'absolu il y en aura plusieurs (de toutes façon même en mettant deux valeurs ça plante à la verification)

id_titre est du type char  ? des fois ?

Non non id_titre n'est pas de type char

Que je soit pendu haut et court le champ est bien de type char

Bon je remet mon bonet d'âne

Dernière modification par Nephtis (10-09-2007 11:00:32)


Qui sème des problèmes, récolte des réponses.
PB 6.5 || ASE 12.5.4 || XP SP3

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22