Objetos - Recorrer los objetos de una colección

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

gcn.obj.damecoleccion("NombreCol", "Where ....").objetos

Si tenemos que recorrer los objetos de la colección, hay una peculiaridad. Y es que si la colección tiene filtros asociados (tabla objetos_Filtros), creará una subcolección dentro de la misma, dependiendo de los elementos que devuelva la query. 


VER COLECCIÓN DE ALBARANES.
En el caso de que tenga filtros, devolverá una colección de colecciones. En caso contrario, una colección de objetos.


Código VB6:

Sub Main()
frmAux.Descargar 'ATENCIÓN: DEBE ESTAR SIEMPRE QUE NO SE MUESTRE EL FORMULARIO.
Dim lcol 'As AhoraSistema.Colecciones
Dim lObj 'As AhoraSistema.IItem
Set lcol = gcn.obj.damecoleccion("Albaranes","Where 1=1")
If Not lcol Is Nothing Then
     For i = 1 To lcol.count
       If TypeName(lcol.objetos(cint(i))) = "Collection" Then
         For Each lObj2 In lObj.Objetos(cint(i))
            MsgBox lobj2.descripcion
            Next
          Else
          MsgBox lcol.item(cint(i).descripcion
       End If
     Next
End If
End Sub

Código C#:

using AhoraSistema;

namespace AhoraScriptsVacia
{
    public class Script_0 : AhoraOCX.AhoraBaseScript
    {
        public void Main()
        {
            IItemColeccion lObj;
            IColecciones lCol = gCn.Obj.DameColeccion("Albaranes", "Where 1=1");
            if (lCol != null)
            {
                for (int i = 1; i < lCol.Count(); i++)
                {
                    if (lCol.Objetos[i].GetType().ToString() == "Collection")
                    {
                        lObj = lCol.Objetos[i];
                        for (int x = 1; x < lObj.Objetos.Count; x++)
                        {
                            AhoraCore.VBA.Interaction.MsgBox(lObj.Objetos[x].Descripcion);
                        }
                    }
                    else
                    {
                        AhoraCore.VBA.Interaction.MsgBox(lCol.GetItem(i).Descripcion);
                    }
                }
            }
        }
    }
}


¿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