Objetos - Obtener objetos asociados

Creado por David Miralpeix, Modificado el Fri, 16 Feb 2024 a las 12:28 PM por David Miralpeix

Obtiene la colección de objetos asociados al objeto actual.
Los objetos se asocian mediante un registro en la tabla Objetos_Objetos. Dicha tabla tiene la estructura de Padre - Hijos.
Los objetos se asocian entre sí, mediante la clave del padre, siempre y cuando la clave del padre esté presente en la vista de la colección del hijo, y los campos se llamen igual. De lo contrario se debe definir una vista para el hijo que renombre el campo con el nombre del campo clave del padre.

lObjeto.Objetos("NombreColeccionHijaAsociada")



Código VB6:

'mostrar la colección de pedidos asociada a un cliente
Set lObj = gcn.obj.dameObjeto ("Clientes", "Where IdCliente='0'")
set lColAsoc = lObj.Objetos("Pedidos")
lcolAsoc.show

'Crear un pedido de cliente desde su colección asociada, añadirle una línea y mostrar el pedido
sub CrearPedido
        Set lObj = gcn.obj.dameObjeto ("Clientes", "Where IdCliente='123'")
           if lObj is nothing then
               msgbox "El cliente no existe"
           exit sub
           end if
        set lPed = lObj.Objetos("Pedidos").add
        lPed.update
        set lLinea = lped.objetos ("Pedido_Lineas").add
                lLinea.propiedades("IdArticulo")='0'
                lLinea.propiedades("cantidad") = 10
                lLinea.Update
                lPed.show
end sub


Código C#:

using AhoraCore;
using AhoraOCX;
using AhoraSistema;

namespace AhoraScriptsVacia
{
    public class Script_0 : AhoraOCX.AhoraBaseScript
    {
        public void Main()
        {
            // Mostrar Objeto
            IItem lObj = (IItem)gCn.Obj.DameObjeto("Clientes", "Where IdCliente='0'");
			lObj.Show();

            // Mostrar Colección
            IItemColeccion lColAsoc = (IItemColeccion)lObj.Objetos["Pedidos"];
            lColAsoc.Show();

            // Comprobación si existe objeto
            IObjeto lObj2 = (IObjeto)gCn.Obj.DameObjeto("Clientes", "Where IdCliente='123'");
            if (lObj2 != null)
            {
                AhoraCore.VBA.Interaction.MsgBox("El cliente no existe");
                return;
            }
            
            // Creación de pedido y línea de pedido.
            IItem lPed = (IItem)lObj.Objetos["Pedidos"].Add();
            lPed["IdCliente"] = "0"; 
            lPed.Update();
            IItem lLinea = (IItem)lPed.Objetos["Pedido_Lineas"].Add();
            lLinea["IdArticulo"] = '0';
            lLinea["cantidad"] = 10;
            lLinea.Update();
            lPed.Show();

        }
    }
}



¿Le ha sido útil este artículo?

¡Qué bien!

Gracias por sus comentarios

¡Sentimos mucho no haber sido de ayuda!

Gracias por sus comentarios

¡Háganos saber cómo podemos mejorar este artículo!

Seleccione al menos una de las razones
Se requiere la verificación del CAPTCHA.

Sus comentarios se han enviado

Agradecemos su esfuerzo e intentaremos corregir el artículo