Árvore de páginas

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

NomeDireçãoTipo Descrição
ttTagsINPUTTemp-TableTemp-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

NomeDireçãoTipo Descrição
ttHeadersDetalheINPUTTemp-TableTemp-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

NomeDireçãoTipo Descrição
ttColunaDetalheINPUTTemp-TableTemp-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

NomeDireçãoTipo Descrição
Objeto com os dadosINPUTJSON ArrayArray 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

NomeDireçãoTipo Descrição

oDetailOutput

OUTPUTJsonObjectObjeto 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.
  • Sem rótulos