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 SubCó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);
}
}
}
}
}
}