Histórico da Página
...
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
Bloco de código | ||
---|---|---|
| ||
DetailBuilder:setColumns(INPUT TABLE ttColunaDetalhe). |
...
ttMonitorTag (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
Bloco de código | ||
---|---|---|
| ||
DetailBuilder:setTags(INPUT TABLE ttTags). |
...
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:
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
BLOCK-LEVEL ON ERROR UNDO, THROW. USING PROGRESS.json.*. USING PROGRESS.json.ObjectModel.*. USING cdp.services.gestaoavista.*. //A classe ChartBuilder está definida aqui. {method/dbotterr.i} {cdp/services/gestaoavista/builder-utils.i} {cdp/services/gestaoavista/monitor-utils.i} FUNCTION fn-has-row-errors RETURNS LOGICAL (): FOR EACH RowErrors WHERE UPPER(RowErrors.ErrorType) = 'INTERNAL':U: DELETE RowErrors. END. RETURN CAN-FIND(FIRST RowErrors WHERE UPPER(RowErrors.ErrorSubType) = 'ERROR':U). END FUNCTION. PROCEDURE pi-get-monitor-data-detail: // O nome da procedure de detalhe sempre precisa ser esse DEFINE INPUT PARAM TABLE FOR ttVisaoMonitor. DEFINE INPUT PARAM iPage AS INTEGER NO-UNDO. DEFINE INPUT PARAM cSerie AS CHARACTER NO-UNDO. DEFINE INPUT PARAM cCategory AS CHARACTER NO-UNDO. DEFINE OUTPUT PARAM detailJsonOutput AS JsonObject NO-UNDO. DEFINE OUTPUT PARAM TABLE FOR RowErrors. DEFINE VARIABLE DetailBuilder AS DetailBuilder NO-UNDO. DetailBuilder = NEW DetailBuilder(). // Classe utilitária que ajudará na montagem do objeto de detalhe FIND FIRST ttVisaoMonitor. DetailBuilder:setHeaders(INPUT TABLE ttHeadersDetalhe). /* Opcionalmente, também podemos montar cabeçalhos (headers) para a janela de detalhe */ DetailBuilder:setTags(INPUT TABLE ttTags). /* Opcionalmente, também podemos incluir tags para adicionar informações complementares na janela de detalhe */ DetailBuilder:setColumns(INPUT TABLE ttColunaDetalhe). /* Setando as colunas que serão exibidas na janela de detalhe */ DetailBuilder:setItems(JsonAPIUtils:convertTempTableToJsonArray(TEMP-TABLE ttDados:HANDLE, FALSE)). /* Setando os dados que serão apresentados nas colunas definidas na tabela do detalhe */ /* Dica: O método convertTempTableToJsonArray transforma nossa temp-table em um Array e é necessário pois o DetailBuilder é genérico para qualquer temp-table, por essa razão ele deve receber os dados em formato de JsonArray. */ /* Se a consulta for paginada e tiver mais resultados além dos que estão sendo retornados, deverá setar a variável 'hasNext' como TRUE. Desse modo o botão 'Carregar mais resultados' ficará habilitado na janela de detalhe para que o usuário possa requisitar a próxima página. Recomendamos utilizar paginação caso exista a possibilidade da consulta demorar mais que um minuto para ser realizada */ DetailBuilder:setHasNext(FALSE). DetailBuilder:setCanExportXLS(TRUE). // Determina se o botão de exportação para planilha (formato CSV) ficará habilitado (TRUE) ou não (FALSE) DetailBuilder:setModalMaxWidth("1440px"). // Tamanho máximo de largura que a janela de detalhe poderá possuir ASSIGN detailJsonOutput = DetailBuilder:createDetail(). //Gera o objeto de detalhe /* A temp-table RowErrors pode ser utilizada para retornar mensagens de erro, caso necess necess riorio: CREATE RowErrors. ASSIGN RowErrors.ErrorNumber = 17006 RowErrors.ErrorDescription = "ERRO DE EXEMPLO" RowErrors.ErrorSubType = "ERROR". */ CATCH eSysError AS Progress.Lang.Error: CREATE RowErrors. ASSIGN RowErrors.ErrorNumber = 17006 RowErrors.ErrorDescription = eSysError:getMessage(1) RowErrors.ErrorSubType = "ERROR". END. FINALLY: IF fn-has-row-errors() THEN DO: UNDO, RETURN 'NOK':U. END. END FINALLY. END PROCEDURE. |
...
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas