Sources de données... un petit piège.
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
Bonjour

Ce post ne sera pas un article, il sera intégré à notre dossier en cours de refonte.

Concernant la manipulation des contextes HyperFiles voici un petit piège de conception à l'explication un peu lointaine...

Au départ nous avons un fichier, une fenêtre et un état. Tous va bien, la fenêtre affiche le contenu du fichier dans une table, il est possible de filtrer le fichier, la table et l'état prennent en compte le filtre pendant sa durée d'activité.

Ensuite, rendons les choses plus complexes. Disons que l'on réexploite la fenêtre... mais avec un fichiers temporaire (décrit en dynamique par hDédritFichier).

La fenêtre voie sa table réaffectée par les propriétés :
Table..FichierParcouru="NOMFICHIERTEMPORAIRE"
Table..RubriqueParcourue="CLEFICHIERTEMPORAIRE"
Table.COLONNE..LiaisonFichier="NOMFICHIERTEMPORAIRE.RUBRIQUE"
...

On conserve les avantages de rapidité de la table fichier.
Le filtre est possible sur le fichier temporaire, la table suit !

Table..FichierParcouru="" // débranche les propriété de parcours
// inactive le filtre précédant
hDesactiveFiltre(NOMFICHIER)
// filtre simplement le fichier (on peut aussi filtrer selon une condition...)
cRub est une chaîne
cRub = hFiltre(NOMFICHIER,RUB,Min,Max,Condition) 
HLitPremier(NOMFICHIER)
SI PAS hEnDehors() ALORS
	Table..RubriqueParcourue=cRub // Change la clé de parcours [optionnel]
FIN
Table..FichierParcouru=NOMFICHIER // rebranche les propriété de parcours


Pour l'état, c'est une autre histoire.
// Brancher le fichier temporaire et sa clé de parcours
MonEtat..NomSource=NOMFICHIERTEMPORAIRE
MonEtat..RubriqueParcourue=CLEFICHIERTEMPORAIRE
// pointer les champs liés
NOMCHAMP..RubriqueAffichée="RUBRIQUE"
...


le hic est bien dans l'application du filtre !
En effet, brancher le fichier temporaire à la place du fichier normal semble créer un nouveau contexte Hyperfile (source de données de l'état). Ce nouveau contexte ignore donc le filtre activé dans la fenêtre appelante !

Une solution serait alors d'utiliser en paramètre d'appel à l'état le nom de la source de données utilisée dans la fenêtre... le contexte serait alors transmis à l'état.

Subtile !

Contribution le : 02/08/2004 16:04
_________________
R&B
Contact, CV.
Créer un fichier PDF de la contribution Imprimer


Re: Sources de données... un petit piège.
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour Romuald,

Si je comprends ta pratique la structure de ton fichier temporaire correspond à une structure de fichier existante dans ton analyse.

Une solution simple consisterais avant l'appel de l'etat de changer de fichier via la fonction HChangeNom
HFerme(<MonFichierAnalyse>)
HChangeNom((<MonFichierAnalyse>,<Nom du fichier temporaire>)
HOuvre(<MonFichierAnalyse>)


Cette technique permet l'edition rapide de l'état car le remplissage de celle ci à déjà été effectuée avant son appel.

De plus en Deux lignes on à pas besoin d'effectuer par code la description du fichier temporaire.

Contribution le : 02/08/2004 16:19
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Sources de données... un petit piège.
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
En quelque sorte...
Ton code est en tout cas une bonne chose.

Contribution le : 03/08/2004 09:32
_________________
R&B
Contact, CV.
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
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