|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : août 2008 Messages : 14 ![]() |
Salut,
Je suis en train de developper une application sous oracle forms 10g. dans un premier temps, je vais vous expliquer la demarche logique que doit suivre cette application. Alors elle doit: - d'abord afficher à l'utilisateur un ensemble d'enregistrements basés sur des tables. - l'utilisateur doit à partir de l'ensemble 'des lignes affichées' choisir plusieurs lignes, qui vont etre employées dans la suite du traitement et enregistrer par un insert dans une autre table indépendante. J'ai pensé à deux solutions: - soit je crée un block de donnée et je l'affiche sous forme de tableau, mais je me pose toujours la question; comment l'utilisateur va pouvoir choisir plusieurs lignes ? j'ai pensé à un checkbox devant chaque ligne d'enregistrement pour choisir ou non la ligne mais est ce possible. - soit grace à une LOV (ce qui est pratique puisque j'ai plusieurs lignes d'enregistrements à afficher et la fct de recherche associé est bien pratique ), mais le problème est que dans la LOV, on choisit une seul ligne pour la retourner aussi dans une seul ligne d'items recepteurs ou dans une list item. Je ne sais pas s'il y a la possibilité de, à chaque la LOV appelée, retourner la ligne selectionnée dans une ligne autre que celle déja rempli la première fois et répéter cela tant que l'utilisateur veut choisir encore d'autres lignes différentes de celle retournées à partir de la LOV. Merci. |
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 459 ![]() |
Option 1 : Une checkbox dans ton block.
__________________
More Code : More Bugs. Less Code : Less Bugs |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : août 2008 Messages : 14 ![]() |
Bonjour,
j'ai essayé mais j'ai un datablock multiligne donc quand j'ajoute le checkbox (multiligne et non basé) et execute et meme si le checkbox lui meme est multiligne, une seul checkbox est activé c'est le premièr, les autres sont grisés . moi je veux qu'elle soient toutes activés pour que l'utilisateur ait la possiblité de choisir plusieurs fois. Et si cela s'avère possible, comment savoir pour chaque checkbox ligne d'enregistrement qui lui correspond. merci. |
|
|
00
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 459 ![]() |
Ta checkbox est dans un block, c'est comme un champ normal (sauf qu'il n'est pas basé).
Pour savoir si une ligne est cochée, il faut reparcourir le block du début à la fin et de tester la checkbox (soit par la valeur soit par la fonction checkbox_checked)
__________________
More Code : More Bugs. Less Code : Less Bugs |
|
|
00
|
|
|
#5 | |
|
Invité de passage
![]() Inscription : août 2008 Messages : 14 ![]() |
Citation:
Comment savoir le rang de la ligne des enregistrements (sous forme d'un datablock tableau d'item) et de la checkbox correspondante, si vous pouvez me donner un exemple du code . |
|
|
|
00
|
|
|
#6 | ||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 459 ![]() |
Un block basé B1 qui contient
1 item basé IDCLIENT 1 checkbox non basée (CK_SEL) L'utilisateur affiche les données par un query et sélectionne ensuite les lignes par la checkbox. Un bouton permet d'avoir la liste des idclient sélectionnés : Code :
__________________
More Code : More Bugs. Less Code : Less Bugs |
||
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : août 2008 Messages : 14 ![]() |
Je l'ai essayé deux fois et quand je clique sur le boutton pour l'affichage de la liste ça donne le message frm-40102
|
|
|
00
|
|
|
#8 | |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 459 ![]() |
Citation:
__________________
More Code : More Bugs. Less Code : Less Bugs |
|
|
|
00
|
|
|
#9 | |
|
Invité de passage
![]() Inscription : août 2008 Messages : 14 ![]() |
Oui, quand je veux remplir le bloc j'execute à partir d'un boutton une procédure du genre:
Citation:
|
|
|
|
00
|
|
|
#10 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 459 ![]() |
Tu peux pas baser le block ?
Sinon, pour remplir un block non basé, evite le next_record, fait plutôt un create record au début. Tu n'as qu'à tester si c'est ta première ligne de curseur et dans ce cas, pas de create record.
__________________
More Code : More Bugs. Less Code : Less Bugs |
|
|
00
|
|
|
#11 | ||
|
Invité de passage
![]() Inscription : août 2008 Messages : 14 ![]() |
Citation:
d'abord j'ai besoin d'une condition where lié à une valeur saisie dans un item text (j'ai essayé de mettre la condition dans la propriété: clause where dans le bloc mais l'interrogation n'a rien retournée). Ensuite j'ai besoin devant chaque ligne d'enregistrements du bloc multiligne d'un checkbox pour valider. Alors soit je crée le checkbox et je l'associe au meme bloc et dans ce cas aussi l'interrogation n'a rien retournée et le checkbox correspondant au premier enregistrement est activé alors que les suivant sont tous grisés ou non activés, soit je le crée et associe à un autre bloc 'biensur non basé' et là l'interrogation retourne bien les enregistrements mais le check box reste le meme. Citation:
voilà, je voulais vous résumer la situation pour que vous y voyez plus clair. |
||
|
|
00
|
|
|
#12 |
|
Invité de passage
![]() Inscription : août 2008 Messages : 14 ![]() |
J'ai réessayé l'exemple que vous m'aviez donné pour l'affichage des messages et cela a marché (après des modifications dans le block de données).
Mais j'ai toujours le problème que je veux insérer les lignes choisis ou cochées par l'ultilisateur dans une table historique à la fin de l'application. Le problème est quand je parcoure le block et je fais la condition sur le checkbox je ne peux pas insérer dans une autre table que celle depuis laquelle j'ai récupéré les données du block. merci bien. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com