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