Apex: ¿puede una forma tabular con su funcionalidad MRU tener funcionalidad de filtrado como un informe interactivo?

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

Pregunta

Lo que realmente necesito es una forma tabular que me permite actualizar múltiples filas a la vez mientras soy filtrable como un informe interactivo. ¿Alguna posibilidad de que esto sea remotamente posible?

También me gustaría secuestrar las casillas de verificación de fila en una forma tabular que aparece cuando la funcionalidad 'Eliminar' se activa y usarlas para seleccionar qué filas se asignan a un grupo basado en un atributo común. (es decir, mi tabla contiene piezas en mi inventario y necesito poder asignar piezas con atributos comunes a un grupo para su procesamiento)

¿Quizás una función de grupo que crea una nueva fila en una tabla de 'grupo' con el grupo como PK y las partes asignadas a ese grupo como una lista o algo así ...?

¿Pensamientos? Estoy un poco perdido ...

¿Fue útil?

Solución

Realmente no es tan difícil :) Puedes transformar fácilmente un IR en una forma pseudo-tabular. Y a pesar de que siempre hay soluciones más elegantes y elegantes, las generalmente involucran muchos JavaScript y/o complementos. Son agradables, pero no siempre lo que quieres o necesitas, por supuesto.

Entonces, ¿cómo manipular su salida? Utilizar el API APEX_ITEM!

Ejemplo rápido. Tengo un IR construido en EMP. Agregué una casilla de verificación y un cuadro de texto.example ir

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

No lo olvides: en los atributos de la columna, establezca Display text as a Standard Report Column. Si no lo hace, la salida estará en texto plano. Ya que apex_item genera código HTML, no quieres el texto sin formato, por supuesto :)ir column attributes

Ahora, para poder realizar DML en función de las acciones que realiza en los campos generados, necesitará un proceso. Permítanme comenzar señalando que los elementos generados se almacenan en variables de aplicación, a saber en matrices en apex_application. Tome nota del comportamiento de las casillas de verificación: ¡solo las casillas marcadas tendrán su valor almacenado en la matriz!

Como ejemplo, he hecho esto pequeño On Submit process (también agregando un SUBMIT botón en el formulario para realizar realmente el envío ...)

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;

Esto pasará por encima de los registros con las casillas de verificación marcadas e insertará en alguna tabla. Por ejemplo, marcé la casilla con King y edité el campo de texto. Ver Registro NR 2 (1 es de una acción anterior;)))edit example ir output of edit

Sin embargo, aún no está todo el camino. Todavía se pierde la funcionalidad de una forma tabular y sus procesos, y cosas como el bloqueo optimista. Si desea quedarse con formularios tabulares, también puede, por ejemplo, Mira este enlace. También ha habido algunas preguntas aquí sobre cómo escribir sus propios procesos de MRU, etc. como éste ;)

Otros consejos

Es poseído, usando la misma forma tabular.

  1. Cree un elemento (elemento de texto) en la región de formulario tabular.
  2. Cree un botón Enviar (cree un botón que se muestra entre los elementos de esta región)
  3. Modificar la cláusula WHERE en la fuente de región de formulario tabular

Por ejemplo, necesita búsqueda por nombre del cliente:

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

Si necesita buscar otro campo, solo agregue otra condición a la cláusula WHERE

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

Simple y usa la misma forma tabular.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top