Utilizada para gerar o JSON de retorno contendo o detalhamento geral do monitor, ou de alguma fatia/parcela/série selecionada num monitor do tipo gráfico.
Obrigatória: Para monitores que precisam detalhar as informações exibidas por padrão.
Métodos
Construtor
Método chamado durante a instanciação da classe. Sempre será o primeiro método invocado. Não recebe nenhum parâmetro.
Exemplo de chamada
USING cdp.services.gestaoavista.*. //Definir no topo do programa DEFINE VARIABLE DetailBuilder AS DetailBuilder NO-UNDO. DetailBuilder = NEW DetailBuilder().
setTags
Recebe a temp-table ttTags, que contém as definições das Tags que serão exibidas na janela de detalhe. Tags são pequenos rótulos coloridos que são úteis para destacar detalhes importantes. Serão exibidas logo abaixo do cabeçalho ou no topo da janela, caso ele não seja definido.
Parâmetros
Nome | Direção | Tipo | Descrição |
---|---|---|---|
ttTags | INPUT | Temp-Table | Temp-Table contendo os registros de cada tag a ser exibida. |
Exemplo de chamada
CREATE ttTags. ASSIGN ttTags.valor = "Tag de Exemplo" ttTags.icone = "po-icon-calendar" ttTags.cor-texto = "#f5f5f5" ttTags.cor-tag = "#080707". DetailBuilder:setTags(INPUT TABLE ttTags).
setHeaders
Recebe a temp-table ttHeadersDetalhe, que contém o cabeçalho da janela de detalhe. O cabeçalho será exibido no topo da janela.
Parâmetros
Nome | Direção | Tipo | Descrição |
---|---|---|---|
ttHeadersDetalhe | INPUT | Temp-Table | Temp-Table contendo as linhas que irão compor o cabeçalho do detalhe. |
Exemplo de chamada
CREATE ttHeadersDetalhe. ASSIGN ttHeadersDetalhe.texto-header = "Título" ttHeadersDetalhe.classe-header = "po-sm-12 po-font-title blue-text" ttHeadersDetalhe.estilo-header = "". CREATE ttHeadersDetalhe. ASSIGN ttHeadersDetalhe.texto-header = "Subtítulo" ttHeadersDetalhe.classe-header = "po-sm-12 po-font-subtitle" ttHeadersDetalhe.estilo-header = "". CREATE ttHeadersDetalhe. ASSIGN ttHeadersDetalhe.texto-header = "Texto de exemplo" ttHeadersDetalhe.classe-header = "po-sm-12 po-font-text-small po-pt-1" ttHeadersDetalhe.estilo-header = "". DetailBuilder:setHeaders(INPUT TABLE ttHeadersDetalhe).
setColumns
Recebe a ttColunaDetalhe, que contém a definição das colunas que serão exibidas na tabela de detalhe.
Parâmetros
Nome | Direção | Tipo | Descrição |
---|---|---|---|
ttColunaDetalhe | INPUT | Temp-Table | Temp-Table com a definição das colunas da tabela. |
Exemplo de chamada
CREATE ttColunaDetalhe. ASSIGN ttColunaDetalhe.cod-label = "Ordem" ttColunaDetalhe.propriedade = "productionOrderNumber" ttColunaDetalhe.formato = "1.0-0" ttColunaDetalhe.tipo = "number" ttColunaDetalhe.largura = "180px". CREATE ttColunaDetalhe. ASSIGN ttColunaDetalhe.cod-label = "Motivo" ttColunaDetalhe.propriedade = "scrapReasonCode". CREATE ttColunaDetalhe. ASSIGN ttColunaDetalhe.cod-label = "Descrição" ttColunaDetalhe.propriedade = "scrapReasonDescription". CREATE ttColunaDetalhe. ASSIGN ttColunaDetalhe.cod-label = "Data do reporte" ttColunaDetalhe.propriedade = "reportDate" ttColunaDetalhe.tipo = "date". CREATE ttColunaDetalhe. ASSIGN ttColunaDetalhe.cod-label = "Quantidade refugada" ttColunaDetalhe.propriedade = "scrappedQuantity" ttColunaDetalhe.tipo = "number" ttColunaDetalhe.formato = "1.4-4". DetailBuilder:setColumns(INPUT TABLE ttColunaDetalhe).
setItems
Recebe um JSON Array construído com base em uma temp-table qualquer, que representa os dados que serão exibidos na tabela. A definição dessa temp-table fica a cargo do usuário, e a propriedade SERIALIZE-NAME dos campos devem ser equivalentes ao campo propriedade da ttColunaDetalhe.
Parâmetros
Nome | Direção | Tipo | Descrição |
---|---|---|---|
Objeto com os dados | INPUT | JSON Array | Array contendo os dados que serão exibidos na tabela de detalhe. |
Exemplo de chamada
USING PROGRESS.json.*. USING PROGRESS.json.ObjectModel.*. USING com.totvs.framework.api.*. DEFINE TEMP-TABLE ttReporteRefugo NO-UNDO SERIALIZE-NAME 'operationScrapReport':U FIELD nr-ord-produ AS INTEGER INITIAL ? SERIALIZE-NAME 'productionOrderNumber':U FIELD cod-ctrab AS CHARACTER INITIAL ? SERIALIZE-NAME 'workCenterCode':U FIELD it-codigo AS CHARACTER INITIAL ? SERIALIZE-NAME 'itemCode':U FIELD un AS CHARACTER INITIAL ? SERIALIZE-NAME 'unitOfMeasureCode':U FIELD op-codigo AS INTEGER INITIAL ? SERIALIZE-NAME 'operationCode':U FIELD cod-motiv-refugo AS CHARACTER INITIAL ? SERIALIZE-NAME 'scrapReasonCode':U FIELD des-motiv-refugo AS CHARACTER INITIAL ? SERIALIZE-NAME 'scrapReasonDescription':U FIELD qtd-refugada AS DECIMAL SERIALIZE-NAME 'scrappedQuantity':U FIELD qtd-operac-aprov AS DECIMAL SERIALIZE-NAME 'operationApprovedQuantity':U FIELD perc-refugo AS DECIMAL SERIALIZE-NAME 'scrapPercent':U FIELD dat-reporte AS DATE SERIALIZE-NAME 'reportDate':U . CREATE ttReporteRefugo. ASSIGN ttReporteRefugo.nr-ord-produ = 1000 ttReporteRefugo.cod-motiv-refugo = "REF001" ttReporteRefugo.des-motiv-refugo = "Acabamento com problemas" ttReporteRefugo.dat-reporte = TODAY ttReporteRefugo.qtd-refugada = 100 ttReporteRefugo.op-codigo = 10. //O método convertTempTableToJsonArray transforma nossa temp-table em um Array, contendo os campos conforme os SERIALIZE-NAME definidos DetailBuilder:setItems(JsonAPIUtils:convertTempTableToJsonArray(TEMP-TABLE ttReporteRefugo:HANDLE, FALSE)).
createDetail
Método que transforma todas as informações passadas em um objeto JSON, já formatado seguindo o padrão utilizado pelo painel do Gestão à Vista. Esse JSON deverá ser retornado pela API de negócio para ser processado e apresentado ao usuário final.
Parâmetros
Nome | Direção | Tipo | Descrição |
---|---|---|---|
oDetailOutput | OUTPUT | JsonObject | Objeto JSON representando detalhe que será apresentado ao usuário. |
Exemplo de chamada
PROCEDURE pi-get-monitor-detail-v2: 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 oDetailOutput AS JsonObject NO-UNDO. DEFINE OUTPUT PARAM TABLE FOR RowErrors. <...Criação das temp-tables, chamada dos métodos de set...> oDetailOutput = DetailBuilder:createDetail(). END PROCEDURE.