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 21/03/2006, 17h55   #1
Invité de passage
 
Inscription : mars 2006
Messages : 6
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 6
Points : 0
Points : 0
Par défaut Oracle forms

msg
j'ai une form contenant deux Blocks B1(items: :B1.idcli, :B1.dts) --non basé--
et B2(items: :B2.idcli, :B2.idp, :B2.dtr, :B2.dts)

le block B2 est basé sur la table DEPOSER(idcli,idP,dtr,dts);
B2 contient une requete pour sélectionner dans la table "DEPOSER" tous les prds déposés par le Client :B1.idcli

prg: avec un déclencheur When-new-block
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
declare 
	cursor cc IS
	SELECT deposer.idp,deposer.dtr,deposer.dts,produit.desp,produit.etat  
	FROM deposer,produit
	WHERE (deposer.idcli=:bl.idcli)AND(produit.idp=deposer.idp)AND(deposer.dts='01-mars-1000');
	v1 DEPOSER.idp%type;                  
	v2 deposer.dtr%type;
	v3 produit.desp%type;
	v4 produit.etat%type;
	v5 deposer.dts%type;
begin
	open cc;
	loop
	 fetch cc INTO v1,v2,v5,v3,v4 ;
	 go_block('deposer');
	 :deposer.idp:=v1;
	 :deposer.dtr:=v2;
	 :deposer.prod:=v3;
	 :deposer.etat:=v4;
	 :deposer.dts:=:bl.dts;
	 exit when cc%NOTFOUND;
	 create_record;
	end loop;
	clear_record;
	close cc;
end;  -- rmq: ça marche--
Prb: Je veux modifier la date "dts" dans la table "DEPOSER" de chaq produit restitué,
à l'execution il me signale FRM-40508
Merci bien
bchbch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2006, 18h33   #2
Membre actif
 
Inscription : décembre 2005
Messages : 138
Détails du profil
Informations personnelles :
Localisation : Canada

Informations forums :
Inscription : décembre 2005
Messages : 138
Points : 157
Points : 157
Citation:
Je veux modifier la date "dts" dans la table "DEPOSER" de chaq produit restitué
Je ne comprends pas ce que tu veux dire par là...


Citation:
à l'execution il me signale FRM-40508
Si ma mémoire m'est fidèle, il s'agit d'un "Cannot insert record". Évidemment, si les enregistrements du bloc sont créés à la mitaine, il les voit comme des enregistrements "insérés par l'utilisateur" et souhaite à son tour, les insérer dans les tables de la base quand tu cliques sur enregistrer (parce que j'ai supposé que tu avais cliqué sur la disquette, ce message là n'arrive jamais autrement).

Un petit retour aux sources est peut-être la solution. Pourquoi ne pas laisser FORMS faire son travail en le laissant lui même fetcher les données de la bd, tu n'auras pas à faire toute cette gestion toi même!


Si tu y tiens absolument, tu peux toujours jetter un coup d'oeil à SET_RECORD_PROPERTY afin d'en changer le statut au besoin, pour dire à forms de ne pas faire/ou de faire telle ou telle action sur un clic sur la disquette.

Dans le pire des cas, les triggers on-insert et on-update peuvent p-e aussi t'aider. Tu décides ainsi ce que tu insères et updates... Mais à déconseiller dans ton cas, tu aurais beaucoup plus de code à écrire.

Morale de l'histoire, 2 choses :
1. Laisser Forms faire son travail et ne pas intervenir pour fetcher des données.
2. Expliquer plus clairement les problèmes afin qu'on ait pas à supposer.

Bonne journée
bpprive est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2006, 00h37   #3
Nouveau Membre du Club
 
Inscription : mars 2006
Messages : 90
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 90
Points : 34
Points : 34
Envoyer un message via MSN à imedg
salut
peux tu me donner le script avec lequel tu veux modifier la date
imedg 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 04h37.


 
 
 
 
Partenaires

Hébergement Web