Insertion de ligne dans une table fichier |
Sujet: Insertion de ligne dans une table fichier par Anonyme sur 12/11/2004 17:39:38 Bonjour, je cherche à insérer une ligne dans une table fichier qui est parcourue dans l'ordre de la cle primaire (Numéro auto) ca fonctionne sur l'affichage du tableau mais pas dans le fichier HF car la ligne ajoutee est systematiquement en derniere position dans le fichier j'ai essayé de faire 2 tableaux dynamiques : 1 pour la partie supérieure du tableau (au dessus de la ligne à insérer) 1 pour la partie inférieure du tableau (au dessous de la ligne à insérer) j'efface mon fichier hyperfile et je le reconstruit en creant : 1°) reinscription tu tableau 1 2°)insertion ligne vide 3°) reinscription tableau2 Mais ca ne fonctionne pas, ya pleins de bugs et de tte facon la solution me semble bien plus compliquée qu'elle ne doit l'être réellement voici mon code : ============================================================================ =========== // session_acte = Numéro de l'acte en cours (filtre) cf : logiciel de facturation // g fait un hfiltre sur mon fichier HF pour récupérer les bonnes lignes de ma facture // table_item est a table contenant les lignes de facturation PROCEDURE Insertion(NumLigne) //Numligne = numéro de la ligne selectionnée avant laquelle jedois inserer une ligne vide Tableau1,Tableau2 sont des tableaux dynamiques de 0 par 5 chaînes i est un entier = 0 //creation du tableau contenant les lignes AVANT la ligne d'insertion POUR i = 1 A NumLigne - 1 Dimension(Tableau1,i,5) Tableau1[i,1] = Table_Item.Num_Acte_Item Tableau1[i,2] = Table_Item.Description_Item Tableau1[i,3] = Table_Item.Qte_Item Tableau1[i,4] = Table_Item.TVA_Item Tableau1[i,5] = Table_Item.HT_Item FIN //creation du tableau contenant les lignes APRES la ligne d'insertion POUR i = NumLigne A Table_Item..Occurrence Dimension(Tableau2,i,5) Tableau2[i,1] = Table_Item.Num_Acte_Item Tableau2[i,2] = Table_Item.Description_Item Tableau2[i,3] = Table_Item.Qte_Item Tableau2[i,4] = Table_Item.TVA_Item Tableau2[i,5] = Table_Item.HT_Item //trace(Tableau2[i,1],Tableau2[i,2],Tableau2[i,3],Tableau2[i,4],Tableau2[i,5 ]) FIN //============================ //Mise à jour de la table //============================ //suppression des enregistrements HLitRecherchePremier(Item,Num_Acte_Item,session_acte) TANTQUE HTrouve HSupprime(Item) HLitSuivant(Item) FIN //Partie supérieure POUR i = 1 A TableauInfo(Tableau1,tiDimension) Item.Num_Acte_Item = Tableau1[i,1] Item.Description_Item = Tableau1[i,2] Item.Qte_Item = Tableau1[i,3] Item.TVA_Item = Tableau1[i,4] Item.HT_Item = Tableau1[i,5] HAjoute(Item) FIN //insertion de la ligne TableSelectMoins(Table_Item) TableInsèreLigne(Table_Item,Table_Item..Occurrence + 1) TableSelectPlus(Table_Item,Table_Item..Occurrence+1) Table_Item.Num_Acte_Item = session_acte Table_Item.Description_Item = "test insertion" // verif de l'ériture de la clé TableEnregistre(Table_Item) //Partie Inferieure POUR i = 1 A TableauInfo(Tableau2,tiDimension) Item.Num_Acte_Item = Tableau2[i,1] Item.Description_Item = Tableau2[i,2] Item.Qte_Item = Tableau2[i,3] Item.TVA_Item = Tableau2[i,4] Item.HT_Item = Tableau2[i,5] HAjoute(Item) FIN TableAffiche(Table_Item,taCourantBandeau) =================================================== Voila !!! J'ai essayé de faire ca proprement , mais ca ne marche pas comme je voudrais QUI A UNE SOLUTION ---SIMPLE--- ET ---FIABLE--- ? Merci de votre aide ! Fred |