Estimado Armando,
El problema que describes ocurre porque el array aSelected del browse no se está inicializando o limpiando correctamente cuando el browse está vacío.
Causa
Cuando usas MARQSTYLE_HIGHLROWMS, el browse habilita automáticamente la multiselección. El array aSelected se inicializa como vacío en el método _InitData() 0-cite-0 , pero en ciertas condiciones puede contener datos residuales o un bookmark inválido.
Soluciones
Opción 1: Inicializar explícitamente aSelected
Después de que el browse se llene con datos, asegúrate de limpiar el array:
Opción 2: Usar el método SelectNone()
Llama a este método después de llenar el browse:
Opción 3: Validar en el footer
Modifica tu código del footer para manejar el caso cuando el browse está vacío:
Code: Select all | Expand
:bFooter := { || If( oBrw:nLen == 0, 0, LEN( oBrw:aSelected ) ) }
Opción 4: Verificar que aSelected no sea nil
También puedes agregar una validación adicional:
Code: Select all | Expand
:bFooter := { || If( oBrw:aSelected == nil, 0, LEN( oBrw:aSelected ) ) }
Recomendación
La solución más robusta sería combinar las opciones 3 y 4:
Code: Select all | Expand
:bFooter := { || If( oBrw:nLen == 0 .or. oBrw:aSelected == nil, 0, LEN( oBrw:aSelected ) ) }
Esto asegura que el footer muestre 0 cuando el browse está vacío, independientemente del estado del array aSelected.