Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Informações

Objeto oData

Serão feitos tratamentos internos neste objeto.

Ele possui apenas um método dois métodos para uso externo, usado em conjunto com os métodos da nova classe, sendo eleeles:

Método AliasToData() - Método do objeto oData que converte o alias recebido em dados para o TReports.

Exemplos de uso estarão abaixo nos métodos criados para a classe IntegratedProvider.

Método AppendData() - Método do objeto oData que adiciona um json para o array de dados.

Parâmetros:

NomeTipoObrigatórioDefaultDescrição
jDataJsonX
Json contendo os dados (chave:valor)

Exemplos de uso estarão abaixo nos métodos criados para a classe IntegratedProvider.

...

Nome

TipoObrigatórioDefaultDescrição
nPageNumérico
Página atualNúmero da página atual
oFilterObjeto

Objeto do Filtro

...

Exemplos de uso:

Bloco de código
method getData(nPage as numeric, oFilter as object) as object class SEDTReportsBusinessObject
	// Objeto de filtro nulo pois o recurso não se encontra ativo
	self:oData:aliasToData("SED", oFilter)
return self:oData
Bloco de código
method getData(nPage as numeric, oFilter as object) as object class SEDTReportsBusinessObject
local cQuery as character
local cAlias as character

cQuery := "SELECT * FROM " + RetSqlName('SED') + " WHERE D_E_L_E_T_ = ' '"

if oFilter:hasFilter()
    cQuery += " AND " + oFilter:getSQLExpression()
endif

cAlias := MPSysOpenQuery(cQuery)

while !(cAlias)->(Eof())
    self:oData:appendData({"Descrição": (cAlias)->ED_DESCRIC})
    (cAlias)->(DBSkip())
enddo

(cAlias)->(DBCloseArea())

return self:oData


Sintaxe: GetData() → objeto self:oData

...

Define o nome do relatório.

Exemplo de uso:

Bloco de código
SetDisplayName("Naturezas")

...

NomeTipoObrigatórioDefaultDescrição
cAreaCaracterX
Nome da área do relatório

Exemplo de uso:

Bloco de código
AppendArea("Financeiro")

...

Bloco de código
titleExemplo 2
collapsetrue
#include "msobject.ch"
#include "totvs.framework.treports.integratedprovider.th"

namespace custom.financeiro.fornecedores.integratedprovider

@totvsFrameworkTReportsIntegratedProvider(active=.T.)
class SA2TReportsBusinessObject from totvs.framework.treports.integratedprovider.IntegratedProvider
    public method new() as object
    public method getAreas() as array
    public method getDescription() as character
    public method getData() as object
    public method getSchema() as object
endclass

method new() as object class SA2TReportsBusinessObject
	_Super:new()
	self:setDisplayName("Fornecedores")
return self

method getDescription() as character class SA2TReportsBusinessObject
return "Fornecedores do Protheus"

method getAreas() as array class SA2TReportsBusinessObject
return {"Financeiro", "Contas a pagar"}

method getData(nPage as numeric, oFilter as object) as object class SA2TReportsBusinessObject
	local cQuery as character
	local cAlias as character

	cQuery := "SELECT * FROM " + RetSqlName('SA2') + " WHERE D_E_L_E_T_ = ' '"
	
	//Só será possível adicionar filtro após a implementação do TReports pois o mesmo irá pelo body da requisição
	if oFilter:hasFilter()
	    cQuery += " AND " + oFilter:getSQLExpression()
	endif

	cAlias := MPSysOpenQuery(cQuery)

	while !(cAlias)->(Eof())
	    self:oData:appendData({"Nome": (cAlias)->A2_NOME})
	    (cAlias)->(DBSkip())
	enddo

	(cAlias)->(DBCloseArea())
return self:oData

method getSchema() as object class SA2TReportsBusinessObject
	self:oSchema:addProperty("Nome", "Nome do Fornecedor", "C", "A2_NOME")
	self:oSchema:addProperty("Código", "Código do Fornecedor", "C", "A2_COD")
return self:oSchema
Bloco de código
titleExemplo 3
collapsetrue
#include "msobject.ch"
#include "totvs.framework.treports.integratedprovider.th"

namespace custom.materiais.produtos.integratedprovider

@totvsFrameworkTReportsIntegratedProvider(active=.T.)
class SB1TReportsBusinessObject from totvs.framework.treports.integratedprovider.IntegratedProvider
    public method new() as object
    public method getDisplayName() as character
    public method getDescription() as character
    public method getData() as object
    public method getSchema() as object
endclass

method new() class SB1TReportsBusinessObject
_Super:new()
self:appendArea("Materiais")
self:appendArea("Faturamento")
return self

method getDisplayName() as character class SB1TReportsBusinessObject
return "Produtos"

method getDescription() as character class SB1TReportsBusinessObject
return "Produtos do Protheus"

method getData(nPage as numeric, oFilter as object) as object class SB1TReportsBusinessObject
local cQuery as character
local cAlias as character

cQuery := "SELECT B1_COD, B1_DESC, B1_TIPO, B1_UM FROM " + RetSQLName("SB1") + " WHERE D_E_L_E_T_ = ' '"

//Só será possível adicionar filtro após a implementação do TReports pois o mesmo irá pelo body da requisição
if oFilter:hasFilter()
    cQuery += " AND " + oFilter:getSQLExpression()
endif

cAlias := MPSysOpenQuery(cQuery)

while !(cAlias)->(Eof())
    self:oData:appendData({"Codigo": (cAlias)->B1_COD, "Descricao": (cAlias)->B1_DESC, "Tipo": (cAlias)->B1_TIPO, "Unidade": (cAlias)->B1_UM})
    (cAlias)->(DBSkip())
enddo

(cAlias)->(DBCloseArea())

return self:oData

method getSchema() as object class SB1TReportsBusinessObject
self:oSchema:addProperty("Codigo", "Código", "string", "B1_COD")
self:oSchema:addProperty("Descricao", "Descrição", "string", "B1_DESC")
self:oSchema:addProperty("Tipo", "Tipo", "string", "B1_TIPO")
self:oSchema:addProperty("Unidade", "Unidade de medida", "string", "B1_UM")
return self:oSchema