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 :

rupture en fonction d'un resultat [WD12E]


Sujet :

WinDev

  1. #1
    Nouveau membre du Club Avatar de plm222
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 99
    Points : 39
    Points
    39
    Par défaut rupture en fonction d'un resultat
    Bonjour à vous,
    qqun sait-il comment faire une rupture sachant que ma 2eme ruture se fait sur une rubrique ( rubrique4) et que je souhaite que ma 1ere rupture se face sur le résultat qui est calculé par rapport à cette même rubrique....
    un petit fichier joint pour explication.
    Merci beaucoup
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 381
    Points : 9 547
    Points
    9 547
    Par défaut
    une piste est de supprimer la (les) ruptures et de mettre un iteminepasge ou un isautepage dans le bloc corps.

    à tester et à adapter...

  3. #3
    Nouveau membre du Club Avatar de plm222
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 99
    Points : 39
    Points
    39
    Par défaut
    Bonsoir,
    j'ai reussi à mettre la semaine dans le bas de rupture et j'ai donc mis dans le code haut de rupture (?rupture)
    Normalement, quand ma semaine change la rupture devrait se faire mais rien ne se passe.

    Une petite idée ?


    frenchsting, merci mais ta proposition ne m'inspire pas d'idée de code ...

  4. #4
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 381
    Points : 9 547
    Points
    9 547
    Par défaut
    Pour faire ta rupture, tu dois mémoriser la valeur de ta rubrique précédente... et mettre le code après impression du bloc.

  5. #5
    Nouveau membre du Club Avatar de plm222
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 99
    Points : 39
    Points
    39
    Par défaut
    Merci frenchsting mais je suis vraiment novice.
    je te joins mon fichier zip afin que tu regardes ce que j'ai fait.
    merci de m'aiguiller car je dois éditer rapidement mon état avec un cumul par semaine, donc ce qui veut dire une remise à zéro de mon cumul à chaque rupture.
    je te mets aussi le fichier txt servant de base.
    Tres grand merci d'avance.
    Phil
    Fichiers attachés Fichiers attachés

  6. #6
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 381
    Points : 9 547
    Points
    9 547
    Par défaut
    Désolé mais je ne peux pas ouvrir ton fichier en wd15 (je suis en wd12).

    Dans le code d'ouverture, tu déclares :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Procedure EtatCumul()
    CumulTotal est monetaire = 0
    NomClient est chaine = ""
    Dans le bloc corps / après impression
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Cumultotal += rubrique2
    si (NomClient <> "" et NomClient <> RUB_NomClient) ou si CumulTotal > rubrique4 alors
      iterminePage()
      isautepage()
      NomClient <> RUB_NomClient 
    fin
    C'est l'idée. A revoir pour la détection du changement de client...

    Une autre piste est de ventiler ton fichier texte dans une table sur la fenêtre appelante, de créer une colonne cumul et une colonne saut puis de baser ton état sur ce tableau.
    Sinon, tu peux passer

  7. #7
    Nouveau membre du Club Avatar de plm222
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 99
    Points : 39
    Points
    39
    Par défaut
    Merci, je regarde cette piste.
    Le fichier envoyé est en version 12 (je n'ai pas la version 15).
    Phil

  8. #8
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 381
    Points : 9 547
    Points
    9 547
    Par défaut
    Comme je voyais marqué wd15xxx, je pensais que c'était en 15...

    Pas le temps de regarder ça maintenant, j'essaye de regarder ce soir.
    Par contre, j'ai des trucs bizarre genre :
    variable chaine pour requete non déclarée -> variable globale ?
    et requête écrite non exécutée et caractère "?" inversé (comme en espagnol)

    et une mise à 0 après un renvoyer...

  9. #9
    Nouveau membre du Club Avatar de plm222
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 99
    Points : 39
    Points
    39
    Par défaut
    Citation Envoyé par frenchsting Voir le message
    Comme je voyais marqué wd15xxx, je pensais que c'était en 15...

    Pas le temps de regarder ça maintenant, j'essaye de regarder ce soir.
    Par contre, j'ai des trucs bizarre genre :
    variable chaine pour requete non déclarée -> variable globale ?
    et requête écrite non exécutée et caractère "?" inversé (comme en espagnol)

    et une mise à 0 après un renvoyer...
    Bonsoir,
    la remise à 0 après renvoyer était un test pour mettre le cumul à 0 lorsque la rupture se fait mais bon ...
    les ? à l'envers est un code pour récupérer des données dans un autre logiciel.

  10. #10
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 381
    Points : 9 547
    Points
    9 547
    Par défaut
    Je n'ai pas pris ton état, j'en ai refait un. Il y a rupture sur client et rupture sur date.

    Il y a très peu de code. Regarde le code de l'état et le code des rubriques totales.

    Vérifie ton fichier texte : Je n'ai pas trouvé le montant. Du coup, les totaux sont à 0...
    Fichiers attachés Fichiers attachés

  11. #11
    Nouveau membre du Club Avatar de plm222
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 99
    Points : 39
    Points
    39
    Par défaut
    Merci pour ton aide, ta méthode est bonne mais je n'arrive pas à la retranscrire.
    La raison est que j'ai dans mon corps une rubrique (ici "DATE_recup_sem") qui est liée à une rubrique 4 avec un code qui me ramène la semaine :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    sem est une chaîne
    sem=ChaîneVersDate(DATE_recup_sem)
    sem = DateVersChaîne (sem,"AAAAMMJJ")
    sem=DateVersNuméroDeSemaine(sem)
    DATE_recup_sem=sem
    et aussi une rubrique ( "Date_evenement") qui me ramene les jour de la semaine :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    res est une chaîne
    res=ChaîneVersDate (Date_evenement)
    res = DateVersChaîne (res, "JJJJ JJ MMMM AAAA") // Res = "Mardi 02 Décembre 2003"
    Date_evenement=res
    Ma deuxième rupture fonctionne bien, c'est à dire qu'elle me fait un total lorsque ma "Date_evenement" change, mais mon problème est pour ma première rupture que je veux déclencher quand ma semaine change ("DATE_recup_sem").

    Mais comme "Date_evenement" et "DATE_recup_sem" sont liées toutes les deux à ma rubrique4 et je ne sais pas du coup comment déclencher ma 1ere rupture.

    Dans ton exemple tes deux ruptures pointes sur deux rubriques différentes donc ça fonctionne ....
    suis-je assez explicite ?

    merci de ton aide
    Phil

  12. #12
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 381
    Points : 9 547
    Points
    9 547
    Par défaut
    Tu veux faire une rupture sur un champ calculé.

    Le plus simple est de calculer le champ avant l'édition de l'état.
    Soit tu modifies le fichier texte en rajoutant une rubrique avec cette valeur,
    Soit tu crées une table dans laquelle tu charges ton fichier texte, et dans une colonne supplémentaire, tu mets ton calcul. Tu fais ensuite un nouvel état basé sur cette table.

  13. #13
    Nouveau membre du Club Avatar de plm222
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 99
    Points : 39
    Points
    39
    Par défaut
    Bonjour Frenchting,
    une solution qui fonctionne...merci pour tout :

    1- ajoutez une rubrique vide et invisible dans Haut rupture 1 (on donne un nom à la rubrique disant RUBRIQUE2 par exemple)
    2- dans le code de l'état dans la partie ouverture ajoutez ce code GLOBAL ID est une entier
    ID=fOuvre("\\Srv2008\c$\100\etats\WD150",foLectureEcriture)
    LIG est une chaîne=fLitLigne(ID)
    K est une Date=ChaîneVersDate(ExtraitChaîne(LIG,4, TAB))
    RUBRIQUE2=DateVersNuméroDeSemaine(K)
    3- Dans avant impression du bloc Corps ajoutez ce code
    LIG=fLitLigne(ID)
    K =ChaîneVersDate(ExtraitChaîne(LIG,4, TAB))
    RUBRIQUE2=DateVersNuméroDeSemaine(K)
    4- Il faut laissez Haut rupture 1 sur rupture programmée et remplacez ce code RENVOYER DATE_recup_sem2 par celui ci:
    RENVOYER RUBRIQUE2

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Toutes versions] Fusion de cellule en fonction des autres resultats
    Par djamat dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/05/2013, 10h13
  2. Réponses: 11
    Dernier message: 14/05/2010, 14h27
  3. Réponses: 6
    Dernier message: 17/10/2006, 07h25
  4. [VB6] Comment faire une fonction qui renvoie 2 résultats
    Par tazarine dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 15/01/2004, 00h13
  5. [LG]résultat renvoyé par une fonction
    Par le 27 dans le forum Langage
    Réponses: 3
    Dernier message: 10/12/2003, 10h31

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