This commit is contained in:
Luiz Silva 2024-10-02 10:12:20 -03:00
parent 336926a7ef
commit db1cb22ee9
8 changed files with 622 additions and 2 deletions

View file

@ -19,6 +19,15 @@ export const z_contagem_em_barra_vertical = z.object({
descricao_pelo_usuario: z.string().optional(),
})
export const z_soma_em_barra_vertical = z.object({
tabela: z.string(),
colanuEixoX: z.string(),
colunaSoma: z.string(),
colunaAgrupamento: z.string().array().optional(),
filtros: z_filtro.array().optional(),
descricao_pelo_usuario: z.string().optional(),
})
export const z_contagem_em_pizza = z.object({
tabela: z.string(),
classes: z.string(),
@ -39,6 +48,7 @@ export const visoes = {
z_contagem_em_barra_vertical,
z_contagem_em_pizza,
z_tabela,
z_soma_em_barra_vertical,
}
/** Cria a estrutura de campos para insersão de dados */
@ -112,6 +122,62 @@ export const extruturas_de_campos: {
filtros: { rotulo: "Filtros", tipo_campo: "lista_filtros", order: 5 },
},
},
z_soma_em_barra_vertical: {
visao: "z_soma_em_barra_vertical",
rotulo: "Soma em Barra Vertical",
tabela: ({ tabela }) => tabela,
descricao: ({
tabela,
descricao_pelo_usuario,
colanuEixoX,
filtros,
colunaAgrupamento,
}) => {
if (String(descricao_pelo_usuario || "").trim())
return String(descricao_pelo_usuario || "").trim()
return `Contagem de ${tabela} por ${colanuEixoX}${
!filtros?.length
? ""
: `, quando ${filtros
.map(
({ coluna, operador, valor }) =>
`${coluna} ${operador} ${valor}`,
)
.join(", ")}`
}${
!colunaAgrupamento?.length
? ""
: `, agrupado por ${colunaAgrupamento.join(", ")}`
}.`
},
campos: {
tabela: { rotulo: "Tabela", tipo_campo: "tabela", order: 1 },
colunaSoma: {
rotulo: "Coluna do Eixo X",
tipo_campo: "coluna",
order: 2,
},
colanuEixoX: {
rotulo: "Coluna do Eixo X",
tipo_campo: "coluna",
order: 3,
},
colunaAgrupamento: {
rotulo: "Colunas de Agrupamento",
tipo_campo: "lista_colunas",
order: 4,
},
descricao_pelo_usuario: {
rotulo: "Descrição (opcional)",
tipo_campo: "texto",
order: 5,
},
filtros: { rotulo: "Filtros", tipo_campo: "lista_filtros", order: 5 },
},
},
z_contagem_em_pizza: {
visao: "z_contagem_em_pizza",
rotulo: "Contagem em Pizza",