|
Boucle avec table si ma ligne =... |
Débuté par Marc V., 25 jan. 2007 08:47 - 4 réponses |
| |
| | | |
|
| |
Posté le 25 janvier 2007 - 08:47 |
Bonjour,
Voilà après un premier post, je me permet de vous contacter pour la suite des opérations car je sais même pas si c'est possible ce que je veux faire.
Le code ci-dessous s'effectue lorsque je clique sur un bouton "ok" dans un formulaire (il modifie toutes les lignes de la table)
k est un entier POUR k = 1 A TableOccurrence(TABLE_factures_detail) HLitRecherchePremier(T_factures_detail,id_factures_detail,COL_detail_id_ligne[k]) SI HTrouve(T_factures_detail) ALORS
T_factures_detail.detail_article_desc=TABLE_factures_detail.COL_desc_longue[k]
HModifie(T_factures_detail,hNumEnrEnCours) FIN
Dans la Table dans mon formulaire, j'ai inséré une colonne qui s'appelle col_statut_ligne, elle est bien sur invisible ( masquée ) mais elle peut contenir une lettre ex, A ou M
Donc mon but serait le suivant que lorsque je clique sur ok, il fasse ceci :
Si col_statut_ligne = "A" alors
k est un entier POUR k = 1 A TableOccurrence(TABLE_factures_detail) HLitRecherchePremier(T_factures_detail,id_factures_detail,COL_detail_id_ligne[k]) SI HTrouve(T_factures_detail) ALORS
T_factures_detail.detail_article_desc=TABLE_factures_detail.COL_desc_longue[k]
HModifie(T_factures_detail,hNumEnrEnCours) FIN
Voilà ce qu'il faudrait qu'il fasse: Est ce que pour cette ligne affichée dans ce tableau la colonne col_statut_ligne est égal à M ? Si oui alors je modifie, et qu'il continue pour chaque ligne.
Ou alors dire, pour toutes les col_statut_ligne = M alors fait ceci..
Avez-vous compris ce que j'essaie de faire, et est-ce réalisable ?
merci de votre support. |
| |
| |
| | | |
|
| | |
| |
Posté le 25 janvier 2007 - 10:07 |
salut
le mieux est :
k est un entier
k=tablecherche("col_statut_ligne","M") tantque k<>-1 HLitRecherchePremier(T_factures_detail,id_factures_detail,COL_detail_id_ligne[k]) SI HTrouve(T_factures_detail) ALORS
T_factures_detail.detail_article_desc=TABLE_factures_detail.COL_desc_longue[k]
HModifie(T_factures_detail,hNumEnrEnCours)
// ici soit on modifie col_statut_ligne, puisque la ligne a été enregistrée , et on fait : col_statut_ligne[k]="" k=tablecherche("col_statut_ligne","M")
.... OU....
// soit on ne touche pas col_statut_ligne et on fait : k=tablecherche("col_statut_ligne","M",vrai,k+1) FIN |
| |
| |
| | | |
|
| | |
| |
Posté le 25 janvier 2007 - 10:08 |
Bonjour, Je n'ai pas tout compris: est-ce que tu veux faire ton traitement uniquement pour les lignes de la table dont la colonne = 'M' ? Si c'est le cas, alors c'est tout simple:
k est un entier POUR k = 1 A TableOccurrence(TABLE_factures_detail) SI col_statut_ligne[k] = 'M' ALORS HLitRecherchePremier(T_factures_detail,id_factures_detail,COL_detail_id_ligne[k]) SI HTrouve(T_factures_detail) ALORS
T_factures_detail.detail_article_desc=TABLE_factures_detail.COL_desc_longue [k]
HModifie(T_factures_detail,hNumEnrEnCours) FIN FIN
Mais je ne vois pas à quoi sert le test Si col_statut_ligne = "A" dans ton code, puisque tu ne spécifie pas de numéro de ligne, et que tu veux les lignes avec col_statut_ligne = "M"...
Frédéric. |
| |
| |
| | | |
|
| | |
| |
Posté le 25 janvier 2007 - 10:09 |
Si j'ai bien compris votre problème, vous voulez effectuez un traitement pour chaque ligne de votre table mémoire et ce traitement dépent de col_statut_ligne
Je ferais comme cela
nLig est entier nOcc est entier
nOcc = TableOccurrence(TABLE_factures_detail) POUR nLig = 1 A nOcc SELON TABLE_factures_detail.col_statut_ligne[nLig] CAS "A" //Traitement à faire si c'est A Ex : HLitRecherchePremier(T_factures_detail,id_factures_detail,COL_detail_id_ligne[nLig]) SI HTrouve(T_factures_detail) ALORS T_factures_detail.detail_article_desc=TABLE_factures_detail.COL_desc_longue[nLig] HModifie(T_factures_detail,hNumEnrEnCours) FIN
CAS "M" //Traitement à faire si c'est M
AUTRES CAS //Traitement à faire dans les autres cas FIN FIN |
| |
| |
| | | |
|
| | |
| |
Posté le 25 janvier 2007 - 23:07 |
Un grand merci à vous tous pour votre support et votre disponibilité
Je me suis servis de ce code, qui a fonctionné à merveille je peux continuer mon projet. merci encore et bonne soirée
nLig est entier nOcc est entier
nOcc = TableOccurrence(TABLE_factures_detail) POUR nLig = 1 A nOcc SELON TABLE_factures_detail.col_statut_ligne[nLig] CAS "A" //Traitement à faire si c'est A Ex : HLitRecherchePremier(T_factures_detail,id_factures_detail,COL_detail_id_ligne[nLig]) SI HTrouve(T_factures_detail) ALORS T_factures_detail.detail_article_desc=TABLE_factures_detail.COL_d esc_longue[nLig] HModifie(T_factures_detail,hNumEnrEnCours) FIN
CAS "M" //Traitement à faire si c'est M
AUTRES CAS //Traitement à faire dans les autres cas FIN FIN |
| |
| |
| | | |
|
| | | | |
| | |
|