PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → Modif ou ajout dans une table
Modif ou ajout dans une table
Débuté par Pascal (Arrakis), 17 jan. 2018 09:29 - 12 réponses
Membre enregistré
16 messages
Posté le 17 janvier 2018 - 09:29
Bonjour,

Pour mon premier post sur le forum, je tenais à vous remercier. Celui ci m'aide beaucoup.

J'utilise une table fichier avec saisie en cascade. Lors de la sortie de la ligne, j'aimerai savoir si c'est un nouvel enregistrement ou une modification.

Existe t il une action simplifiée ou dois je faire un test ?

Pascal
Membre enregistré
3 846 messages
Popularité : +227 (347 votes)
Posté le 17 janvier 2018 - 14:45
Bonjour,
Regarde du côté de la propriété NouvelEnregistrement

--
Il y a peut être plus simple, mais, ça tourne
Membre enregistré
16 messages
Posté le 17 janvier 2018 - 18:39
Merci pour ton aide, mais j'avais déjà essayer en vain la propriété NouvelEnregistrement, par contre la propriété ..Nouveau cela fonctionne :)

bien à toi

--
Arrakis (Pascal)
<WD 22>
Membre enregistré
37 messages
Popularité : +1 (1 vote)
Posté le 17 janvier 2018 - 20:35
Salut,
Pourtant la réponse de Voroltinquo est correcte, donc j'en déduis que tu ne testes pas la propriété au bon endroit ou de la bonne façon.
Attention : la propriété Table..NouvelEnregistrement vaut vrai si tu as fait un HRAZ() prélable.
Sinon, relis bien l'aide en ligne : https://doc.pcsoft.fr/fr-FR/index.awp?1000017090
Accessoirement, publies la ou les parties de code qui sont en relation avec ton problème, qu'on y jette un oeil.
J@ck
Membre enregistré
37 messages
Popularité : +1 (1 vote)
Posté le 17 janvier 2018 - 20:41
Il y a bien-sûr mille autres façons (moins nobles) de tester ça.
Par exemple tester le nombre d'enregistrements avant et après la sortie de ligne (hnbEnr). Si tu en as une de plus, c'est que tu l'as créée.
Bof, ça vaut ce que ça vaut.... Les puristes, pardonnez-moi.
Membre enregistré
2 566 messages
Popularité : +222 (260 votes)
Posté le 18 janvier 2018 - 03:37
Bonjour,

Arrakis a trouvé la bonne solution. Il y a bien une propriété Nouveau sur le champ Table permettant de savoir si la ligne sur laquelle on est positionné est un nouvel enregistrement ou non.

@jack31: Dans le cas d'une table avec saisie en cascade, tu n'as pas à faire de HRAZ(), c'est le champ qui s'en charge tout seul. Je tiens d'ailleurs à préciser que Table..NouvelEnregistrement n'existe pas. Cette propriété ne s'applique qu'aux fichiers de données. D'où la propriété Nouveau sur la table.

--
Cordialement,

Philippe SAINT-BERTIN
Géode Informatique
Message modifié, 18 janvier 2018 - 03:43
Membre enregistré
37 messages
Popularité : +1 (1 vote)
Posté le 18 janvier 2018 - 12:20
Tu as parfaitement raison, merci pour ta précision.
Je me suis mélangé les pinceaux en lisant 'Table' et en réfléchissant 'Fichier'.
Membre enregistré
3 846 messages
Popularité : +227 (347 votes)
Posté le 18 janvier 2018 - 13:03
Tout dépend de l'endroit où Arrakis veut faire son test, sur son champ table, ou sur le fichier qui l'alimente

--
Il y a peut être plus simple, mais, ça tourne
Membre enregistré
2 566 messages
Popularité : +222 (260 votes)
Posté le 18 janvier 2018 - 13:04
Pas de soucis, on ne peut pas être à fond tout le temps... :p

--
Cordialement,

Philippe SAINT-BERTIN
Géode Informatique
Membre enregistré
16 messages
Posté le 18 janvier 2018 - 17:52
Merci pour votre aide :) voro, mon teste est situé à la sortie de la ligne table en mode saise

à bientôt

--
Arrakis (Pascal)
<WD 22>
Membre enregistré
3 846 messages
Popularité : +227 (347 votes)
Posté le 22 janvier 2018 - 05:08
As-tu essayé avec
SI Fichier..NouvelEnregistrement ALORS
//Traiter Nouvel enregistrement
SINON
//Traiter Enregistrement Modifié
FIN

Fichier étant le Fichier qui alimente ton champ table

--
Il y a peut être plus simple, mais, ça tourne
Membre enregistré
52 messages
Popularité : +1 (1 vote)
Posté le 01 février 2018 - 16:44
Bonjour;
En fait je ne comprend pas exactement où vous voulez faire un teste, si sur la table ou sur la ligne, mais je peux vous proposer une solution qui s'avère bête mais qui pourra peut etre réponde à vos éspérences, car quand on est coincé, le plus important que ça marche.

en fait vous pouver créer un champ dans votre base de donnée (LINE_STAT par exemple) qui va prendre la valeur 1 une fois la ligne créée, et du coup cette valeur sera récupérée sur la fenetre (au nivea de la table) et une fois vous vouler faire le contrôle vous vérifiez cette valeur, si c'est 1 donc vous êtes en modification sinon en mode création.

Même si ça parrait banal mais ça reste une solution.
Membre enregistré
2 566 messages
Popularité : +222 (260 votes)
Posté le 01 février 2018 - 18:21
Arrêtez de vous triturer l'esprit pour rien, MaTable..Nouveau est fait spécifiquement pour ça.

--
Cordialement,

Philippe SAINT-BERTIN
Géode Informatique