VObjectInfo utilización...


([N1] Víctor Russo) #1

Hola, buenos días.

Quiero obtener el nombre de un objeto de un formulario para cargarlo en una variable local (específicamente un botón).
Pero no tengo experiencia en js. tengo entendido que hay que utilizar VObjectInfo, pero no se como implementarlo.
Si alguien puede ayudarme, lo agradezco desde ya.

Saludos,

Víctor


([N1] wikan) #2

Revisa está documentación: http://velneo.es/info_v7_717_es/velneo_vdevelop_v7/proyectos_objetos_y_editores/variable_local/variables_locales_especiales/

EVENT_SENDER_ID, te devuelve el objecto que ha lanzado el evento y te llega al manejado con el nombre del control.

Todo dependerá de lo que vayas a hacer y como lo vayas a hacer. Si no entiendes js, a lo mejor te ahorra más tiempo buscar otra forma de hacerlo con lenguaje Velneo.


([N1] Víctor Russo) #3

Gracias Wikan.

Muy útil tu aporte.

Saludos,

Víctor


([N1] Juan) #4

Un poquito el entender js es mas entender las dependencias de las clases en velneo,
Saludos


DESDE UN EVENTO DE FORMULARIO


    var oForm = theRoot.dataView(); //EL FORM ACTUAL
var oLista = new VRegisterList(theRoot);
var tabla = theRoot.dataView().objectInfo().inputTable().idRef() //DETECTAMOS LA TABLA DEL FORMULARIO
oLista.setTable(tabla);
oLista.load("ID",[theRegisterIn.fieldToInt("ID")]);
if (oLista.size() > 0)
{
    var oRegistro = oLista.readAt(0);
    oForm.setRegister(oRegistro);
}

Llenando un combo standar de velneo a partir de una tabla estatica.
para agregarle la opcion Todos


var intake = theRegisterIn.fieldToInt(“ID”)
var oCombo = theRoot.dataView().control(‘CBOPER’);
oCombo.addItem( ‘All’, -1);
theRoot.setVar(“ID_CBO_SEL”, -1);

var lst = new VRegisterList(theRoot);
lst.setTable(“emrbd/PAT_CERT”);
lst.load(“PAT_INTAKE”, [intake]);
for(var i = 0; i < lst.size(); i ++)
{
var reg
reg = lst.readAt(i);
oCombo.addItem( “CERT # “+reg.fieldToString(“PERIODS”)+” [”+get_name(“PER_CERT”,reg.fieldToString(“PER_CERT”))+"]", reg.fieldToInt(“ID”));
}
function get_name(nombre, id) //aqui name representa una tabla estatica
{
var project = theApp.projectInfo(“emrbd”);
var tablaEstatica = project.objectInfo( VObjectInfo.TypeStaticTable, nombre);
NumElementos = tablaEstatica.subObjectCount( VObjectInfo.TypeStaticTableItem )
for (var i = 0; i < NumElementos; i ++){
subElemento = tablaEstatica.subObjectInfo( VObjectInfo.TypeStaticTableItem, i );
if (subElemento.id() == id)
return subElemento.name()

}
return null

}