PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → liaison fichiers
liaison fichiers
Débuté par p.didi, 24 aoû. 2004 18:49 - 6 réponses
Posté le 24 août 2004 - 18:49
bonjour,
j'ai 2 fichiers liés entre eux.la clé de liaison est ID_Client.
le fichier clients qui contient des données.
et le fichier matériels qui ne contient aucune donnée.
j'ai une fenêtre de type fiche liée au fichier Client, cette fenêtre se compose
de plusieurs onglets, et dans l'un des onglet, j'ai créee une table matériel
dont les colonnes sont liées au fichier Matériels.
le problème c'est que quand je remplie la table matériel pour un client et
j'enregistre, je regarde dans le WDMap et je m'aperçois que le fichier matériels
ne contient aucun enregistrement, ni la valeur de la clé ID_Client.
j'ai fait ecranversfichier mais ça marche pas.
merci de m'aider svp
Posté le 24 août 2004 - 19:37
Si vous aviez programmé des tests lors de l'ajout des enregistrements il
serait plus simple de détecter l'erreur. Je pense particulierement à une
faute d'intégrité dans votre cas.

Si je suis bien, vous avez une fenetre avec des champs liés au fichier
CLIENT. Le champs ID_CLient se trouve certainement dans votre fenetre.

Par contre, lors de l'enregistrement dans le fichier MATERIEL, êtes vous
certain de bien initialiser la valeur MATERIEL.ID_CLIENT ?

Meme en liant la colonne matériel au fichier, il faut indiquer
explicitement la valeur a cette colonne( ColonneID_Client =
CLIENT.ID_Client ) et controler qu'il n'y a pas eu d'erreur apres
l'ajout de l'enregistrement dans la table ( HErrIntegrite() a tester
SYSTEMATIQUEMENT ).

Au pire, faites un test systematique pour chaque modification( ajout,
modif ou suppression ) dans vos fichiers de données sur les 3 erreurs
les plus rencontrées : Doublon, Intégrité et Blocage. C'est primordial !

dounia wrote:
bonjour,
j'ai 2 fichiers liés entre eux.la clé de liaison est ID_Client.
le fichier clients qui contient des données.
et le fichier matériels qui ne contient aucune donnée.
j'ai une fenêtre de type fiche liée au fichier Client, cette fenêtre se compose
de plusieurs onglets, et dans l'un des onglet, j'ai créee une table matériel
dont les colonnes sont liées au fichier Matériels.
le problème c'est que quand je remplie la table matériel pour un client et
j'enregistre, je regarde dans le WDMap et je m'aperçois que le fichier matériels
ne contient aucun enregistrement, ni la valeur de la clé ID_Client.
j'ai fait ecranversfichier mais ça marche pas.
merci de m'aider svp
Posté le 24 août 2004 - 19:43
Quel est le code de ton bouton "enregistrer"??
"dounia" <p.didi@caramail.com> wrote:


bonjour,
j'ai 2 fichiers liés entre eux.la clé de liaison est ID_Client.
le fichier clients qui contient des données.
et le fichier matériels qui ne contient aucune donnée.
j'ai une fenêtre de type fiche liée au fichier Client, cette fenêtre se

compose
de plusieurs onglets, et dans l'un des onglet, j'ai créee une table matériel
dont les colonnes sont liées au fichier Matériels.
le problème c'est que quand je remplie la table matériel pour un client

et
j'enregistre, je regarde dans le WDMap et je m'aperçois que le fichier matériels
ne contient aucun enregistrement, ni la valeur de la clé ID_Client.
j'ai fait ecranversfichier mais ça marche pas.
merci de m'aider svp
Posté le 25 août 2004 - 10:59
en fait, l'enregistrement se fait à la fermeture
dans clic sur fermer il y a:
Ferme("",gbFenetreModifiee)
et la procedure locale verifModification est la suivante:
PROCEDURE VerifModification()

// si un champ a été modifiée dans la fiche
SI MaFenêtre..Modifié ALORS

SI OuiNon("La fiche ClientsProspects a été modifiée, validez-vous ces modifications
?") ALORS
date_miseajour=DateSys()
// Mise en place de l'enregistrement et validation
SI RADEnregistre() ALORS

// Modification de l'enregistrement
HModifie(ClientsProspects)

SI ErreurDétectée ALORS
Info("Impossible de modifier l'enregistrement"+RC+HErreurInfo())
RETOUR
FIN

// On indique qu'un enregistrement a été modifié (le rafraichissement
des données sera nécessaire)
gbFenetreModifiee = Vrai

// indique que la fiche n'est plus modifiée
MaFenêtre..Modifié=Faux


// On grise les champs d'applications des modifications
SI ChampExiste("GP_APPLIQUER") ALORS GP_APPLIQUER..Etat = Grisé
FIN
SINON
// Les modifications ne doivent pas être prises en compte
MaFenêtre..Modifié = Faux

// On grise les champs d'applications des modifications
SI ChampExiste("GP_APPLIQUER") ALORS GP_APPLIQUER..Etat = Grisé

FIN
FIN

merci pour votre aide

"Ali" <a_m_achkar@yahoo.fr> wrote:


Quel est le code de ton bouton "enregistrer"??
"dounia" <p.didi@caramail.com> wrote:


bonjour,
j'ai 2 fichiers liés entre eux.la clé de liaison est ID_Client.
le fichier clients qui contient des données.
et le fichier matériels qui ne contient aucune donnée.
j'ai une fenêtre de type fiche liée au fichier Client, cette fenêtre se
compose

de plusieurs onglets, et dans l'un des onglet, j'ai créee une table matériel
dont les colonnes sont liées au fichier Matériels.
le problème c'est que quand je remplie la table matériel pour un client
et

j'enregistre, je regarde dans le WDMap et je m'aperçois que le fichier

matériels
ne contient aucun enregistrement, ni la valeur de la clé ID_Client.
j'ai fait ecranversfichier mais ça marche pas.
merci de m'aider svp

Posté le 25 août 2004 - 11:43
Je ne vois pas ici d'ajout ou modification de votre table fichier Matériel.

( ou alors j'ai raté un épisode ? )

dounia wrote:

en fait, l'enregistrement se fait à la fermeture
dans clic sur fermer il y a:
Ferme("",gbFenetreModifiee)
et la procedure locale verifModification est la suivante:
PROCEDURE VerifModification()

// si un champ a été modifiée dans la fiche
SI MaFenêtre..Modifié ALORS

SI OuiNon("La fiche ClientsProspects a été modifiée, validez-vous ces modifications
?") ALORS
date_miseajour=DateSys()
// Mise en place de l'enregistrement et validation
SI RADEnregistre() ALORS

// Modification de l'enregistrement
HModifie(ClientsProspects)

SI ErreurDétectée ALORS
Info("Impossible de modifier l'enregistrement"+RC+HErreurInfo())
RETOUR
FIN

// On indique qu'un enregistrement a été modifié (le rafraichissement
des données sera nécessaire)
gbFenetreModifiee = Vrai

// indique que la fiche n'est plus modifiée
MaFenêtre..Modifié=Faux


// On grise les champs d'applications des modifications
SI ChampExiste("GP_APPLIQUER") ALORS GP_APPLIQUER..Etat = Grisé
FIN
SINON
// Les modifications ne doivent pas être prises en compte
MaFenêtre..Modifié = Faux

// On grise les champs d'applications des modifications
SI ChampExiste("GP_APPLIQUER") ALORS GP_APPLIQUER..Etat = Grisé

FIN
FIN

merci pour votre aide

"Ali" <a_m_achkar@yahoo.fr> wrote:


Quel est le code de ton bouton "enregistrer"??
"dounia" <p.didi@caramail.com> wrote:


bonjour,
j'ai 2 fichiers liés entre eux.la clé de liaison est ID_Client.
le fichier clients qui contient des données.
et le fichier matériels qui ne contient aucune donnée.
j'ai une fenêtre de type fiche liée au fichier Client, cette fenêtre se

compose

de plusieurs onglets, et dans l'un des onglet, j'ai créee une table matériel
dont les colonnes sont liées au fichier Matériels.
le problème c'est que quand je remplie la table matériel pour un client

et

j'enregistre, je regarde dans le WDMap et je m'aperçois que le fichier

matériels

ne contient aucun enregistrement, ni la valeur de la clé ID_Client.
j'ai fait ecranversfichier mais ça marche pas.
merci de m'aider svp


Posté le 25 août 2004 - 12:28
en fait, j'ai fait après HModifie(ClientsProspects)
HModifie(Matériels)

=?ISO-8859-1?Q?BOUDOT_Sébastien_-_Blue_River_System?= wrote:

Je ne vois pas ici d'ajout ou modification de votre table fichier Matériel.

( ou alors j'ai raté un épisode ? )

dounia wrote:

en fait, l'enregistrement se fait à la fermeture
dans clic sur fermer il y a:
Ferme("",gbFenetreModifiee)
et la procedure locale verifModification est la suivante:
PROCEDURE VerifModification()

// si un champ a été modifiée dans la fiche
SI MaFenêtre..Modifié ALORS

SI OuiNon("La fiche ClientsProspects a été modifiée, validez-vous ces

modifications
?") ALORS
date_miseajour=DateSys()
// Mise en place de l'enregistrement et validation
SI RADEnregistre() ALORS

// Modification de l'enregistrement
HModifie(ClientsProspects)

SI ErreurDétectée ALORS
Info("Impossible de modifier l'enregistrement"+RC+HErreurInfo())
RETOUR
FIN

// On indique qu'un enregistrement a été modifié (le rafraichissement
des données sera nécessaire)
gbFenetreModifiee = Vrai

// indique que la fiche n'est plus modifiée
MaFenêtre..Modifié=Faux


// On grise les champs d'applications des modifications
SI ChampExiste("GP_APPLIQUER") ALORS GP_APPLIQUER..Etat = Grisé
FIN
SINON
// Les modifications ne doivent pas être prises en compte
MaFenêtre..Modifié = Faux

// On grise les champs d'applications des modifications
SI ChampExiste("GP_APPLIQUER") ALORS GP_APPLIQUER..Etat = Grisé

FIN
FIN

merci pour votre aide

"Ali" <a_m_achkar@yahoo.fr> wrote:


Quel est le code de ton bouton "enregistrer"??
"dounia" <p.didi@caramail.com> wrote:


bonjour,
j'ai 2 fichiers liés entre eux.la clé de liaison est ID_Client.
le fichier clients qui contient des données.
et le fichier matériels qui ne contient aucune donnée.
j'ai une fenêtre de type fiche liée au fichier Client, cette fenêtre

se

compose

de plusieurs onglets, et dans l'un des onglet, j'ai créee une table matériel
dont les colonnes sont liées au fichier Matériels.
le problème c'est que quand je remplie la table matériel pour un client

et

j'enregistre, je regarde dans le WDMap et je m'aperçois que le fichier

matériels

ne contient aucun enregistrement, ni la valeur de la clé ID_Client.
j'ai fait ecranversfichier mais ça marche pas.
merci de m'aider svp



Posté le 25 août 2004 - 18:22
Si les informations MAtériel sont dans une table Fichier , alors
HModifie() ne fera rien, il faut impérativement passer par un
TableEnregistre(). Attention seule la ligne en cours dans la table est
prise en compte.

dounia wrote:

en fait, j'ai fait après HModifie(ClientsProspects)
HModifie(Matériels)

=?ISO-8859-1?Q?BOUDOT_Sébastien_-_Blue_River_System?= wrote:

Je ne vois pas ici d'ajout ou modification de votre table fichier Matériel.

( ou alors j'ai raté un épisode ? )

dounia wrote:


en fait, l'enregistrement se fait à la fermeture
dans clic sur fermer il y a:
Ferme("",gbFenetreModifiee)
et la procedure locale verifModification est la suivante:
PROCEDURE VerifModification()

// si un champ a été modifiée dans la fiche
SI MaFenêtre..Modifié ALORS

SI OuiNon("La fiche ClientsProspects a été modifiée, validez-vous ces

modifications

?") ALORS
date_miseajour=DateSys()
// Mise en place de l'enregistrement et validation
SI RADEnregistre() ALORS

// Modification de l'enregistrement
HModifie(ClientsProspects)

SI ErreurDétectée ALORS
Info("Impossible de modifier l'enregistrement"+RC+HErreurInfo())
RETOUR
FIN

// On indique qu'un enregistrement a été modifié (le rafraichissement
des données sera nécessaire)
gbFenetreModifiee = Vrai

// indique que la fiche n'est plus modifiée
MaFenêtre..Modifié=Faux


// On grise les champs d'applications des modifications
SI ChampExiste("GP_APPLIQUER") ALORS GP_APPLIQUER..Etat = Grisé
FIN
SINON
// Les modifications ne doivent pas être prises en compte
MaFenêtre..Modifié = Faux

// On grise les champs d'applications des modifications
SI ChampExiste("GP_APPLIQUER") ALORS GP_APPLIQUER..Etat = Grisé

FIN
FIN

merci pour votre aide

"Ali" <a_m_achkar@yahoo.fr> wrote:


Quel est le code de ton bouton "enregistrer"??
"dounia" <p.didi@caramail.com> wrote:


bonjour,
j'ai 2 fichiers liés entre eux.la clé de liaison est ID_Client.
le fichier clients qui contient des données.
et le fichier matériels qui ne contient aucune donnée.
j'ai une fenêtre de type fiche liée au fichier Client, cette fenêtre

se

compose


de plusieurs onglets, et dans l'un des onglet, j'ai créee une table matériel
dont les colonnes sont liées au fichier Matériels.
le problème c'est que quand je remplie la table matériel pour un client

et


j'enregistre, je regarde dans le WDMap et je m'aperçois que le fichier

matériels


ne contient aucun enregistrement, ni la valeur de la clé ID_Client.
j'ai fait ecranversfichier mais ça marche pas.
merci de m'aider svp