Añadir ficha a proceso que abre formulario por nombre


([N1] Spicer) #1

Estimados,

Tengo un proceso vJavaScript que abre un formulario a partir del nombre que le doy (adjunto más abajo).
Este proceso tiene como entrada, una ficha de la tabla asociada al form que estoy lanzando.
Mi problema es que no logro que esto funcione para visualizar una ficha ya creada.

Lo que hago es:

  • Crear manejador de objeto (PRC_CRM_FICHA_GEN_ABRIR)
  • Leer ficha seleccionada de la grid
  • Añadir ficha al objeto (PRC_CRM_FICHA_GEN_ABRIR)
  • Disparar objeto (PRC_CRM_FICHA_GEN_ABRIR)

Esto hace que el form se despliegue, pero sin datos.
Muy agradecido, como siempre…!


PRC_CRM_FICHA_GEN_ABRIR

var NombreFormulario = theRoot.varToString(“VARI_NOMBRE_FORM”);

var formulario = new VDataViewDialog(theRoot);
formulario.setDataView(VObjectInfo.TypeForm, NombreFormulario);
formulario.setVar(“FRM_ES_MODAL”, 1);
formulario.exec();

theRoot.setVar (“VARO_ID_PERS_CREADA”, formulario.varToString(“FRM_ID_PERSONA_CREADA_O_SELECCIONADA”));


([N1] wikan) #2

En ningún momento le estás diciendo al formulario que ficha tiene que abrir. Si no recuerdo mal es setRegister(<variable con la ficha>), verificalo en la documentación.


([N1] Spicer) #3

Estimado Wikan,

Muchas gracias como siempre. Efectivamente, esa era la instrucción, pero había que leer la lista primero.
Quedo así:


var NombreFormulario = theRoot.varToString(“VARI_NOMBRE_FORM”);
var IdFichaLectura = theRoot.varToString(“VARI_ID_FICHA_LEER”);

var formulario = new VDataViewDialog(theRoot);
formulario.setDataView(VObjectInfo.TypeForm, NombreFormulario);
formulario.setVar(“FRM_ES_MODAL”, 1);

var Registros = new VRegisterList(theRoot);
var Registro = new VRegister(theRoot);
Registros.setTable(“46v3zxk3.vcd/PERSONAS”);

// Si no hay una ficha definida, abro el form y grabo el Id de la persona creada…
if (IdFichaLectura==0) {
formulario.exec();
theRoot.setVar (“VARO_ID_PERS_CREADA”, formulario.varToString(“FRM_ID_PERSONA_CREADA_O_SELECCIONADA”));
}
// En caso contrario leo el registro pertinente y se lo paso al formulario
else {

Registros.load("ID", [IdFichaLectura]);

// Leo la primera y unica ficha
Registro = Registros.readAt(0);
formulario.setRegister(Registro);
formulario.exec();
theRoot.setVar ("VARO_ID_PERS_CREADA", "VARI_ID_FICHA_LEER");

}