IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

table en saisie liée à une requête


Sujet :

WinDev

  1. #1
    Nouveau membre du Club
    Inscrit en
    Octobre 2009
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 67
    Points : 36
    Points
    36
    Par défaut table en saisie liée à une requête
    Bonsoir,

    En tant que débutant sous windev, je suis confronté à un petit soucis.
    J'ai une table (champ) de prix dégressifs qui sont liés à un article. Cette table est affiché dans la fiche article et donc les informations du fichier correspondant s'affichent grâce à une requête ayant pour paramètre l'id de l'article.

    Jusque là tout va bien, en revanche ça se complique à partir du moment où je veux que la table soit en saisie car les données que j'insère dans cette table ne s'enregistre pas dans le fichier correspondant.
    Existe-t-il une procédure toute faites en windev pour cela ou je dois utiliser HAjoute et HModifie lorsqu'on sort du mode saisie sur une ligne ??

    Merci d'avance pour votre aide

    @++

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Bonjour,

    Tu peux utiliser la fonction TableEnregistre(): http://doc.pcsoft.fr/fr-FR/?TableEnregistre.

    En lisant l'aide en ligne, tu verras qu'il est aussi possible d'activer un mode "Saisie en cascade" dont le but est de mettre à jour automatiquement l'enregistrement correspondant à la ligne modifiée, directement dans ta source de données (fichier de données, requête...).
    Cette mise à jour automatique a lieu au changement de ligne dans le champ table.

    Lors d'une insertion d'un nouveau prix, comment fais-tu pour renseigner la rubrique "Id Article" ?
    Je te conseillerai d'utiliser une colonne cachée, liée à la rubrique ad-hoc, et renseignée avec l'identifiant.
    _

  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2009
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 67
    Points : 36
    Points
    36
    Par défaut
    merci pour ton aide , je vais essayer cette procédure

    pour renseigner la clé étrangère, j'utilise effectivement une colonne cachée que je remplit avec la valeur voulue lorsque je rentre en saisie sur une ligne

  4. #4
    Nouveau membre du Club
    Inscrit en
    Octobre 2009
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 67
    Points : 36
    Points
    36
    Par défaut
    Salut,

    J'ai essayé ta méthode mais celle-ci ne fonctionne pas car ma table est remplit à l'aide d'une requête interne à la fenêtre.
    En revanche si j'utilise un fichier comme source de données cela fonctionne, mais je ne peux pas avoir que les enregistrements qui correspondent à ma clé étrangère IDArticle.

    Existe-t-il une autre solution ?

    Merci

    @++

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Bonjour,

    Citation Envoyé par tux59 Voir le message

    J'ai essayé ta méthode mais celle-ci ne fonctionne pas car ma table est remplit à l'aide d'une requête interne à la fenêtre.
    Je pense que tu veux dire "requête intégrée".

    Quelle que soit la requête (intégrée ou externe), pour que le jeu d'enregistrement correspondant soit modifiable, il faut initialiser la requête avec la fonction HExécuteRequête() en spécifiant la constante hModifieFichier.
    Cette fonction permet aussi de passer la valeur des paramètres.

    Actuellement, si je comprends bien, ta requête intégrée est paramétrée.
    Comment fais-tu pour lui transmettre la valeur du paramètre ?

    Citation Envoyé par tux59 Voir le message

    En revanche si j'utilise un fichier comme source de données cela fonctionne, mais je ne peux pas avoir que les enregistrements qui correspondent à ma clé étrangère IDArticle.
    Pour filtrer les données provenant du fichier, il est toujours possible de filtrer le champ table, via la fonction HFiltre() ou encore grâce au traitement "Filtrage des enregistrements" du champ table.
    _

  6. #6
    Nouveau membre du Club
    Inscrit en
    Octobre 2009
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 67
    Points : 36
    Points
    36
    Par défaut
    Salut,

    Effectivement ma requête intégrée est paramétrée et j'initialise le paramètre à l'aide de ceci :
    MaSource.parametre = valeur recherchée

    Je place le code ci-dessus dans l'initialisation de mon champ table que je veux remplir.

    Pour le HFiltre, j'ai trouvé par la suite cette fonctionnalité sur l'aide de windev et cela fonctionne si je lie ma table à un fichier.

    Je vais explorer ta solution, merci pour ton aide

Discussions similaires

  1. [WD16] Modification table liée à une requête
    Par WDKyle dans le forum WinDev
    Réponses: 6
    Dernier message: 07/01/2015, 17h02
  2. Réponses: 1
    Dernier message: 16/02/2012, 19h40
  3. [WD15] Modifier table liée à une requête
    Par tux59 dans le forum WinDev
    Réponses: 1
    Dernier message: 12/12/2011, 14h12
  4. [WD12] Table liée à une requête et saisie
    Par frenchsting dans le forum WinDev
    Réponses: 5
    Dernier message: 13/10/2011, 13h51
  5. [WD11] Réaffichage d'une table liée à une requête
    Par labifle dans le forum WinDev
    Réponses: 8
    Dernier message: 07/05/2010, 13h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo