Realiza a busca dos dados que serão visualizados no detalhamento de um monitor, o detalhe será apresentado em uma janela contendo cabeçalho, tags e tabelas.
Parâmetros
Nome | Direção | Tipo | Descrição |
---|---|---|---|
ttVisaoMonitor | INPUT | Temp-Table | Temp-Table contendo as informações do monitor na visão em que está sendo carregado. |
iPage | INPUT | Integer | Número da página que está sendo consultada (caso a paginação seja executada) |
cSerie | INPUT | Character | Caso o detalhe seja executado através do clique em um gráfico, a categoria clicada será enviada |
cCategory | INPUT | Character | Caso o detalhe seja executado através do clique em um gráfico, a série clicada será enviada |
detailJsonOutput | OUTPUT | JsonObject | JSON contendo as definições de leiaute e dados que devem ser apresentados na tela. |
RowErrors | OUTPUT | Temp-Table | Temp-Table contendo erros ocorridos durante a execução da Api de negócio. |
O objeto detailJsonOutput (JsonObject) será construído através da classe utilitária DetailBuilder, que utiliza as seguintes Temp-Tables e propridades:
ttColunaDetalhe
Temp-table que herda a estrutura do PoTableColumn (https://po-ui.io/documentation/po-table) e possui algumas propriedades adicionais, que servirão para aplicar a técnica de detalhamento de uma coluna da tabela (opcional). Ao clicar sobre uma coluna que possui detalhamento, será aberta uma tela HTML externa, que deverá estar preparada para verificar a LocalStorage do navegador e capturar os parâmetros que serão inclusos pelo painel de Monitoramento.
Propriedade | Descrição |
---|---|
propriedade* | Nome da propriedade que será exibida nessa coluna. Ela deverá existir dentro da temp-table de dados que deve ser setada através do DetailBuilder:setItems(). |
cod-label* | Nome (cabeçalho) que será exibido na coluna. |
tipo | Tipo da coluna. Verificar documentação do PO-UI para maiores informações. Padrão será texto. |
formato | Formato (máscara) que o campo deverá assumir. |
url-detalhe | Contém o endereço de um programa HTML que será chamado ao clicar sobre essa coluna. Precisa ser utilizada em conjunto com as propriedades parameterLabels, parameterProperty e o format da coluna precisa ser cellTemplate. |
label-parametros | Array de strings que contém os nomes das propriedades que serão inclusas no LocalStorage do navegador quando o usuário clicar numa coluna que possui url-detalhe informado. |
propriedade-parametros | Array de strings que determina qual campo será usado como base para o valor do parâmetro que será incluso no LocalStorage. |
largura | Largura que a coluna irá assumir na tabela. |
*Campos obrigatórios
DetailBuilder:setColumns(INPUT TABLE ttColunaDetalhe).
Temp-table de Dados
Além da definição das colunas (descritos acima) é necessário ser setado a temp-table contendo os dados e que possua os campos (fields) correspondentes com o campo ttColunaDetalhe.propriedade informado conforme documentado acima, essa temp-table deverá ser definida pelo desenvolver do Api de negócio e pode possuir o nome da preferencia do desenvolver, abaixo segue um exemplo de definição e utilização:
DEFINE TEMP-TABLE ttDados FIELD it-codigo AS CHARACTER SERIALIZABLE-NAME 'itemCode'. CREATE ttDados. ASSIGN ttDados.it-codigo. DetailBuilder:setItems(INPUT TABLE ttDados).
ttHeadersDetalhe (Opcional)
Temp-table contendo registros que serão renderizados no cabeçalho da Modal ou na tela de detalhe genérico na forma de um quadrado que pode ser estilizado através dos campos classe-header e estilo-header. Útil para criar um “cabeçalho” para contextualizar as informações que estão contidas na tabela.
Propriedade | Descrição |
---|---|
texto-header* | Texto que será exibido dentro do quadrado. |
classe-header | Classes HTML que serão atribuídas ao elemento. Aceita as classes do PO-UI, por exemplo po-p-1, po-font-text-center etc. |
estilo-header | Estilo HTML que será atribuído ao objeto. Usar a sintaxe padrão do HTML, ex: background-color: red;text-align: center; |
*Campos obrigatórios
DetailBuilder:setColumns(INPUT TABLE ttColunaDetalhe).
ttTags (Opcional)
Temp-table contendo registros que se tornarão tags, que podem ser usadas para exibir dados adicionais. As tags ficarão abaixo dos headers, se existirem.
Propriedade | Descrição |
---|---|
texto* | Texto a ser exibido na tag. |
cor-texto | Cor da tag. Aceita os padrões do PO-UI, como “color-01”, o nome da cor (blue, red) ou o código hexadecimal. |
icone | Aceita os ícones conforme https://po-ui.io/guides/icons. |
*Campos obrigatórios
DetailBuilder:setTags(INPUT TABLE ttTags).
hasNext (Opcional)
Utilizado para paginação. Caso o valor dessa propriedade seja true, o botão Buscar mais resultados ficará habilitado, tanto na modal quanto na tela de detalhe genérico. (Valor padrão: false)
DetailBuilder:setHasNext(FALSE).
canExportXLS (Opcional)
Determina se o botão de Exportar para Planilha ficará habilitado na modal ou tela genérica de detalhe. A exportação é dinâmica e irá gerar um arquivo .csv com as definições de colunas e dados conforme o objeto retornado automaticamente.
DetailBuilder:setCanExportXLS(TRUE).
modalMaxWidth (Opcional)
Se o detalhamento for via modal, essa propriedade define o tamanho máximo que ela poderá assumir na tela
DetailBuilder:setModalMaxWidth("1440px").
Exemplo de código
Depois de criar as temp-tables necessárias na aplicação, utilizamos a classe DetailBuilder para gerar o janela de Detalhe, conforme abaixo:
O retorno da API de negócio deverá respeitar a estrutura conforme exemplo abaixo:
O resultado em tela do retorno exemplificado acima será uma janela de detalhe conforme abaixo: