Trucs et astuces : Filtres complexes sur les tables fichiers
Posté par R&B le 23/7/2002 15:20:00 (4216 lectures) Articles du même auteur
Trucs et astuces

WinDev 7 met à la disposition des utilisateurs une multitude de nouvelles propriétés. C'est sans aucun doute une des plus grandes avancées du langage (avec la manipulation des objets d'un projet).

Ainsi le programmeur peut manipuler par programmation les filtres des tables fichiers...

Admettons une fenêtre avec une table (TABLE) en relation avec un fichier (FICHIER) dont le tri est sur FICHIER.RUBRIQUE et un CHAMP qui permet de filtrer le contenu de la table. Evidement CHAMP ne correspond pas à RUBRIQUE mais à FICHIER.RUBRIQUE_CHAMP.
Lors de la description de TABLE, il est possible de fixer (onglet contenu) le fichier (FICHIER), la rubrique mémorisée (rien), une rubrique de parcours (RUBRIQUE) et un filtre sur cette rubrique (rien).

Le filtre en question est un filtre 'simple' du type 'commence par...' sur la rubrique de parcours seule.
A ce sujet, l'aide en ligne nous indique comment modifier ce filtre par programmation :
Citation :

Pour modifier plusieurs des propriétés RubriqueParcourue, Filtre et FichierParcouru, il est conseillé de :
1. Stopper le parcours en affectant une chaîne vide ("") à la propriété FichierParcouru.
2. Modifier les propriétés nécessaires.
3. Relancer le parcours avec la propriété FichierParcouru.


Pour filtrer la table sans problème sur la valeur de CHAMP tout en gardant le parcours sur RUBRIQUE voici la solution :

Dans le code de sortie de CHAMP (je passe sur les tests de validité de la saisie) :

SI MoiMême<>"" ALORS 
// saisie effectuée : mise à jour du filtre
// inactive le filtre précédant
HDesactiveFiltre(FICHIER)
// inactive les données de parcours de la table pour mettre en place les nouvelles
Table..FichierParcouru="" // débranche les propriété de parcours
Table..RubriqueParcourue=RUBRIQUE  // garde la rubrique de parcours
Table..Filtre="" // rien sur la rubrique
// filtre simplement le fichier 
//(on peut aussi filtrer selon une condition...)
cRub=hFiltre(FICHIER,RUBRIQUE_CHAMP,MoiMême) 
Table..RubriqueParcourue=crub  // Change la clé de parcours [optionnel]
Table..FichierParcouru=FICHIER  // rebranche les propriété de parcours 
SINON
// pas de saisie on repasse en parcours normal (selon RUBRIQUE)
Table..FichierParcouru=""  // débranche les propriété de parcours
Table..RubriqueParcourue=RUBRIQUE
Table..Filtre=""
hDesactiveFiltre(FICHIER)
Table..FichierParcouru=FICHIER // rebranche les propriété de parcours

FIN

// reaffiche la table
TableAffiche(Table,taInit)
// donne le curseur à la table
EcranPremier(Table)


Inutile de préciser que l'on peut ainsi construire des filtres complexe tout en conservant le parcours sur une rubrique.



Autres articles
2/6/2015 19:00:00 - WDForge 2.0 est disponible !
7/1/2014 11:10:00 - WDForge
30/9/2009 11:30:00 - Un analyseur d'objets externes
16/4/2009 18:37:49 - Convertisseur de base HyperFile vers XML
22/4/2008 23:04:01 - WLSCRIPT - Ligne de commande Linux

Connexion
Menu
Sujets d'Articles
Top Articles
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2