Précédent   Forum des professionnels en informatique > Environnements de développement > WinDev
WinDev Forum d'entraide sur la programmation en WinDev
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/01/2012, 10h59   #1
Membre confirmé
 
Avatar de mnw.william
 
Homme William MBOUKAP
Ingénieur développement logiciels
Inscription : janvier 2011
Messages : 237
Détails du profil
Informations personnelles :
Nom : Homme William MBOUKAP

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Industrie

Informations forums :
Inscription : janvier 2011
Messages : 237
Points : 258
Points : 258
Envoyer un message via Yahoo à mnw.william
Par défaut Code sur un état

Bonjourno à tous,

Voilà, j'ai un état qui est alimenté par une champs Table d'une fenêtre de mon projet. L'état affiche exactement toutes les informations de la table avec des ligne et des colonnes ce qui est une bonne chose.

Mais si je voudrais que l'état n'affiche pas certaines lignes de la table quel code sur l'état pourra être approprié.

J'ai parcouru l'aide de WD j'ai pas eu de solutions pour l'instant.

cdt
mnw.william est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 11h08   #2
Membre actif
 
Inscription : avril 2009
Messages : 305
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 305
Points : 172
Points : 172
Une piste dans le code "filtrage des données" de ton état.
Tu met une condition du type :

Code :
1
2
Si masource.col_ta_colonne=1 
renvoyer vrai
sinon
renvoyer faux
Fin
rednight est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 11h09   #3
Membre Expert
 
Avatar de frenchsting
 
Homme Claude
Développeur informatique
Inscription : juin 2003
Messages : 936
Détails du profil
Informations personnelles :
Nom : Homme Claude
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2003
Messages : 936
Points : 1 328
Points : 1 328
c'est dans le code de filtre de l'état que ça se passe...

Code :
1
2
3
4
5
si tableAediter.col_ValeurAverifier = "bonne valeur" alors
  renvoyer vrai
sinon
  renvoyer faux
fin
Une autre solution (si ca ne fonctionne pas comme tu veux) est d'alimenter une 2°table (invisible) avec les valeurs à imprimer lorsque tu veux lancer l'édition. Et surtout que ton état se base sur cette table invisible. (C'est ce que je fais et ça marche nickel).
frenchsting est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 11h23   #4
Membre confirmé
 
Avatar de mnw.william
 
Homme William MBOUKAP
Ingénieur développement logiciels
Inscription : janvier 2011
Messages : 237
Détails du profil
Informations personnelles :
Nom : Homme William MBOUKAP

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Industrie

Informations forums :
Inscription : janvier 2011
Messages : 237
Points : 258
Points : 258
Envoyer un message via Yahoo à mnw.william
Regarde un peu l'état que je génère qui tire les données de la Fenêtre table Vidange.
Alors tu vois la colonne Info, je dois rendre invisible ou supprimer les lignes donc la colonne est = "Vidange effectuée".
Images attachées
Type de fichier : jpg Etat.jpg (169,0 Ko, 12 affichages)
mnw.william est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 11h25   #5
Membre actif
 
Inscription : avril 2009
Messages : 305
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 305
Points : 172
Points : 172
C'est exactement ce qu'on t'as dit, dans la partie "filtrage des données" tu met une condition sur la valeur de ta colonne.
rednight est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 11h38   #6
Membre confirmé
 
Avatar de mnw.william
 
Homme William MBOUKAP
Ingénieur développement logiciels
Inscription : janvier 2011
Messages : 237
Détails du profil
Informations personnelles :
Nom : Homme William MBOUKAP

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Industrie

Informations forums :
Inscription : janvier 2011
Messages : 237
Points : 258
Points : 258
Envoyer un message via Yahoo à mnw.william
J'avais justement créé une table dans ma fenêtre qui effaçait les données et je puisais mes données à imprimer de cette table. Dans le code "Affichage d'une ligne de la table", j'ai mis le code aussi simple que suivant :

Code :
1
2
3
4
5
6
7
8
9
10
11
SI COL_Unité = "Heures" ALORS
	SI COL_HeureMarche < 150 ALORS
		TableSupprime(TABLE_ReqPlanningVidange)
	FIN	
FIN

SI COL_Unité="Kilomètres" ALORS
	SI COL_HeureMarche < 3000 ALORS
		TableSupprime(TABLE_ReqPlanningVidange)
	FIN
FIN
il effaçait des données et d'autres qui ne devait pas être effacées

J'ai essayé en créant un bouton "Retirer lignes" pour parcourir la table et effectué les suppression au fur et à mesure, la il me générait une erreur. C'est pas loin du code ci-dessus.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
i est en entier
POUR i=1 A TableOccurence(TablePlanning)
SI COL_Unité[i] = "Heures" ALORS
	SI COL_HeureMarche[i] < 150 ALORS
		TableSupprime(TABLE_ReqPlanningVidange)
	FIN	
FIN

SI COL_Unité[i]="Kilomètres" ALORS
	SI COL_HeureMarche[i] < 3000 ALORS
		TableSupprime(TABLE_ReqPlanningVidange)
	FIN
FIN
FIN
J'avais droit a une belle erreur.
mnw.william est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 11h50   #7
Membre Expert
 
Homme Nicolas Jeanneau
Développeur informatique
Inscription : octobre 2010
Messages : 638
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Jeanneau
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Bâtiment

Informations forums :
Inscription : octobre 2010
Messages : 638
Points : 1 020
Points : 1 020
Bonjour,

ton code qui alimente la table à imprimer doit déjà faire le tri des lignes. Il ne faut pas le faire après coup. Tu as tes conditions à faire respecter et ensuite la table sera alimentée avec uniquement les lignes valides.

Exemple:

// parcours de la table source
Code :
1
2
3
4
5
pour i = 1 a tableoccurences(tablesource)
    si tablesource.colonneXXX[i] = condition alors
         tableajouteligne(tablecible,tablesource.colonne1[i],tablesource.colonne2[i],tablesource.colonne3[i],......,tablesource.colonneXXX[i])
    fin
fin
Nicolas_Jeanneau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 12h22   #8
Membre Expert
 
Avatar de frenchsting
 
Homme Claude
Développeur informatique
Inscription : juin 2003
Messages : 936
Détails du profil
Informations personnelles :
Nom : Homme Claude
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2003
Messages : 936
Points : 1 328
Points : 1 328
Si tu reprends mon code :
Code :
1
2
3
4
5
si tableVidande.col_Info = "vidange effectuée" alors
  renvoyer faux
sinon
  renvoyer vrai
fin
ça te donne quoi ?
frenchsting est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 17h00   #9
Membre confirmé
 
Avatar de mnw.william
 
Homme William MBOUKAP
Ingénieur développement logiciels
Inscription : janvier 2011
Messages : 237
Détails du profil
Informations personnelles :
Nom : Homme William MBOUKAP

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Industrie

Informations forums :
Inscription : janvier 2011
Messages : 237
Points : 258
Points : 258
Envoyer un message via Yahoo à mnw.william
ca affiche les résultats au fur et à mesure mais lorsqu'il arrive sur la condition il fait un blocage et ne continue plus à lister les autres valeurs qui sont après lq condition.

cdt
mnw.william est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2012, 11h00   #10
Membre Expert
 
Avatar de frenchsting
 
Homme Claude
Développeur informatique
Inscription : juin 2003
Messages : 936
Détails du profil
Informations personnelles :
Nom : Homme Claude
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2003
Messages : 936
Points : 1 328
Points : 1 328
Citation:
Envoyé par frenchsting Voir le message
Une autre solution (si ca ne fonctionne pas comme tu veux) est d'alimenter une 2°table (invisible) avec les valeurs à imprimer lorsque tu veux lancer l'édition. Et surtout que ton état se base sur cette table invisible. (C'est ce que je fais et ça marche nickel).
Essaye cette méthode. Pour les filtres sur les tables, ça n'a pas l'air efficace :
Code :
1
2
3
4
5
pour i=1 a TableVidange..occurence
  si tableVidande.col_Info = "vidange effectuée" alors
    tableajoute(tableinvisible, tableVidande.col_1 + tab + ... + tableVidande.col_n)
  fin
fin
Et tu change la source de ton etat avec TableInvisible
frenchsting est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h13.


 
 
 
 
Partenaires

Hébergement Web