Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Outils > Forms
Forms Forum d'entraide sur Oracle Forms
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/11/2007, 14h29   #1
Membre régulier
 
Avatar de scofield
 
Homme koss
Administrateur de base de données
Inscription : octobre 2006
Messages : 179
Détails du profil
Informations personnelles :
Nom : Homme koss

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 : 78
Points : 78
Envoyer un message via MSN à scofield Envoyer un message via Skype™ à scofield
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:
Citation:
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
scofield est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2007, 14h38   #2
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
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.
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2007, 16h21   #3
Membre régulier
 
Avatar de scofield
 
Homme koss
Administrateur de base de données
Inscription : octobre 2006
Messages : 179
Détails du profil
Informations personnelles :
Nom : Homme koss

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 : 78
Points : 78
Envoyer un message via MSN à scofield Envoyer un message via Skype™ à scofield
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
Citation:
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 !
scofield est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2007, 16h24   #4
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
Pourquoi pas un maitre-détail avec un lien 1<->1
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2007, 16h59   #5
Membre régulier
 
Avatar de scofield
 
Homme koss
Administrateur de base de données
Inscription : octobre 2006
Messages : 179
Détails du profil
Informations personnelles :
Nom : Homme koss

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 : 78
Points : 78
Envoyer un message via MSN à scofield Envoyer un message via Skype™ à scofield
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.
scofield est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2007, 17h09   #6
Membre Expert
 
Avatar de Garuda
 
Homme Philippe CHIRCOP
Chef de projet
Inscription : juin 2007
Messages : 1 109
Détails du profil
Informations personnelles :
Nom : Homme Philippe CHIRCOP
Localisation : France

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

Informations forums :
Inscription : juin 2007
Messages : 1 109
Points : 1 559
Points : 1 559
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 10.2.0.4 - Forms6i patch 17 - Toad 11.1 - sharePoint 2010
Garuda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2007, 08h31   #7
Membre régulier
 
Avatar de scofield
 
Homme koss
Administrateur de base de données
Inscription : octobre 2006
Messages : 179
Détails du profil
Informations personnelles :
Nom : Homme koss

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 : 78
Points : 78
Envoyer un message via MSN à scofield Envoyer un message via Skype™ à scofield
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 :
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.
scofield est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2007, 11h37   #8
Membre Expert
 
Avatar de Garuda
 
Homme Philippe CHIRCOP
Chef de projet
Inscription : juin 2007
Messages : 1 109
Détails du profil
Informations personnelles :
Nom : Homme Philippe CHIRCOP
Localisation : France

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

Informations forums :
Inscription : juin 2007
Messages : 1 109
Points : 1 559
Points : 1 559
Citation:
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
Citation:
- 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
Citation:
Au faite dans ce genre de bouton comment faire pr éviter le message (dernier enregistrement d'intérogation ramené)?
Code :
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);
Citation:
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 !

Citation:
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 10.2.0.4 - Forms6i patch 17 - Toad 11.1 - sharePoint 2010
Garuda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2007, 16h46   #9
Membre régulier
 
Avatar de scofield
 
Homme koss
Administrateur de base de données
Inscription : octobre 2006
Messages : 179
Détails du profil
Informations personnelles :
Nom : Homme koss

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 : 78
Points : 78
Envoyer un message via MSN à scofield Envoyer un message via Skype™ à scofield
Par défaut desolé du retard j'é bossé la nuit jska 10h du mat

jai essayé avec when_new_record_instance
Code :
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 !

Citation:
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).

Citation:
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 :
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é!
scofield est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2007, 15h58   #10
Membre régulier
 
Avatar de scofield
 
Homme koss
Administrateur de base de données
Inscription : octobre 2006
Messages : 179
Détails du profil
Informations personnelles :
Nom : Homme koss

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 : 78
Points : 78
Envoyer un message via MSN à scofield Envoyer un message via Skype™ à scofield
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
scofield est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2007, 09h07   #11
Membre régulier
 
Avatar de scofield
 
Homme koss
Administrateur de base de données
Inscription : octobre 2006
Messages : 179
Détails du profil
Informations personnelles :
Nom : Homme koss

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 : 78
Points : 78
Envoyer un message via MSN à scofield Envoyer un message via Skype™ à scofield
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.
Citation:
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
scofield est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h31.


 
 
 
 
Partenaires

Hébergement Web