Questions and discussion about using ProcessMaker: user interface, running cases & functionality
#812479
Hola a todos.

Tengo una consulta que no pude resolver hasta ahora.

Estoy mostrando los registros de mi tabla de Contactos en un grid, lo que necesito es obtener el ID de la fila en la que el usuario se posiciona.

O sea:
ID Nombre
1 Juan
2 Pablo
3 Jose

Si el usuario se posiciona en la fila de Pablo yo quisiera guardar en una variable el ID = 2.
Me pueden ayudar con este tema?

Muchas gracias a todos.
Susana
#812481
Adjunto un DynaForm que muestra como obtener el ID en cada fila y escribirlo en otro campo en el DynaForm:
(2.95 KiB) Downloaded 275 times
Nota: Es mejor usar un checkgroup o radio group para seleccionar el ID/Nombre si el usuario no esta editando los datos en la lista.

El código de JavaScript es:
Code: Select all
function setRowClick() {
  $("#clientList").find("div.pmdynaform-grid-row").click( function() {
    //set the column number in the grid of the ID field
    //where 0 is the first field, 1 is the second, etc.
    var idColumnNo = 0; 
    var clientId = $(this).find("input.pmdynaform-control-text").eq(idColumnNo).val(); 
    $("#selectedClient").setValue(clientId);
 });
}

setRowClick(); //set grid rows when the Dynaform loads

//set when a new row is added to the grid:
$("#clientList").onAddRow(function(aNewRow, oGrid, rowIndex) {
    setRowClick()
});
Donde "clientList" es el ID del grid y "selectedClient" es un campo de texto para guardar el ID del cliente seleccionado.
#812528
Amos

Muchas gracias por tu ayuda.
Pude instalar el ejemplo que me mandaste y funciona perfecto.

Mi necesidad es tal como me decís que el usuario no esta editando los datos en la lista.
Quise agregar al Grid un checkgroup o un radio group y no me deja, me dice Unsupported.

Lo único que me dejó es agregarle un checkbox.
Con eso me arreglo, pero no sé cómo sería el código como para identificar la línea seleccionada, porque entiendo que el código que me mandaste funciona guardando el id del seleccionado si está en edición, pero cómo busco el id del seleccionado mediante el checkbox.

Desde ya agradecidísima!!!
Susana
#812565
Si tienes este formulario:
GridAsCheckgroup.png
GridAsCheckgroup.png (30.06 KiB) Viewed 4224 times
Puedes usar este JavaScript:
Code: Select all
//set the column number in the grid of the ID field
//where 1 is the first field, 2 is the second, etc.
var idColNo = 2; 
//set to the column number of the checkbox field:
var checkboxColNo = 1;

$("form").setOnchange( function(fieldName, newVal, oldVal) {
  var aMatch = fieldName.match(/\[clientList\]\[(\d)\]\[selectClient\]/);

  if (newVal == '"1"' && aMatch != null && aMatch.length) {
    var rowNo = aMatch[1];
    var clientId = $("#clientList").getValue(rowNo, idColNo);
    $("#selectedClient").setValue(clientId);
    
    //deselect the rest of the checkboxes in the grid:
    var nRows = $("#clientList").getNumberRows();
    for (var i = 1; i <= nRows; i++) {
      if (i != rowNo && $("#clientList").getValue(i, checkboxColNo) == "1") {
        $("#clientList").setValue("0", i, checkboxColNo);
      }
    }        
  }
});
Aca es el formulario que puedes importar:
(3.65 KiB) Downloaded 252 times
Want to create your own meme coin?

In the world of cryptocurrencies, a unique and exc[…]

The market for cryptocurrencies is demonstrating a[…]

What's SAP FICO?

Embarking on a dissertation can be one of the most[…]

Hello. For rental housing, there are software solu[…]