APEX - Est-ce qu'un formulaire tabulaires avec sa fonctionnalité MRU ont des fonctionnalités de filtrage comme un rapport interactif?

StackOverflow https://stackoverflow.com/questions/8316420

Question

Ce que je vraiment besoin est une forme tabulaires qui me permet de mettre à jour plusieurs lignes à la fois tout en étant filtrables comme un rapport interactif. Toute chance cela est encore possible à distance?

Je voudrais aussi pirater les cases de ligne sur une forme de tableau qui apparaissent lorsque la fonctionnalité « suppression » est activée et les utiliser pour sélectionner les lignes se voit attribuer un à un groupe basé sur un attribut commun. (À savoir ma table contient des pièces dans mon inventaire et je dois être en mesure de pièces Assigner avec des attributs communs à un groupe de traitement)

Peut-être un groupe par fonction qui crée une nouvelle ligne dans une table « Groupe » avec le groupe comme le PK et les parties assignées à ce groupe comme une liste ou quelque chose ...?

Pensées? Je suis un peu à perte ...

Était-ce utile?

La solution

Il est vraiment pas difficile :) Vous pouvez facilement transformer un IR en une forme pseudo-tableau. Et même si il y a toujours des solutions plus élégantes et élégantes, les impliquent généralement beaucoup de javascript et / ou plug-ins. Ils sont gentils, mais pas toujours ce que vous voulez ou besoin bien sûr.

Alors, comment manipuler votre sortie? Utilisez le APEX_ITEM api !

Exemple rapide. J'ai un ir construit sur emp. J'ai ajouté une case à cocher et zone de texte. exemple ir

select empno, ename, deptno, 
       apex_item.checkbox(1, empno) empno_selected, 
       apex_item.text(2, ename, 10, 10) ename_edit
from emp

Ne pas oublier: dans la colonne des attributs, ensemble Display text as à Standard Report Column. Si vous ne le faites pas, la sortie sera en texte brut. Depuis apex_item génère du code html, vous ne voulez pas que le texte brut bien sûr :) attributs de colonne ir

Maintenant, pour être en mesure d'effectuer DML en fonction des actions que vous faites dans les champs générés, vous aurez besoin d'un processus. Permettez-moi de commencer en signalant cependant que les éléments générés sont stockés dans des variables d'application, à savoir dans des tableaux APEX_APPLICATION. Prenez note du comportement des cases à cocher: Seules les cases cochées auront leur valeur stockée dans le tableau

À titre d'exemple, je l'ai fait ce petit On Submit process (en ajoutant également un bouton de SUBMIT sur le formulaire pour effectuer réellement la soumettre ...)

for i in 1..apex_application.g_f01.count
loop
insert into empselected(empno, selectiondate, ename_changed)
values(apex_application.g_f01(i), sysdate, apex_application.g_f02(i));
end loop;

Cette boucle de volonté sur les enregistrements avec les cases cochées, et les insérer dans une table. Par exemple, je coché la case avec le roi et édité le champ de texte. Voir fiche n ° 2 (figure 1 est d'une action précédente;)) exemple modifier ir sortie modifier

Il est pas tout le chemin encore là cependant. Vous manquez toujours la fonctionnalité d'une forme de tableau et ses processus, et des choses comme le verrouillage optimiste. Si vous voulez rester avec des formes tabulaires, vous pouvez aussi, par exemple, consultez ce lien . Il y a également eu quelques questions ici sur la rédaction de vos propres processus de MRU etc, comme celui-ci;)

Autres conseils

Il est possisble, en utilisant la même forme de tableau.

  1. Créer un élément (élément de texte) dans la région sous forme de tableau.
  2. Créer un bouton soumettre (Créer un bouton affiché parmi les éléments de cette région)
  3. Modifier la clause where de la source de la région de forme tabulaire

Par exemple, vous devez effectuer une recherche par nom du client:

WHERE lower(CUSTOMER_NAME) LIKE '%'||lower(nvl(:PXX_SEARCH,CUSOTOMER_NAME))||'%'

Si vous devez rechercher d'autres champs seulement ajouter une autre condition à la clause where

WHERE (
     lower(CUSTOMER_NAME) LIKE '%'||lower(nvl(:PXX_SEARCH,CUSOTOMER_NAME))||'%'
     or lower(CUSTOMER_address) LIKE '%'||lower(nvl(:PXX_SEARCH,CUSOTOMER_NAME))||'%'
)

Simple et utiliser la même forme de tableau.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top