PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Insertion d'une ligne dans une table fichier
Insertion d'une ligne dans une table fichier
Débuté par lionel.breil, 23 fév. 2006 17:49 - 3 réponses
Posté le 23 février 2006 - 17:49
Bonjour,

J'ai un fichier ligne_dossier qui contient les éléments suivants :
NoDossier, Item, Quantité, Reference, Designation
ainsi que la clé composée NoDossier+Item

Je fais afficher ce fichier dans une table fichier (Table_Ligne), dont la rubrique de parcours est la clé composée, et afin de n'afficher que les lignes correspondant au fichier en cours, je fais Table_Ligne..filtre = NoDossier_encours
Par défaut ma table est en affichage seulement, et a l'aide d'un bouton (pour éviter quelques mésaventures) je la passe en saisie (Table_Ligne..etat = Actif)
Jusque la tout va bien

Ensuite je souhaite pouvoir insérer une ligne dans cette table.
Pour cela je fais :

indice est entier = tableselect(Table_Ligne) // récupération de la ligne selectionnée
tableinsèreligne(Table_Ligne, indice+1)
reprisesaisie(Quantité)

Et la est le probleme : aucune ligne n'est insérée, et le focus se met sur la ligne indice+1. Mon soucis étant que si je trie sur l'Item, windev me mettra la nouvelle ligne automatiquement en début de table, et non a l'emplacement voulu.

J'ai essayé diverses solutions (table monoselection, multiselection, tableinsere, enregistrement en sortie oui/non, saisie en cascade oui/non, etc) mais pas moyen de faire marcher le tableinsèreligne.

Si quelqu'un a une idée sur la chose, je suis preneur, car c'est une partie majeure du programme.

Lionel
Posté le 24 février 2006 - 10:02
Moi j'utilise HAjoute(NomFichier) :

tableselectplus(Table_Ligne,Indice)
ligne_dossier.NoDossier=Table_Ligne.NoDossier
lgne_dossier.Item=Table_Ligne.Item
....
....
HAjoute(ligne_dossier)

voili voilou :D
Posté le 24 février 2006 - 10:39
C'est justement ce que je voudrais éviter.

De plus ma table est une table fichier, pas une table mémoire.

J'ai finalement réussi a faire marcher cette table ; ce qui se passait c'est qu'une ligne était en modification et donc bloquait le fichier => je viens de découvrir que "Enregistrer en sortie de ligne" signifie enregistrer lors de la validation de la derniere colonne de la ligne, et non la version litérale que je pensais (Enregistrer dès que l'on quitte la ligne, de n'importe quelle manière). Donc afin de faire marcher tout ca, j'ai rajouté dans le code de sortie de ligne un petit tableenregistre(), et tout marche nickel maintenant

Merci quand meme, et bonne continuation
Posté le 24 février 2006 - 11:18
de rien c'est normal

bon dev....


*** Fabien pas encore là :D ***