(1) 2 »


[Résolu] Fichierversecran
Anonyme
Bonjour,

Voila mon probleme :

J'ai une table qui est relié a un fichier.

Le fichier se nomme Produit, j'en ai 10 000.

Donc au demarrage ca m'affiche bien mes 10 000 produits.

Par contre je voudrais faire une recherche spécifique. Genre je voudrais faire une recherche sur le produit Z et donc d'avoir dans ma table d'afficher que le produit repondant au produit Z.

J'ai essayé ce code dans un bouton :

cle est une chaine = hfiltre ( Produit,Nom,Rech_Prod,Rech_Prod)

hlitpremier(Produit,cle)
fichierversecran()


Mais cela ne marche pas j'ai toujours tout mes produits dans la table.

J'ai egalement essayé comme l'exemple fourni
hlitrecherche(Produit,Nom,Chp_Prod,hidentique)
si htrouive()
 fichierversecran()
fin


Mais ca ne marche pas non plus.

Vous pouvez me dire ce que je ne fais pas bien ?

Contribution le : 16/06/2005 13:48
Créer un fichier PDF de la contribution Imprimer


Re: Fichierversecran
Utilisateur WDF
Inscrit:
06/02/2003 08:38
De Bourgogne
Post(s): 88
Citation :
cle est une chaine = hfiltre ( Produit,Nom,Rech_Prod,Rech_Prod)


Bonjour,

//cle est une chaine = hfiltre (Produit,Nom,Rech_Prod,Rech_Prod)

//hlitpremier(Pro/duit,cle)
//fichierversecran()/
Pour le filtre OK,
fichierversecran ne rempliera pas la table
il ne met jour que les champs de ta fenêtre liés à des rubriques de fichiers.

donc pour mettre à jour la table,
un bouton avec tableaffiche(tatable,tainit)
bien entendu si il s'agit d'une table fichier

pour être encore plus propre :
tatable..rubriqueparcourue=cle
tableaffiche(tatable,tainit)
mais ce n'est pas obligatoire...


Cordialement,
JYM






Contribution le : 16/06/2005 14:34
Créer un fichier PDF de la contribution Imprimer


Re: Fichierversecran
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

Le filtre est a apliquer à la table tout simplement:

hfiltre ( Produit,Nom,Rech_Prod,Rech_Prod )
Table..fichierParcourue = "Produit"


ne pas oublier de déactiver le filtre une fois la fermeture de la fenêtre via
hDésactiveFiltre(Produit)

Contribution le : 16/06/2005 14:38
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Fichierversecran
Anonyme
Bonjour,

Deja merci d'avoir répondu.
Ensuite la solution de drcharly marche trés bien.

Cependant , les criteres de recherche que je souhaite effectué maintenant s'effectue sur plusieurs fichier.

Donc dans ce cas j'ai le fichier Produit mais aussi le fichier Matiere.

Donc ta solution pour filtrer sur le produit c'est parfait.

Par contre comment faire si je veux afficher dans la table les produits Z ayant une matiere M.

Car il y a des produits de Matiere X et des produits de Matiere Y. Donc je voudrais afficher uniquement les produits Z de matiere X.

Merci d'avance

Contribution le : 16/06/2005 14:50
Créer un fichier PDF de la contribution Imprimer


Re: Fichierversecran
Utilisateur WDF
Inscrit:
06/02/2003 08:38
De Bourgogne
Post(s): 88
Il faut créer une requete avec jointure sur produit et matiere avec des critères de sélection sur le rubriques voulues.Ta table parcourera cette requete/

JYM

Contribution le : 16/06/2005 14:56
Créer un fichier PDF de la contribution Imprimer


Re: Fichierversecran
Anonyme
Bonjour,

Je cherche une solution en utilisant uniquement tant que possible les fonctions hXXX.

POur la simple est unique raison que c'est beaucoup plus rapide.

Par exemple pour afficher ma table de produit avec une requete j'ai 400 000 enregistrements avec une requete ca mets beaucoup de temps la avec un fichierversecran c instantané.

Donc je voulais savoir si y'a une methode qui permet de faire ce que j'ai dis plus haut sans passer par les requetes uniquement avec des hfiltre ou autre

merci

Contribution le : 16/06/2005 14:59
Créer un fichier PDF de la contribution Imprimer


Re: Fichierversecran
Anonyme
Bonjour,

Voila pourquoi je ne voulais pas utiliser des requetes.


J'ai suivi votre conseil et j'utilise une requete dont voici le code

SI HExécuteRequêteSQL(Sres,NomConnexion,hRequêteDéfaut,SreqBte) ALORS				
		Table_Bouteille1..FichierParcouru="Sres"	


Quand j'execute cette requete ca marche bien probleme qui est bizar est que le resultat est bien dans la table par contre des que je bouge l'ascenseur j'ai une erreur windev qui me dit objet sres non trouvé.

Y'a un truc que je fais pas bien encore ?

Contribution le : 16/06/2005 15:35
Créer un fichier PDF de la contribution Imprimer


Re: Fichierversecran
Anonyme
N'y aurait-t-il pas un
hannuledeclaration(Sres) qui traîne quelque part ?

JYM

Contribution le : 16/06/2005 16:50
Créer un fichier PDF de la contribution Imprimer


Re: Fichierversecran
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Voilà une problème qui nécessite une bonne réflexion sur le comportement attendu et l'évolution eventuelle de la taille des fichiers à manipuler et selon le contexte dans lequelle elle doit s'exécuter.

1ière question importante à se poser:
- a) Utilisation monoposte
- b) Utilisation réseau
- c) Utilisation en C/S

selon la réponse cela peut influencer une modification de la base.

Si il s'agit d'une base HyperFile classic, il serait peut être plus simple d'inclure le code matière dans le fichier produit
et de creer une clé composée (NomProduit + CodeMatiere) et d'effectuer un filtre sur cette clé

Dans le cas d'un accès à une base C/S la clé serait tout de meme utile mais l'utilisation d'une requête comme le préconise JYM serait surement plus appropriée.

Dans ce cas la requête devra être réalisée avec l'éditeur de requête de WinDev (les table fichiers s'affiche plus rapidement que les tables mémoires dès lors que le nombres d'enregistrements retournés est important) avec en paramètre la clé composée, car en C/S il faut diminuer au maximum la quantité de dialogue entre le client et le serveur. Votre table devra être basé sur cette requête et non sur la table Produit.


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


Re: Fichierversecran
Anonyme
N'y aurait-t-il pas un
hannuledeclaration(Sres) qui traîne quelque part ?

JYM

Contribution le : 16/06/2005 16:50
Créer un fichier PDF de la contribution Imprimer


Re: Fichierversecran
Anonyme
Bonjour,

Oui il s'agit de client/serveur.
Oui il y avait un hannuledelaration que j'ai viré. J'ai mis mes sources de données en globale de ma fenetre.

Car meme sans hannuledeclaration ca risque de planter dans la mesure ou cette source de donnée etait déclaré dans une fonction et que a priori a la fin d'une fonction toutes les varaibles locales sont detruites...bref

Sinon je fonctionne comme préconisé avec les requetes.

Cela dit bizaremment quand je fais une jointure sur certains fichiers et pas sur d'autres les temps sont enorme.

Alors que le fichier en plus que je joins represente 100 enregistrement...

Contribution le : 16/06/2005 18:10
Créer un fichier PDF de la contribution Imprimer


Re: Fichierversecran
Anonyme
Bonjour

Voici la requete

SELECT * FROM Fournisseur,Bouteille,lot where lot.IDFournisseur = Fournisseur.IDFournisseur AND lot.IDLot=Bouteille.IDLot  AND lot.IDFournisseur=3


En fait si je ne fais pas de jointure avec le fichier fournisseur le resultat est instantané.
Par contre si le le lie comme c'est le cas ici c'est tres tres long.

Vous pouvez m'eclairez ? y'a un truc que je dois pas bien faire

PS : fournisseur c'est 32 enregistrements

Contribution le : 16/06/2005 18:15
Créer un fichier PDF de la contribution Imprimer


Re: Fichierversecran
Anonyme
Désolé je ne sais pas comment on edite un message .

J'avais oublié de dire.
Cette requete dont je parle justre au dessus ca a pour consequence de faire monter a 100% le cpu.
SI je regarde le coupable c'est le programme manta.

Je suis donc forcé d'arreter le service manta et de le redemarrer

Contribution le : 16/06/2005 18:16
Créer un fichier PDF de la contribution Imprimer


Re: Fichierversecran
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Citation :
SELECT * FROM

Très simple à programmer mais surement pas le plus rapide.
Rapatrier que les champs dont vous avez besoins.

Sans être certain l'ordre dans laquelle les fichiers sont appelés ainsi de l'ordre des jointures peuvent avoir une conséquence sur les performances.

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


Re: Fichierversecran
Anonyme
Bonjour

Ok pour la selection des rubriques necessaires

Par contre pour l'ordre , j'en ai jamais entendu parlé j'y pensais aussi mais je ne vois pas dans quel ordre le mettre ???

Contribution le : 17/06/2005 09:37
Créer un fichier PDF de la contribution Imprimer


Re: Fichierversecran
Anonyme
Bonjour

J'en profite aussi pour poser une question.

SI vous affichez les données dans une table fichier avec la technique cité par drcharly ( ..fichierparcouru) Comment je fais si par exemple dans mon champs table j'ai un booleen donc qui se remplit et que je veux que si la valeur est vrai ca met la ligne en rouge et si elle vaut autre chose je mets une autre couleur.

Et notamment comment faire si y'a plusieurs booleen en fait 3 booleen qui represente un etat. Mettre une couleur differente a chaque fois

merci

Contribution le : 17/06/2005 09:54
Créer un fichier PDF de la contribution Imprimer


Re: Fichierversecran
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

Ma table se nomme TABLE
Dans le bloc Affichage d'une ligne de la table
nCouleur est un entier
Selon <MonChampBooléen>..Valeur
  Cas 1 : nCouleur = iVerClair
  Cas 2 : nCouleur = iRougeClair
  Autres Cas : nCouleur = iCyan
Fin
TABLE[TABLE]..couleurFond = ncouleur

Contribution le : 17/06/2005 10:15
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Fichierversecran
Anonyme
Bonjour,

Merci drcharly ca marche trés bien comme ça

Je change de methode de programmation donc forcement y'a des choses que je decouvre

Avant je faisais une requete et je regardé directement dans la requete si le booleen valait vrai et mettait la couleur bref...

J'ai un autre souci de requete cette fois toujours dans le meme optique de programmation avec fichierversecran et fichierparcouru

Soit la requete :

SELECT * FROM Fournisseur,Bouteille,lot where lot.IDFournisseur = Fournisseur.IDFournisseur AND lot.IDLot=Bouteille.IDLot AND ( Bouteille.StopBtl=1 OR Bouteille.Rebut=1  OR Bouteille.Vendue=1)


Cette requete ne devrait pas afficher seulement les bouteilles dont stopbtl=vrai ou rebut=vrai ou vendue = vrai ?

Parce que la ca m'affiche tout ???

Pourtant ma requete semble correcte

Merci

Contribution le : 17/06/2005 10:42
Créer un fichier PDF de la contribution Imprimer


Re: Fichierversecran
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

Tu peux aussi essayer comme ceci

SELECT * FROM Bouteille, Fournisseur, lot
WHERE lot.IDLot=Bouteille.IDLot 
AND Fournisseur.IDFournisseur = lot.IDFournisseur
AND Bouteille.StopBtl=1
UNION
SELECT * FROM Bouteille, Fournisseur, lot
WHERE lot.IDLot=Bouteille.IDLot 
AND Fournisseur.IDFournisseur = lot.IDFournisseur
AND Bouteille.Rebut=1
UNION
SELECT * FROM Bouteille, Fournisseur, lot
WHERE lot.IDLot=Bouteille.IDLot 
AND Fournisseur.IDFournisseur = lot.IDFournisseur
AND Bouteille.Vendue=1


Pensez à l'ouverture de votre fenêtre de recalculer les statistiques des fichiers cela accélérera le traitement de la requête multifichier
HStatCalcule(Bouteille,IdLot)
HStatCalcule(Fournisseur,IdFournisseur)
HStatCalcule(Lot,IdLot)

ou bien via la fonction
HOptimiseRequete(<Code Sql>)

cette dernière fonction travaille en tâche de fond et utilise les temp mort pour charger en cache les parties d'index nécessaire.

Contribution le : 17/06/2005 11:13
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Fichierversecran
Anonyme
Bonjour,

Ce qui est dingue c'est que j'enregistre cette requete dans un fichier texte avant de l'executer et ce que je fais c'est que je copie colle cette requete dans l'editeur de requete en creant une requete test et en l'executant depuis l'editeur de requete ca marche bien...

Comment ca se fait que ca marche dans l'editeur et pas par programmation?

Contribution le : 17/06/2005 11:13
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant
(1) 2 »




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