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 :

Etat et programmation


Sujet :

WinDev

  1. #1
    Nouveau membre du Club Avatar de pacodiasse
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2013
    Messages : 23
    Points : 33
    Points
    33
    Par défaut Etat et programmation
    Bonjour,
    Je veux répéter par programmation une ligne de mon Etat n fois. Dans ce cas d'Etat Nom : Etat.PNG
Affichages : 189
Taille : 1,1 Ko
    Je veux répéter Exonéré par exemple 3fois au niveau de l'affichage de l'Etat.
    Si j'arrive je pourrai résoudre le gros lot du probléme.
    Merci et bon dév

  2. #2
    Membre confirmé
    Homme Profil pro
    Admin - Gestion reconverti en informatique
    Inscrit en
    Septembre 2017
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Admin - Gestion reconverti en informatique

    Informations forums :
    Inscription : Septembre 2017
    Messages : 328
    Points : 493
    Points
    493
    Par défaut
    Maintenant, la même question est posée par le concerné dans plusieurs forums
    https://forum.pcsoft.fr/fr-FR/pcsoft...ation/read.awp

    @Ndiaga Toure
    En conséquence, je t'informe que j'ai la solution à ton problème. J'hésite à la poster ici ou forum pcsoft.
    En tout cas, c'est dans le bloc "Lecture des données de l'état", que tu dois saisir un code qui fera un contrôle sur la quantité.

  3. #3
    Membre émérite
    Femme Profil pro
    .
    Inscrit en
    Janvier 2012
    Messages
    999
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : .
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Janvier 2012
    Messages : 999
    Points : 2 526
    Points
    2 526
    Par défaut
    Citation Envoyé par midou23175 Voir le message
    J'hésite à la poster ici ou forum pcsoft.
    Privilégions notre forum, non ?

  4. #4
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 808
    Points : 5 267
    Points
    5 267
    Billets dans le blog
    1
    Par défaut
    Voici la question initiale, cela évitera de refaire les même réponses
    Bonjour,
    J'ai un Etat basé sur une requete.les champs affichées sont [Quantite, description, prix ]
    -je doit répéter la même description et prix si la rubrique quantité est supérieur à 1
    J'ai essayé ce code au niveau de l'ouverture de l'Etat mais ça affiche qu'une seule ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    nb est entier=Lib_quantité
    SI nb>1 ALORS
        POUR i=1 A nb
        lib_description="toto"
        FIN
    fin
    Et le reste de la discussion :
    Bonjour,
    Il suffit de modifier ta requête en ajoutant une condition sur la quantité.

    Ta requête doit ressembler à ça :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT
      PRODUIT.Decription,
      PRODUIT.Prix,
      LIGNECDE.Qte
    FROM
      PRODUIT,
      LIGNECDE
    WHERE
      PRODUIT.PK_PRODUIT=LIGNECDE.FK_PRODUIT


    Il suffit de la modifier en
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT
      PRODUIT.Decription,
      PRODUIT.Prix,
      LIGNECDE.Qte
    FROM
      PRODUIT,
      LIGNECDE
    WHERE
      PRODUIT.PK_PRODUIT=LIGNECDE.FK_PRODUIT
      AND
        LIGNECDE.QTE>1
    Merci de votre réponse.Mais ici l'idée ce n'est pas d'afficher seulement les quantité supérieur à 1 mais de splitter les quantités supérieur en 1. Autrement dit de répéter les lignes dont la quantité est supérieur à 1
    Nom : Etat_e271f13860288da22693f0976ac90172.png
Affichages : 163
Taille : 3,8 Ko
    Dans ce cas répéter le champ description et prix deux fois puisque la quantité est de 2.
    Cordialement
    Réponse :
    On va appeler la requête REQ_DétailFacture_Complet
    Le tableau doit être rempli par programmation (Description/Données/Les données viennent...)

    Initialisation de l'état :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    HExécuteRequête(REQ_DétailFacture_Complet)
    gsQtéAffichée est chaîne //Il faudra passer la colonne en texte, cela évite d'avoir un "zéro"
    gnItération est entier
     
    gnItération=1 //A adapter si l'on considère que la première ligne du produit est le récapitulatif ou pas
    HLitPremier(REQ_DétailFacture_Complet)
    Lecture des données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    TANTQUE PAS HEnDehors(REQ_DétailFacture_Complet)
        SI gnItération=1 ALORS //C'est la première ligne on affiche la quantité
            gsQtéAffichée=REQ_DétailFacture_Complet.Qte
        SINON //On n'affiche pas la quantité
            gsQtéAffichée=""
        FIN
        RENVOYER Vrai
    FIN
     
    RENVOYER Faux
    Avant impression de CORPS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    LIB_Qté=gsQtéAffichée
    LIB_Produit=REQ_DétailFacture_Complet.NDX_NomProduit
    LIB_Prix=REQ_DétailFacture_Complet.Prix
     
    gnItération++
    SI gnItération>REQ_DétailFacture_Complet.Qte ALORS
        HLitSuivant(REQ_DétailFacture_Complet)
        gnItération=1
    FIN
    Pour en arriver à la question posée sur ce forum.
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  5. #5
    Membre confirmé
    Homme Profil pro
    Admin - Gestion reconverti en informatique
    Inscrit en
    Septembre 2017
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Admin - Gestion reconverti en informatique

    Informations forums :
    Inscription : Septembre 2017
    Messages : 328
    Points : 493
    Points
    493
    Par défaut
    Bonjour,

    Citation Envoyé par midou23175 Voir le message
    @Ndiaga Toure
    En conséquence, je t'informe que j'ai la solution à ton problème. J'hésite à la poster ici ou forum pcsoft.
    Citation Envoyé par serendib Voir le message
    Privilégions notre forum, non ?
    Si, bien entendu. D'autant plus que j'ai appris énormément grâce ce forum, même avant d'être membre.

    La question centrale posée par pacodiasse concerne la quantité, soit imprimer (dupliquer) autant de lignes que le nombre de quantités de la ligne source.

    Pour faire bosser notre ami, je résume l'idée : à insérer dans le bloc "Lecture des données de l'état"

    Dans le cas où la quantité est supérieure à 1, on boucle sur un nombre de quantité supplémentaire et on utilise la fonction iImprimeBloc()
    Le code est fonctionnel, pour un tableau basé sur une table, ou basé sur une requête.

  6. #6
    Membre actif
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 174
    Points : 287
    Points
    287
    Par défaut
    Citation Envoyé par midou23175 Voir le message
    Bonjour,


    Si, bien entendu.

    La question centrale posée par pacodiasse concerne la quantité, soit imprimer (dupliquer) autant de lignes que le nombre de quantités de la ligne source.

    Pour faire bosser notre ami, je résume l'idée : à insérer dans le bloc "Lecture des données de l'état"

    Dans le cas où la quantité est supérieure à 1, on boucle sur un nombre de quantité supplémentaire et on utilise la fonction iImprimeBloc()
    Le code est fonctionnel, pour un tableau basé sur une table, ou basé sur une requête.
    Bonjour;

    Merci midou23175 pour l'idée.
    Merci PC Soft pour la fonction iImprimeBloc(). il faut que je parcours les fonctions du WLangage.
    Et bien sur un grand MERCI au forum de nous avoir rassembler.

    Bon Dev

Discussions similaires

  1. [WD16] Appelé Etat par programmation dans un répertoire
    Par buzz68180 dans le forum WinDev
    Réponses: 2
    Dernier message: 19/01/2012, 14h03
  2. [Etats & Requêtes] Choisir Modèle d'un Etat par programmation
    Par Lagosran dans le forum WinDev
    Réponses: 0
    Dernier message: 10/06/2010, 16h35
  3. [WD11] Etat par programmation avec sous totaux et totaux
    Par antrax2013 dans le forum WinDev
    Réponses: 2
    Dernier message: 21/04/2009, 12h20
  4. Réponses: 2
    Dernier message: 12/03/2009, 19h57
  5. [WD10] Etat sur programmation / [%nom%]
    Par mnssylvain dans le forum WinDev
    Réponses: 2
    Dernier message: 10/02/2009, 16h32

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