Bonjour à tous.
Après avoir posté ce message dans la rubrique Forms, on m'a indiqué qu'il valait mieux le poster ici.
Précisions :
eBS 11.5.9
Forms 6i
Merci d'avance pour votre aide.
Bonjour à tous.
Après avoir posté ce message dans la rubrique Forms, on m'a indiqué qu'il valait mieux le poster ici.
Précisions :
eBS 11.5.9
Forms 6i
Merci d'avance pour votre aide.
salut,
il faut que tu mets en place dans ta forms spécifique, la gestion des "dossiers".
A la suite de quoi le menu devrait être "degriser" et utilisable.
Il faut vraiment en avoir l'utilité dans ta forms
tiens je te donne ma procédure
La mise en place des dossiers dans une form doit se faire en 7 étapes (en principe)
1. Il faut attacher la bibliothèque APPFLDR
2. Faire Référence au groupe d’objet STANDARD_FOLDER qui se trouve dans la form APPSTAND
3. Créer un paramètre <BLOCKNAME>_RECORD_COUNT de type number ayant 2 comme valeur par defaut(BLOCKNAME est le nom du block basé sur lequel la form s’appuiera).
4. Créer 2 Canevas, un intégral nommé PROJECT_FOLDER contenant un canevas empilé PROJECT_STACK.
5. Créer une fenêtre nommée PROJECT_FOLDER dont le canevas principal est PROJECT_FOLDER (normal quoi)
6. Créer un bloc basé (BLOCKNAME). Toutes les colonnes doivent apparaitre dans le canevas PROJECT_STACK.
a. Puis il faut créer ces 3 triggers :
i. WHEN-NEW-BLOCK-INSTANCE
App_folder.event(‘WHEN-NEW-BLOCK-INSTANCE’)
ii. KEY-PREV-ITEM
b. Il faut ajouter 2 autres éléments : SWITCHER et CURRENT_RECORD_INDICATOR (cf. block) sinon on risque d’avoir des problèmes lors des redimensionnement des fenêtres.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 If ( :paramètre.<blockname>_record_count=1 then Prevouis_item ; Else Apps_folder.event(KEY-PREV-ITEM) ; End if ; iii. KEY-NEXT-ITEM If ( :paramètre.<blockname>_record_count=1 then Prevouis_item ; Else Apps_folder.event(KEY-NEXT-ITEM) ; End if ;
7. Créer un nouveau block PROMPT qui contient tous les titres sous forme de bouton des colonnes du block basé. Ils doivent se trouver dans PROJECT_STACK. Il faut créer également
a. Un bouton FOLDER_OPEN canvas : PROJECT_FOLDER
b. Un text item FOLDER_DUMMY canvas TOOLBAR
c. Un display item FOLDER_TITLE canvas PROJECT_STACK
d. Un bouton ORDER_BY1 canvas PROJECT_STACK
e. Un bouton ORDER_BY2 canvas PROJECT_STACK
f. Un bouton ORDER_BY3 canvas PROJECT_STACK
Il faut ajouter 2 triggers au niveau de la formcontenu de WHEN-NEW-FORM-INSTANCE :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 FOLDER_ACTION(appp_folder.event( :global.folder_action)) et WHEN-NEW-FORM-INSTANCE(utilisation de app_folder.define_folder_block)
-- Mise en place de la gestion des dossiers
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 app_standard.event ('WHEN-NEW-FORM-INSTANCE'); gl_standard.event ('WHEN-NEW-FORM-INSTANCE'); -- remplissage du bloc world "notament"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 app_folder.define_folder_block(object_name =>'Ecran toto' -- 'Object Name' ,folder_block_name =>'XXTOTO' -- 'folder_block' ,prompt_block_name =>'PROMPT' -- 'prompt_block' ,folder_canvas_name=>'PROJECT_STACK' -- 'stacked_canvas' ,folder_window_name=>'PROJECT_FOLDER' -- 'window', ,disabled_functions=> NULL -- 'disabled functions' ,tab_canvas_name => NULL ,fixed_canvas_name => NULL ); -- app_folder.event ('INSTANTIATE'); --app_folder.event('VERIFY'); --pour connaitre toutes les variables utiles pour Tester la form --app_folder.event('OUTPUT-VARIABLES'); --pour connaitre ts les variables utile pour Tester la form
Voilou
ouaou... pas simple...
va falloir réévaluer le chiffrage !!!
En tout cas merci beaucoup !
Je pourrais pas tester aujourd'hui, surement la semaine prochaine.
Re...
Ayé je m'y remet cette semaine...
Donc, petites questions (désolé si cela te parait simpliste, mais je suis plutôt débutant sur FORMS...)
comment tu attaches une bibliothèque ?
J'ai pas de form APPSTAND... et faire référence, cela veut dire quoi exactement ?
De quelles colonnes parles-tu ? celles de mon écran ?
Je les ajoute dans quelle form ?
Merci d'avance pour tes précisions...
alors tu rapatries la pll APPFLDR.pll qui se trouve dans $AU_TOP/resource/
dans ton répertoire local dans lequel tu développes ta forms.
sachant qu'il vaut mieux mettre tous tes composants (forms,pll..) dans le même répertoire.
au moment de compilé ta forms tu la recopiera avant dans ton $AU_TOP/resource, c'est plus simple comme ça
dans ta forms tu vas dans l'arborescence "bibliothèques attachées" (outils 6i),
tu cliques sur le "petit plus", un fenetre "attachement de bibliothèques" apparait tu recherches la pll que tu as ramené sur ton poste et surtout quand il te demande de supprimer le chemin tu répond oui.
pareil que la pll c'est une "forms" standard d'EBS elle doit se trouver dans $AU_TOP/forms/F (ou US)
tu la recopie également dans ton répertoire local, puis dans ta forms tu ouvres également la forms APPSTAND.
avec ta souris tu fait glisser le groupe d'objets "standard_folder" de la forms APPSTAND dans "groupes d'objets" de ta propre forms.
il doit te demander "copie ou reference", tu fais références comme c'est un composant standard EBS si il évolue le tient devrait évoluer en même temps.
et quand il demande "supprimer ou conserver le chemin" tu cliques bien sur supprimer.
alors, un des grands principes de la notion des dossiers dans EBS, s'est que l'on travaille sur 1 bloc basé.
donc oui il s'agit des colonnes basées de ton bloc qui seront TOUTES visibles dans le canevas project_stack
bon j'espère que ça t'auras un peu aidé, je peux t'envoyer une forms ou je fais ça si tu veux
Merci beaucoup pour ces précisions.
Effectivement, je veux bien que tu me transmettes ton forms où tu as fait ça, ça m'aidera beaucoup je pense.
tu peux l'envoyer ici : romain_rg@hotmail.com
Partager