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 :

Gestion des Blocs et Les Onglet d'une Forme


Sujet :

Forms Oracle

  1. #1
    Membre habitué Avatar de scofield
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2006
    Messages : 179
    Points : 181
    Points
    181
    Par défaut Gestion des Blocs et Les Onglet d'une Forme
    Bonjour , devloper10g ,DB 9i.
    j'ai une forme avec plusieurs anglet (gestion des facture commande pièce détaché d'un concessionnaire)
    Je sais qu'a la base ,ca a toujours été un bloc maitre affiché en mode formulaire et le bloc détail en mode tabulaire .

    Moi comme le bloc détail(table) doit contenir en + d'autre information a travers les dépendances !donc je doit peut etre rajouter les info manquante(item text non basé) avec des trigger post_query et validate iteme pour afficher les info externe au bloc.

    Alors question :
    Si sur un onglet (commande)j'ai la Commande et le contenue en tabulaire (2 bloc).Et sur l'autre je doit avoir la même commande avec juste le num_facture correspondant(+ son etat) ainsi que le même contenue tabulaire(+ leur prix).

    doit je:
    1- Créer Pour chaque anglet 2 Blocs (Maitre détail) donc(complètement indépendant de l'autre onglet) =>création en double de ces blocs.

    2-Ou alors je crée 2 blocs seulement sur le premier onglet et je m'arrange pour mettre leur blocs références dans le deuxième onglet si cela ce fait .comme ça j'aurais crée qu'une seul fois pour les deux onglet de ma forme .
    Dans ce cas comment faire (la démarche).
    CONTRAINTE: je doit pouvoir suivre la facture d'une commande d'un onglet a un autre (relation entre les deux blocs maitre des deux onglet).
    C'EST TRES URGENT ENCORE MERCI
    PS: jour de ma soutenance J-7

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    D'abord, si c'est urgent tu vas voir un prof, là c'est un forum et ta demande n'est pas plus urgente que celle des autres membres.

    Ensuite, tu peux très bien initialiser une variable global contenant le numéro de facture. Cette variable sera alors accessible de n'importe où dans la Form. Tu peux aussi faire référence à la valeur de l'item du bloc où il y a la facture pourvu que la windows ne soit pas fermée.

  3. #3
    Membre habitué Avatar de scofield
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2006
    Messages : 179
    Points : 181
    Points
    181
    Par défaut ;
    PARDON,
    veuillez m'excuser du terme vous avez raison je n'aurais pas du écrire le titre avec ces mots .ma question n'est pas plus urgente que celle des autre autant pour moi.

    euh.. en ce qui concerne
    Tu peux aussi faire référence à la valeur de l'item du bloc où il y a la facture pourvu que la windows ne soit pas fermée.
    je n'ai pas très bien saisie !
    en même temps : je voulait savoir si c'était possible de référencer tout les item (text)basé d'un bloc dans un autre onglet que l'original . Et comme ça éviter de les créer 2 fois puisque les champ du premier bloc (commande)sont repris dan le deuxième onglet avec juste 2 champ spécifiques(num_fact ,etat correspondant) de plus!.
    ENCORE MERCI
    J'ésper ne pas avoir enfreins la charte !

  4. #4
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Pourquoi pas un maitre-détail avec un lien 1<->1

  5. #5
    Membre habitué Avatar de scofield
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2006
    Messages : 179
    Points : 181
    Points
    181
    Par défaut
    je n'ai pas compris ce lien 1<>1.
    la toute de suite , j'ai crée juste les deux premier bloc du premier ONGLET comd/pieces(maitre detail)!
    Pour faire ce que tu dit que doi-je creé maintenant :

    1-cree avec l'assistant deux autre bloc pour le deuxieme onglet
    2-glisser deposer les item de ces deux bloc dans le canevas du deuxieme onglet (en choisissant reference au lieu de copie) est ce que y'aura pas de conflit entre autre ?

    PS: je vai poster au choix une image de la forme ou la forme elle meme.

  6. #6
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    Sur le bloc 1 (maitre)
    - Un item (:block1.item1) basé (sur canevas 1)
    - Un item (:block1.item2) NON BASE (sur le canevas 2) de même type avec la propriété "SYNCHRONIZE WITH ITEM"= :block1.item1

    Tu peux faire pareil pour ton block détail

    AVANTAGE :
    - pas de nouveau bloc
    - Les données sont synchronisées sur les deux canvas
    - Meme nb d'enreg sur les deux canevas
    - Tu peux modifier dans l'un ou l'autre des canevas

    PROBLEME :
    - La scrollbar n'est que sur l'un des deux canevas

    Ca marche. Je fais ca depuis (presque) toujours

    PS : Il faut gérer la navigation pour que le curseur reste dans le canevas (propriété "previous item" et "next item")
    Garuda गरूड
    Brahmâ la Guerre et Vishnu la Paix

    Oracle 12C R2 - Forms11GR2 - Toad 12 - sharePoint 2010

  7. #7
    Membre habitué Avatar de scofield
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2006
    Messages : 179
    Points : 181
    Points
    181
    Par défaut
    j'ai bien essayé ta technique. ca a l'aire de ressembler a ce que je voulais
    mais ,des souci subsiste:
    a chaque fois que je fait un exécute query du maître dans le 2eme onglet le curseur
    revient directe au premier onglet ce qui est pas pratique.

    - sinon ,j'ai mis un trigger pour les bouton suivant precedent
    pour rester dans l'onglet et que le num_fact change selon le record de comd_)
    trigger "when_Button_pressed" de bT_suiv:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    :global.last_item:=:system.cursor_item;
    next_record;
    SELECT NVL(num_fact_pm,'neant'),NVL(etat,'') into
    :Block3.facture,:Block3.etat
     FROM fact_pm 
     where num_compm=:comd_piece.num_compm;
    go_item(:global.last_item);
    Au faite dans ce genre de bouton comment faire pr éviter le message (dernier enregistrement d'intérogation ramené)?

    maintenant il faut que je fassent des recherche (par date ou par client)
    Et aussi des insertion/Maj de la facture, (a partir des item non basé onglet2 correspondant) ,et des commande.
    tu n'a pas d'idée sur ce problème ?
    Merci encore!champion
    ps:peut on mettre le defaut where d'un bloc a partir de deux colonne(je veut rechercher les fact soit par date soit par client.

  8. #8
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    a chaque fois que je fait un exécute query du maître dans le 2eme onglet le curseur
    revient directe au premier onglet ce qui est pas pratique.
    Inverse l'ordre des items dans ton arborescence de maniere à ce que les items du deuxieme canvas soit en premier
    ou fait un 'go_item' dans 'when_new_record_instance' selon l'onglet actif
    - sinon ,j'ai mis un trigger pour les bouton suivant precedent
    pour rester dans l'onglet et que le num_fact change selon le record de comd_)
    trigger "when_Button_pressed" de bT_suiv:
    Code :
    :global.last_item:=:system.cursor_item;
    next_record;
    SELECT NVL(num_fact_pm,'neant'),NVL(etat,'') INTO
    :Block3.facture,:Block3.etat
    FROM fact_pm
    WHERE num_compm=:comd_piece.num_compm;
    go_item(:global.last_item);
    Si :block3 est ton bloc maitre, fait plutot le select dans le trigger 'POST_QUERY' de block3
    Au faite dans ce genre de bouton comment faire pr éviter le message (dernier enregistrement d'intérogation ramené)?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    :global.last_item:=:system.cursor_item;
    Go_block('xxxx'); -- eventuellement !
    IF :SYSTEM.LAST_RECORD!='TRUE' THEN
      next_record;
    END IF;
    go_item(:global.last_item);
    maintenant il faut que je fassent des recherche (par date ou par client)
    Et aussi des insertion/Maj de la facture, (a partir des item non basé onglet2 correspondant) ,et des commande.
    Pas de pb ! Les items 'synchronisés' réagissent comme les items basés avec lesquels ils sont synchronisés !

    ps:peut on mettre le defaut where d'un bloc a partir de deux colonne(je veut rechercher les fact soit par date soit par client.
    OUi ! Dans le trigger 'pre-query' du block
    Garuda गरूड
    Brahmâ la Guerre et Vishnu la Paix

    Oracle 12C R2 - Forms11GR2 - Toad 12 - sharePoint 2010

  9. #9
    Membre habitué Avatar de scofield
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2006
    Messages : 179
    Points : 181
    Points
    181
    Par défaut desolé du retard j'é bossé la nuit jska 10h du mat
    jai essayé avec when_new_record_instance
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if :system.tab_previous_page /:system.tab_new_page='comd'
    	then go_item('comd_piece.num_compm2');
    	end if;
    C KIF KIF.
    Quand je deplace l'ordre des items.si je suis au premier onglet EXEC_query deplace le curseur ver le 2eme !

    Si :block3 est ton bloc maitre, fait plutot le select dans le trigger 'POST_QUERY' de block3
    Non il est non basé et contient les item facture.je lai mit juste pour que le num_fact change avec le changement de record.
    le trigger poste_query existe aussi(meme instruction pour l'initialisation d'item facture).

    ps:peut on mettre le defaut where d'un bloc a partir de deux colonne(je veut rechercher les fact soit par date soit par client.

    OUi ! Dans le trigger 'pre-query' du block
    j'ecris quoi dedans ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    set_block_property('comd',default where,comd_piece.date_compm=:comd_piece.date_compm 
    "ou un item non basé au chois" 
    AND comd_piece.num_cli=:comd_piece.num_cli"ou item nn basé")
    CELA Sachant que je peut exemple: selectioner une date a rechercher ou juste un num_cli OU bien les deux.

    euh ... au faite j'ai oublier de dire que dans les propriete du bloc j'ai mis clause where type_comd='piece' ,Puisque c'est la forme espace piece.

    je sais c un vraie foutoire desolé!

  10. #10
    Membre habitué Avatar de scofield
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2006
    Messages : 179
    Points : 181
    Points
    181
    Par défaut aidez moi svp j'y suis presque
    allez ,ya quelqu'un .serieux!
    voila j'ai un peu avancé :

    en se qui concerne l'insertion de nouvelle commandes j'ai pu :
    1-pour le client, créer un canevas détaché ou réside le bloc client . comme ça je peut sélectionner un client
    existant ou bien le créer d'abord . en suite j'ai mis un bouton qui l'insère dans la commande (l'item num_cli)

    2-Après avoir sélectionné le client je remplie le champ date et je clic sur un bouton qui fais le commit
    (insertion de la commande).

    SEULMENT VOILA ! : question
    a-comment puis-je récupérer dans le champ respectif de l'identifient un enregistrement juste après ça création ,
    Pour le client et aussi pour la commande (trigger ou script quelconque) ?

    b-Sachant que pour la commande j'ai un trigger poste_query qui remplie les champ non basée num_facture
    et nom_client : devrai-je déplacer le contenue du trigger vers celui d'un bouton puisque le champ de l'identifiant
    commande est utilisé dans ce trigger (étant donnée qu'il est nulle donc erreure d'exécution du trigger) ?
    se qui nous mennent a la mémé question que a .

    PLEAS AIDEZ MOI JE DOIS REGLER CA AVANT LE WEEK END .

    ENCORE MILLE MERCI MES CHERES EXPERTS

  11. #11
    Membre habitué Avatar de scofield
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2006
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2006
    Messages : 179
    Points : 181
    Points
    181
    Par défaut
    hey
    j'ai pus régler les problème de navigation et de création des client des
    commandes (Ainsi que la récupération en temps réel des leur identifiant dans l'interface.
    MAIS: RESTE TJR
    la question qui concerne comment mettre la clause where du block avec deux arguments
    (pour utiliser l'un ou l'autre ou les deux).

    Et aussi lors d'une insertion d'une facture a partir d'une commande sur le deuxième onglet
    : j'ai l'erreur forms FRM-40737 déclenché par son équivalent ORA-13403

Discussions similaires

  1. Gestion des priorités sur les champs d'une table
    Par randriano dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/02/2013, 08h17
  2. [XL-2003] Gestion des decimales dans les operations d'une macro
    Par Potzo dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 24/06/2010, 13h01
  3. Gestion des clicks sur les onglets d'un TabPanel
    Par Erwan62 dans le forum Ext JS / Sencha
    Réponses: 3
    Dernier message: 11/06/2009, 15h03

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