Cuando se requiere abrir nuevas ventanas con un reporte utilizando el User Control InNewWindow nos encontramos con el problema de querer utilizarlo dinámicamente, es decir de acuerdo a una selección previa sin saber el número de elementos que tenga la selección.
Por ejemplo, necesitamos sacar el estado de cuenta de varios clientes, podrían ser 2,3,4,etc. Entonces tenemos que &ColeccionClientes es la colección de clientes previa que se realizó.
&i = 1
Do While &i <= &ColeccionClientes.Count
&ParametroCliente = &ColeccionClientes.Item(&i).Cliente
/**********************************************************************/
&vImpresionesItem = New InNewWindowTargets.InNewWindowTargetsItem()
&vImpresionesItem.Target = ReporteEstadoCuenta.Link(&ParametroCliente)
&vImpresiones.Add(&vImpresionesItem)
/**********************************************************************/
&i += 1
EndDo
En donde bastaría con definir las variables, con los tipos de datos que se agregaron con el UserControl:
&vImpresionesItem : De tipo "InNewWindowTargets.InNewWindowTargetsItem"
&vImpresiones : De tipo "InNewWindowTargets"
Y en las Propiedades del User Control, agregar en "Múltiple Windows Open":
Targets: &vImpresiones
Listo basta cuando se ejecute se abrirán tantos estados de cuenta de cada cliente que se hizo la selección con un sólo InNewWindow.