Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

398
Views
Oracle APEX: cómo acceder al valor LOV emergente de Interactive Grid usando JavaScript (¡algo de ayuda de JS, por favor!)

Versión de Oracle APEX: 21.1.0

Tengo varias cuadrículas interactivas en una página de APEX (una para cada día de la semana) y quiero guardar los datos de cada una en una colección de APEX. La cuadrícula interactiva IG_MON contiene 3 columnas, sus ID estáticos son:

COL_MON_PROJECT

COL_MON_HOURS

COL_MON_DESCRIPCIÓN

Tengo una acción dinámica (para cada día) que ejecuta JavaScript que guarda los datos de IG en los siguientes elementos de la página:

P704_MON_PROJECT

P704_MON_HOURS

P704_MON_DESCRIPCIÓN

(Luego, después de que se haya ejecutado Javascript, llamo a un proceso de devolución de llamada de Ajax para agregar un miembro a mi colección APEX).

Está funcionando con éxito para las columnas COL_MON_HOURS y COL_MON_DESCRIPTION ya que los Tipos de columna son "Campo de texto".

Para la columna COL_MON_PROJECT , configuré esto como un LOV emergente que muestra "Nombre del proyecto" para mostrar y una ID para el valor devuelto.

Cuando uso mi código a continuación para guardar el valor LOV emergente COL_MON_PROJECT, en el estado de sesión puedo ver que P704_MON_PROJECT se muestra como [objeto Objeto].

He probado algunas opciones diferentes, pero no soy lo suficientemente competente en JavaScript para hacerlo bien.

 var col_project; var col_hours; var col_description; var model = apex.region("IG_MON").widget().interactiveGrid("getViews", "grid").model; col_project = model.getFieldKey("COL_MON_PROJECT"); col_hours = model.getFieldKey("COL_MON_HOURS"); col_description = model.getFieldKey("COL_MON_DESCRIPTION"); model.forEach(function (igrow) { apex.item("P704_MON_PROJECT").setValue(igrow[col_project]); apex.item("P704_MON_HOURS").setValue(igrow[col_hours]); apex.item("P704_MON_DESCRIPTION").setValue(igrow[col_description]); apex.server.process('POPULATE_COLLECTION_MON', { pageItems: '#P704_MON_DATE,#P704_MON_PROJECT,#P704_MON_HOURS,#P704_MON_DESCRIPTION' }, { dataType: 'text', success: function (data) { if (data != 'SUCCESS'); } }); });
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Descubrí esto con algunos mensajes de console.log y vi que Popup LOV se estaba resolviendo a:

 apex.item("P704_MON_PROJECT").setValue(igrow[col_project]) = {v: "229592305603457980799039089331487048885", d: "My Project Name"}

Solo necesitaba cambiar esto a:

 apex.item("P704_MON_PROJECT").setValue(igrow[col_project].v) = 229592305603457980799039089331487048885
about 4 years ago · Juan Pablo Isaza Report

0

Un DA para obtener valores de un IG en js es complicado, no estoy seguro de cómo hacer que funcione su código. Pero para diagnosticar el código js, debe ejecutarlo manualmente en la consola del navegador y ver qué hace paso a paso, y allí también puede explorar qué es realmente el [objeto Objeto].

Pero para un enfoque diferente, si en cada columna crea un DA separado, puede abordar el valor de la columna con: COL_MON_PROJECT (o cualquier otra cosa).

Entonces, la tabla del lunes tendría tres DA, uno para el proyecto, uno para las horas y otro para la descripción. Cada uno probablemente tenga una acción Establecer valor, estableciendo el valor de P704_MON_... con MON_...

Además, por lo que entiendo de su código, parece estar usando cuadrículas interactivas de una sola fila, que llenan los elementos de la página. ¿Por qué no tener solo un IG para todos los días y luego, en el procesamiento del IG, llena la colección (si la colección aún es necesaria)? O si no desea un IG para todos los días, ¿por qué no simplemente completar los elementos de la página para cada día individualmente?

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!