Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
empecher selection de certaines lignes dans une table
#1
Bonsoir tout le monde,

Sous WD14, j'ai actuellement une table_comptoir dans laquelle viennent s'ajouter tous les articles que l'utilisateur sélectionne, il peut les ajouter et les supprimées selon ses envies sauf que certains de ces articles (MENU) sont composés de 3 articles. Je souhaite que l'utilisateur soit contraint de supprimer la totalité du menu et non pas uniquement un de ces articles ce qui fausserait toute la commande.
J'ai donc pensé à ne pas mettre de prix uniquement sur les lignes des ces articles qui composent le menu et je pensai empêché la sélection des lignes qui ne comportent pas de prix (COL_PRIX) sauf que je n'y parviens pas...
J'ai tenté:

dans "à chaque modification":
POUR TOUTE LIGNE DE TABLE_COMPTOIR
SI COL_PRIX = "" ALORS
Tableoccurence (Table_comptoir,-4)

Pourquoi -4 car mon menu comporte 3 articles, donc cela devrait remonté le bandeau de sélection sur la ligne "menu" et non pas sur les articles qui le compose...sauf que rien n'y fait!!

Je dois commettre une erreur quelque part donc si vous pouvez éclairer ma lanterne je vous serai reconnaissant mes amis, tout autre idées pour répondre à mon besoin est également la bienvenue...

Merci d 'avance!

JS
Répondre
#2
Petite précision, il faut également que mon bouton supprimer (BTN_SUPPRIMER) supprime uniquement la ligne sélectionnée lorsqu'il s'agit d'un article seul..pour cela pas de problème:
POUR TOUTE LIGNE SELECTIONNEE DE TABLE_Commande_comptoir
SI COL_Prix_TTC<>0 ALORS TableSupprime(TABLE_Commande_comptoir)
FIN

Par contre comment faire pour que lorsqu'il s'agit d'un menu, cela supprimer automatiquement la ligne "menu" plus les 3 suivantes qui correspondent aux articles qui le compose...???

JS
Répondre
#3
Et en utilisant TableSélectMoins()...

Dans sélection d'une ligne de table...
Code :
SI COL_Prix = 0 ALORS
  TableSelectMoins(NomTable,NomTable)
SINON
  TableSelectPlus(NomTable,NomTable)
FIN
Se souvenir et savoir sont deux choses différentes. Se souvenir, c'est garder en mémoire. En revanche, savoir signifie assimiler sans dépendre d'un modèle.

WD 4.1 => 23


Répondre
#4
Bonjour Samifred,

Une fois de plus tu viens à mon secours...un grand merci!

j'avais tenté ce code mais avec des différences qui expliquent sans doute que cela ne fonctionnait pas... te connaissant ce code marchera surement...merci encore!(je teste en rentrant ce soir)

cependant comment faire (si cela est possible) pour que le bouton supprimer supprime automatiquement la ligne menu plus les 3 suivantes (qui correspondent aux articles qui le compose).
Je le dis comme cela me viens, existe-il un code du genre:
POUR TOUTE LIGNE SELECTIONNEE dans TABLE_COMPTOIR
SI COL_PRIX<>"" ET COL_PRODUIT="menu" ALORS TABLESUPPRIME les 3 lignes du dessous

En sachant que mes lignes menus s'appellent parfois menu sandwich, menu salade... il faut donc que le code cherche l'existence du mot menu dans la colonne produit , et que dans ce cas cela déclenche la suppression de cette ligne principale plus les 3 suivantes.

EX:

Menu sandwich 7€
jambon beurre
yaourt
coca

Avec tes compétences mon "bout de code" va surement te provoquer une bonne barre de rire! :lol:

Merci par avance et bonne journée,

JS
Répondre
#5
Salut Julien!

Recherche dans la colonne table d'un mot clé ==> voir TableCherche()
Suppression d'une ligne de Table ==> voir Tablesupprime()

Code :
nRes est un entier = Tablecherche(MaTable.Colonne,"Menu",faux)
SI nRes>0 ALORS
Tablesupprime(MaTable,nRes)
Tablesupprime(MaTable,nRes+1)
Tablesupprime(MaTable,nRes+2)
Tablesupprime(MaTable,nRes+3)
FIN

A vérifier, je n'ai pas WD sous la main :mrgreen:

Bon DEV
Répondre
#6
Slt Theduke,

Merci pour cette réponse matinale! J'essaye cela ce soir en rentrant mais cela me semble parfait!

Je te tiens au courant,

merci encore et bonne journée,

JS
Répondre
#7
Bonsoir à tous,

Un petit retour sur vos aides... Samifred ton code marche impec! merci bcp!

Theduke je te remercie également mais ton code marche partiellement visiblement, ci-dessous le message d'erreur que je ne comprends pas...et que je n'explique pas puisque ton code me permet d'effacer la ligne prinicpale "Menu.." et 2 autres lignes correspondantes aux articles 1 et 3 qui composent le menu mais cela bloque sur la suppression de la 2 ligne du menu...

Message d'erreur:
Erreur à la ligne 7 du traitement Clic sur BTN_supprimer_ligne.
Vous avez appelé la fonction TableSupprime.
L'indice spécifié 4 est invalide.
Les valeurs valides pour le champ TABLE_Commande_comptoir sont comprises entre 1 et 3.

----- Informations techniques -----

Projet : Master Caisse

Appel WL :
Traitement de 'Clic sur BTN_supprimer_ligne' (FEN_Commande_comptoir.BTN_supprimer_ligne), ligne 7, thread 0
Fonction 'TableSupprime', syntaxe 1

Que s'est-il passé ?
L'indice spécifié 4 est invalide.
Les valeurs valides pour le champ TABLE_Commande_comptoir sont comprises entre 1 et 3.

Code erreur : 10015
Niveau : erreur fatale (EL_FATAL)

Dump de l'erreur du module 'wd170obj.dll' (17.0.381.12).
Identifiant des informations détaillées (.err) : 10015
Informations de débogage :



Une idée les pros??

Bien cordialement,

JS
Répondre
#8
Personne ne voit d'où vient le problème...?? :roll:
Répondre
#9
La solution de TheDuke c'est une bonne idée... mais il faut l'utiliser à l'envers.

Détecter l'indice de la ligne "Menu" y ajouter le nombre de ligne à supprimer et avec une petite boucle faire TableSupprime() des lignes mais decrescendo.

Le code est simple à écrire dans une procédure locale.

Bon courage.
Se souvenir et savoir sont deux choses différentes. Se souvenir, c'est garder en mémoire. En revanche, savoir signifie assimiler sans dépendre d'un modèle.

WD 4.1 => 23


Répondre
#10
Bonsoir samifred,

Merci pour ta réponse sauf que.... J ai pas tout compris... :roll:

Qu entends tu exactement par "indice de la ligne menu" et par "faire une boucle...

Désole je me sens nul sur ce coup la...Sad
Répondre


Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
  Sélection de champs dans l'éditeur Alain18 3 1,816 27-11-2017, 08:47 AM
Dernier message: Alain18
  WD 17 - Sélection lignes de table mémoire Daniel-Québec 9 3,975 26-10-2017, 06:46 AM
Dernier message: Daniel-Québec
  Parcourir lignes factures compteabdou 10 2,842 03-01-2017, 12:14 PM
Dernier message: Daniel-Québec
  Selection d'une ligne precise dans une table contenant plusieurs lignes kamdem 8 3,251 19-07-2016, 09:29 PM
Dernier message: kamdem
  Sélection ligne Table Fichier selon une condition compteabdou 5 3,872 14-01-2015, 07:54 AM
Dernier message: compteabdou
  [W17] IMPRESSION bloc non supporté par certaines imprimantes mk1708 2 2,290 08-12-2013, 10:20 PM
Dernier message: mk1708
  Table multi selection et tableselectplus gino 2 2,352 18-07-2013, 09:41 PM
Dernier message: gino
  Aperçu avant impression selection ligne table moradsoft 5 1,462 26-06-2013, 01:55 AM
Dernier message: moradsoft
  Sélectionner toutes les lignes d’une table moradsoft 4 1,467 14-05-2013, 08:02 AM
Dernier message: Samifred
  Garder la Position du Bandeau de selection gwing 1 1,912 10-02-2013, 01:25 PM
Dernier message: Samifred

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)