Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
J'ai une DataWindow qui contient X lignes.
Je ne veux parcourir que certaines lignes, sans pour autant la vider, car les lignes que je ne souhaite pas parcourir sont utiles plus loin.
J'avais donc pensé à :
* filtrer ma DW
* parcourir ma DW (for i = 1 to ma_dw.rowcount())
* défiltrer ma DW
Ma version 1 était la suivante :
lb_gar_filtree = false if (dw_gar.find("prs_typ = 'C'", 1, dw_gar.rowcount()) > 0) then dw_gar.setFilter("prs_typ = 'C'") dw_gar.Filter() lb_gar_filtree = true end if for ll = 1 to dw_gar.RowCount() (...) next if lb_gar_filtree then dw_gar.setFilter("") dw_gar.Filter() end if
Seulement, elle ne convient pas, car je ne dois pas filtrer les lignes dans tous les cas.
Si par exemple, j'ai :
OPT_COD PRS_TYP
1. Opt1 C
2. Opt1 E
3. Opt2 C
4. Opt2 E
5. Opt3 C
6. Opt3 E
7. Opt4 C
8. Opt4 E
Je peux enlever toutes les lignes où PRS_TYP est différent de C (lignes 2, 4, 6, 8), car chaque option possède une ligne PRS_TYP = C.
Mais si j'ai :
OPT_COD PRS_TYP
1. Opt1 C
2. Opt1 E
3. Opt2 E
4. Opt3 C
5. Opt3 E
6. Opt4 E
Je ne dois enlever les lignes où PRS_TYP est différent de C, que sur les lignes 2 et 5 (lignes Opt1 et Opt3).
En bref, je peux enlever les lignes où PRS_TYP est différent de C, que s'il existe déjà une ligne PRS_TYP = C pour l'OPT_COD.
Ma DW est déjà triée par OPT_COD.
Une idée SVP ?
Je ne fais quasiment plus de PB depuis 2 ans, je ne m'y remets que de façon ponctuelle, et j'ai perdu quelques automatismes.
Merci.
Hors ligne
Saria a écrit:
Une idée SVP ?
Tu peux modifier la requête ou la DW ?
En ajoutant un count() des OPT_COD (dans le sql ou via un champ calculé), après tu peux filtrer dans le genre (prs_typ = 'C' or count = 1).
Hors ligne
Merci, je vais tenter.
Il faut que je regarde où elle est utilisée, pour vérifier si l'ajout d'un champ n'est pas gênant.
Hors ligne