Re: inserer enregistrement table fichier

Posté par drcharly93 le 6/6/2005 11:44:09
Bonjour bouaraoua,

Si votre table est relié à un fichié je ne serait trop vous conseiller de conserver le circuit
Fenetre d'affichage (Contenant la table relié au fichier)
Fenetre d'ajout, modification des données)
plus proche du rad et séparant bien les traitements.

Vous pouvez par contre donner l'impression de saisir directement dans la table via quelques astuces.

Créer par exemple une fenêtre de saisie modification sans barre de titre ni menu systeme.

dans le code d'ouverture de cette fenetre que l'on va appeler 'Fen_Fic'
PROCEDURE Fiche(ModeFen="Création", Saisie=0)

ModeFen = mode d'appel de la fenêtre
SaisieOk valeur de retour pour savoir si l'ajout ou la modification à été effectué. valeur qui sera retournée à la fenêtre parente.

La fenêtre parente que l'on appelera 'Fen_Tab' contiendra au minimum une table relié à un fichier que l'on appelera 'Table' et un bouton 'cmdAjouter' puis au moins un bouton 'cmdModifier'

pour le bouton 'cmdModifier'
bOk est un Booléan

//On position la fenêtre sur la 
Ouvre("Fen_Fic," + ((Table..Ligne + 10) + 16 * (Table + 1)) + "," + 11, "Création", bOk)
Si bOk Alors
 //Ici on récupère un pointeur sur l'enregistrement en cours
 //...
 //On réffiche la table pour y afficher l'enregistrement ajouté
 TableAffiche("Table","I")
 //Ici on se repositionne en fonction du pointeur sauvegarder pour avoir le bandeau sur l'enregistrement ajouté
Fin


Pour le bouton cmdAjouter
bOk est un Booléan

Si TableOccurrence(Table) > 0 Alors
 //On position la fenêtre sur la 
 Ouvre(Fen_Fic," + ((Table..Ligne + 26) + (16 * (TableOccurrence + 1))) + "," + 11, "Modif", bOk)
  Si bOk Alors
   //Ici on récupère un pointeur sur l'enregistrement en cours
   //...
   //On réffiche la table pour y afficher l'enregistrement ajouté
   TableAffiche("Table","I")
   //Ici on se repositionne en fonction du pointeur sauvegarder pour avoir le bandeau sur l'enregistrement ajouté
 Fin 
Fin


Cette technique permet de donner l'impression de saisir directement dans la table.
Code à vérifier

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=4&topic_id=1942&post_id=9836