Skip to Content

Informes

Qué es un informe de Flex, sus familias según TipoInformeE, las propiedades de diseño, orden, agrupación y filtro, sus columnas y sus preguntas.

Un informe es una consulta guardada sobre una sección: qué columnas salen, con qué condiciones, en qué orden y cómo se agrupan. Lo abre una persona desde el menú, lo muestra un panel, lo ejecuta una integración o lo consume el SDK. En la Flex API es el tipo FlexObjectTypes.Reports; sus columnas, FlexObjectTypes.ReportColumns.

Antes de empezar

  • Un informe pertenece a una sección principal activa y no cambia de sección.
  • La pantalla: FlexHub → Informes. Desde el SDK, Flex_CreateObjectAsync(FlexObjectTypes.Reports, sectionId, patch).
  • FlexHub no elimina informes, solo sus columnas.

Las familias

La columna destino guarda el enum TipoInformeE. Todo informe hecho a mano es Ordinario (12); los demás los crea el motor y no se editan.

ValorTipoInformeEQué es
12OrdinarioUn informe hecho a mano. FlexObjectLiteDTO.IsOrdinaryReport = true.
2PrincipalEl listado principal de una sección.
3ComboDesplegableAutomaticoEl desplegable de un campo de relación.
1AutoWidget01El widget de un panel.
6ValoresMemorizadosLos valores memorizados de un campo.
7, 8Destinador_Ver, Destinador_AgregarLos listados de un destinador.
14CarrilProcesoLos carriles de una vista de proceso.

El servidor envía el tipo resuelto en IsOrdinaryReport y su etiqueta en KindLabel. La categoría Funcionalidad con subcategoría API convierte un informe en informe API.

Identidad

Editar informe Visitas pendientes de facturar, pestaña General: el nombre, el nombre interno, la sección y Datos del informe con categoría, subcategoría y descripción
ColumnaRótulo en FlexHubQué hace
nombreNombreMínimo 3 caracteres. Si dos informes de la misma sección y categoría coinciden, el servidor cambia el nombre y devuelve el que puso. De aquí sale la palabra clave.
categoria, subcategoriaCategoría, SubcategoríaDónde se archiva y desde dónde se pide en el menú. Sin categoría, ninguna pantalla lo ofrece.
descripcionDescripciónTexto libre.
comentario, iconoFlexHub no los muestra.

Diseño

En FlexHub, pestaña Presentación.

ColumnaRótulo en FlexHubValores
rppFilas por páginaCuántas filas trae el servidor de una vez. Vacío al crear, 1.000.
modorenderizadoVistaRejilla normal (0), Gráfica de tarta (1), Gráfica lineal (2), Gráfica de barras (3), Gráfica polar (4), Board (tarjetas por columnas) (5). Calendario y Gantt no se ofrecen, pero se respetan si el informe ya los tiene.
renderizadofijoNo dejar cambiar la vistaSí/No.
npcpOcultar la paginaciónSí/No.
boardcolgrupo1, boardcolgrupo2Board: columna que hace las calles, Board: columna que las subdivideColumnas del informe. Solo con Board.
graficacolgrupoGráfica: columna que agrupaColumna del informe. Solo con una gráfica.
avisomsg, avisotipoMensaje de aviso, Tipo de avisoEl texto encima del listado y InformeTipoMensajeE: Sin Aviso (0), Ocultable (1), Fijo (2).
infrelacionado, infrelacionetiquetaInforme relacionado, Rótulo del informe relacionadoEl informe que se ofrece junto al listado, y con qué texto.

Orden y agrupación

  • Orden: hasta nueve niveles, colorden1 a colorden9, con su sentido en colorden1desc a colorden9desc. Cada nivel desempata el anterior. Sin niveles, el orden no está garantizado.
  • Agrupación: hasta nueve niveles, campoagrupacion1 a campoagrupacion9, con su modo en campoagrupacionmodo1 a campoagrupacionmodo9.

En FlexHub son las cards Cómo se ordena y Cómo se agrupa. El modo de agrupación (Qué se considera lo mismo) es el enum AgrupacionesCriteriosE:

ValorMiembroQué considera lo mismo
0NoAgruparNada: el nivel no hace nada.
1IgualesValores iguales.
2, 3ParteEntera, ParteDecimalLa parte entera o la decimal de un número.
4ParEImparPares e impares.
5, 6, 7Intervalo, IntervaloInclusionSuperior, IntervaloInclusionInferiorIntervalos numéricos.
8 a 14DiaDeLaSemana, Horas, Dias, Meses, Trimestre, Bimensual, AnoTramos de una fecha.
15 a 18LetraInicial, LetraFinal, PalabraInicial, PalabraFinalTramos de un texto.
19VaciosVacíos frente a rellenos.

La lista no se filtra por el tipo de la columna: elige un modo que encaje con el dato.

Filtrado

En FlexHub, pestaña Filtro.

Pestaña Filtro del informe Visitas pendientes de facturar: un superfiltro por la fecha de la visita y dos alternativas con sus condiciones
ColumnaRótulo en FlexHubQué hace
filtro20Añadir condición, Añadir alternativaLas condiciones: un dato, una comprobación y un valor. Dentro de un bloque se cumplen todas; Añadir alternativa abre otro bloque y basta con que se cumpla uno. Sin condiciones salen todas las filas que el rol del usuario deja ver.
algoritmodefiltradoAlgoritmo de compatibilidadUn algoritmo De búsqueda decide qué filas entran. Desde FlexHub solo se quita.
filtropermisosEl filtro por permisos. FlexHub no lo muestra.

Las comprobaciones son el enum TipoFiltradoE; cuáles admite cada tipo de dato lo publica el servidor.

FamiliaMiembros de TipoFiltradoE
GeneralesIgual, Distinto, Vacios, NoVacios, En
TextoContiene, NoContiene, ContienePalabras, NoContienePalabras, EmpiezaPor, TerminaPor, NoEmpiezaPor, NoTerminaPor, CoincideRegex, NoCoincideRegex, LogitudTextoSuperiorA, LogitudTextoInferiorA
NúmeroMayorQue, MenorQue, MayorOIgualQue, MenorOIgualQue
Sí/NoSi, No, SiYNo
FechaFechaIgual, FechaDistinta, FechaMenor, FechaMayor, FechaMenorOIgual, FechaMayorOIgual, AnoIgual, AnoDistinto, FechaIntervaloPersonalizado, ReferenciaHaciaIntervaloDinamico
HoraHoraIgual, HoraDistinta, HoraMenor, HoraMayor, HoraMenorOIgual, HoraMayorOIgual
  • Una condición con lista admite hasta 20 valores: la fila sale si coincide con cualquiera.
  • El valor puede ser una constante o calcularse al abrir el informe (el usuario que lo abre, la respuesta a una pregunta). FlexHub muestra los calculados con Se calcula al abrir el informe., pero no los edita ni crea.
  • Una condición que el servidor no puede descomponer se conserva y sale marcada Solo lectura.
  • Con una fecha, FlexHub ofrece además las funciones relativas del motor (EventStartedLessThanXDaysAgo_Date y sus hermanas en minutos, horas, días, meses y años), IsYear, IsQuarter e InDynamicRange_*, que compara con un periodo de Intervalos. El valor que pide cada condición sale del parámetro de su función: un número en «en los últimos», un periodo en «está en el periodo». Al ejecutar el informe, una relativa con un número escrito se convierte en una comparación entre fechas, que puede usar el índice de la columna.

Columnas

Una columna es un dato que el informe saca por pantalla. Al crear el informe, el servidor pone la de identidad (id). Un informe no repite dato en dos columnas. Su contrato es Flex_GetEditablesAsync(FlexObjectTypes.ReportColumns):

ColumnaRótulo en FlexHubValores
datoDatoUn campo de la sección o uno al que se llega por una relación. Una relación entera guarda su identificador. No se cambia después de crear la columna.
tituloTítuloLa cabecera de la rejilla. Obligatorio.
posicionReordenarEl orden de izquierda a derecha.
visibilidadeVisibilidadInfCol_VisibilidadE.
rolcolumnaeRolInfCol_RolE.
modofechaRepresentación de la fechaModoFechaE: Defecto (0), Nombre (1), Por tiempo (2), Estándar (3), dd/mm/yyyy (4). Solo en columnas de fecha.
modoagrupacion20Representación agrupadaModoRepresentacionGrupalE, el resumen en la fila de grupo.
criterioagrupaciondinamicaAgrupación dinámicaAgrupacionesCriteriosE, la misma lista que la agrupación del informe.
colorcolColor en la gráficaEl color de la serie. Vacío, automático.
resumenpredeterminadopielistaCalculosResumenesEnInformesE, el resumen del pie: Ninguno (0), Resultados (1), Suma (2), Vacíos (3), Con dato (4), Media (5), Sí (6), No (7), Distintos (8). FlexHub no lo muestra.
ValorInfCol_VisibilidadERótuloQué hace
0SiempreVisibleVisibleSale siempre.
1SiempreOcultoOcultaNo se muestra, pero sirve para cálculos, orden, agrupación y filtros.
2AutoIndefinoSale o no según el contexto.
3OcultarEnComplementosOculta en complementosSe oculta cuando el informe va dentro de otra vista.
ValorInfCol_RolERótuloQué hace
0AutomaticoIndefinoLo decide el tipo del campo.
1NingunoNingunoSin trato especial.
2MonedaMonedaUn importe: decimales, símbolo y suma como dinero.
3PorcentajePorcentualUn tanto por ciento.
4Cantidad_DestinadorInformeCantidad Dest. InformeLa cantidad que un destinador toma del informe.
5UltimaVezVistoUltimaVezVistoLa fecha de última actividad del registro.

ModoRepresentacionGrupalE: No agrupar (0), Sumar (1), Contar (2), Valor máximo (3), Valor mínimo (4), Media (5), Primero (6), Último (14), Contar distintos (7), Media distintos (8), Sumar distintos (9). Solo con constantes: Contar vacíos (10), Contar sí (11), Contar no (12) y Contar Rellenado (13).

Quitar una columna no borra datos y se puede restaurar. Si el informe ordenaba o agrupaba por ella, esas referencias se limpian.

Añadir columnas

En FlexHub, Añadir columnas en la pestaña Columnas. Los pasos: Columnas.

  • Agregar todos pone una columna por cada campo que el informe no muestra, salvo los Botón y los que rellena el motor (ubicacion, posicion, fecha, fecham, fechasyn, usuarioid, modificado).
  • El título propuesto es la etiqueta del campo; con un campo de una relación, la etiqueta de la relación («Cliente», no «Nombre»).
  • Una columna cuyo dato es la relación entera tiene que terminar en «ID» («Cliente ID»). Si no, FlexHub avisa Falta «ID» en el título.

Por la Flex API, Flex_CreateObjectAsync(FlexObjectTypes.ReportColumns, informeId, patch): el padre es el informe. El patch lleva dato (la ruta) o campoid, y titulo. Con consolidar a 0, crea todas y llama una vez a Flex_ConsolidateAsync.

Preguntas

Una pregunta es lo que el informe pide antes de sacar filas: una fecha, un importe, un registro. Es FlexQuestionDTO, igual en informes, documentos y algoritmos; se lee con Flex_GetQuestionsAsync y se escribe con Flex_SetQuestionsAsync. En FlexHub van al final de la pestaña Filtro.

Añadir intervalo crea dos preguntas Fecha, «Desde» y «Hasta», con los nombres internos dinaup_desdef y dinaup_hastaf, que el motor reconoce. Cabe un intervalo por informe.

PropiedadRótulo en FlexHubQué es
KeywordKeywordEl nombre interno, sin v.. Se propone desde la etiqueta («Fecha de envío» da FechaDeEnvio) y no se cambia después de guardar. Vacío, lo deriva el servidor.
LabelEtiquetaLo que lee el usuario. Obligatoria.
InfoAyuda debajo del campo (opcional)Texto libre.
FormatTipo de respuestaFieldFormatE: Texto, Entero, Decimal, Sí/No, Fecha, Fecha y hora, Hora o Relación.
RelatedSectionIDSecciónSolo con Relación. Obligatoria.
DropdownReportIDInforme del desplegableSolo con Relación. Vacío, el informe principal de la sección.
DynamicDateRangePreguntar un rango, no un día sueltoSolo con fechas. El usuario elige «este mes» o «trimestre pasado».
RoleRoleFieldE. Ordinario es sin rol.
CreatedBySystemLa creó el motor, como la pregunta Trimestre de un balance trimestral.

Las preguntas se pasan por posición (p1, p2, p3). Por eso un informe publicado o en uso llega con FlexQuestionsDTO.Frozen = true: no se añaden, quitan ni mueven, ni cambian de formato, sección o rango. Se cambian la etiqueta, la ayuda, el desplegable y, por la Flex API, el rol.

Para filtrar por periodo, usa una pregunta Fecha con rango y compárala con un campo Fecha (sin hora). Un campo Fecha y hora se guarda en UTC: un registro de las 23:00 del último día cae en el día siguiente para un usuario de otra zona horaria. Por la API, cada pregunta se responde con su Keyword en el diccionario variables de POST /api/reports.

Consumir un informe

VíaCómo
PlayDesde el menú, por su categoría y subcategoría, o en un panel.
FlexHubConsultar abre Consultar informe con el informe tal como está guardado.
API RESTPOST /api/reports?id=<GUID> con variables, filtros y orden en el cuerpo. Ver Informes y documentos por la API.
SDK .NETLos métodos de informes del Cliente Dinaup y DnzReportView de DinaZen.
PG SyncUna tabla por informe API sincronizable. Ver Informes API.

En esta página