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

Forms Oracle Discussion :

[forms 6i] calculs de sous-totaux


Sujet :

Forms Oracle

  1. #1
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut [forms 6i] calculs de sous-totaux
    Bonjour tout le monde,

    Sous forms 6i, je cherche à mettre un item qui serait le sous-total d'un item appartenant à un bloc multi-enregistrements qui est base table.

    Ex :
    famille / inspecteur / pourcentage / sous-total par famille
    C01 / I001 / 85 / 100 %
    C01 / I002 / 15 / 100 %
    D04 / I012 / 60 / 80 %
    D04 / I015 / 20 / 80 %
    ...
    Le calcul doit être effectué de la manière suivante :
    pour chaque famille, le sous-total est égal à la somme pourcentage de chaque ligne de la famille.

    J'ai vu dans un guide de skeikyerbouti qu'il est possible d'utiliser des items calculés mais je n'arrive pas à instaurer de rupture sur la famille (i.e. les items calculés permettent effectivement de calculer une somme mais je ne vois pas comment grouper sur la famille...).

    Si vous avez une quelconque idée pour implémenter ce calcul (quitte à modifier la structure de ma table pour stocker le calcul, etc.) alors je suis ouvert à toute proposition.

    PS : il n'est pas utile d'avoir le total pour chaque ligne de la famille - on souhaiterait l'avoir pour la dernière uniquement - mais cette notion me semble compliquer le contexte et m'éloigne d'une quelconque solution, non ?

    Merci d'avance.
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  2. #2
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Une idée si tu es en 9i (ou 8i entreprise edition) :
    1- tu crées une vue avec une fonction analytique qui calcule ce sous-total :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    create view ... as
    select famille, inspecteur, pourcentage, sum (pourcentage) over (partition by famille) ss_total from matable;
    2- dans forms:
    - tu bases ton block sur ta vue
    - tu renseignes les propriétes DML data target type (table) et DML data target name (le nom de ta table)
    - tu mets ta colonne ss_total en insert, update à false et query only à true
    ta requête en query sera basée sur ta vue, en saisie sur ta table
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

  3. #3
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Salut plaineR,

    Merci de ta réponse mais je m'étonne de découvrir que ce mécanisme si courant et si facile à mettre en oeuvre sous reports est bien plus complexe sous forms.

    En effet, si je devine comment fonctionne ta solution il lui manque un avantage important : comment mettre à jour les données en temps réel.
    Autrement dit, lorsque je modifie une valeur, comment mettre à jour en temps réel le sous-total correspondant ?

    Ex : En reprenant l'exemple précédent :
    famille / inspecteur / pourcentage / sous-total par famille
    C01 / I001 / 85 / 100 %
    C01 / I002 / 15 / 100 %
    D04 / I012 / 100 / 100 % <-- ce sous-total doit être mis à jour
    D04 / I015 / 20 / 80 %
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  4. #4
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Je n'ai pas fait le test, mais peut-être que si tu mets la propriété de ton block "DML returning value" à Yes, cela mettra à jour tes données. Sinon rien ne t'empêche de ré-éffectuer un query au moment du commit et de te repositionner sur ton enregistrement et sur ton item.

    Moi cela ne m'étonne pas que cela ne fonctionne pas avec forms, qui est avant tout un outil de saisie où il n'y a pas de notions de groupe d'enregistrements ni de rupture.
    Un problème sans solution est un problème mal posé

    Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Citation Envoyé par plaineR
    Je n'ai pas fait le test, mais peut-être que si tu mets la propriété de ton block "DML returning value" à Yes, cela mettra à jour tes données. Sinon rien ne t'empêche de ré-éffectuer un query au moment du commit et de te repositionner sur ton enregistrement et sur ton item.

    Moi cela ne m'étonne pas que cela ne fonctionne pas avec forms, qui est avant tout un outil de saisie où il n'y a pas de notions de groupe d'enregistrements ni de rupture.
    Effectivement, je n'ai pas testé et, pour que l'utilisateur voit les modifications en temps réel, j'en suis arrivé à la même conclusion que toi donc j'ai abandonné la mise en place de cette fonctionnalité => délestage

    Merci du coup de main plaineR
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

Discussions similaires

  1. TCD : "Calculer les sous-totaux des éléments filtrées" grisé
    Par White Clust dans le forum Conception
    Réponses: 2
    Dernier message: 29/06/2012, 10h30
  2. [XL-2007] Création macro calculs de sous-totaux
    Par jchen dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 13/06/2012, 16h37
  3. Réponses: 0
    Dernier message: 29/01/2012, 16h43
  4. [DeskI V5-V6] Calculer des sous totaux dans un tableau croisé dynamique
    Par Tancredoc dans le forum Débuter
    Réponses: 17
    Dernier message: 09/06/2010, 14h22
  5. [AC-2002] Comment calculer des sous-totaux dans une requete croisee
    Par babinou dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 19/08/2009, 09h43

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