Histórico da Página
...
Índice | ||||
---|---|---|---|---|
|
Unificando o Menu/Rotina com recursos diferentes
Com o Padrão para nomenclatura dos arquivos .trp (layouts) correto, é possível unificar os recursos em apenas uma chamada, sendo:
- Múltiplos Relatórios
- Múltiplas Tabelas Dinâmicas
- Múltiplas Visões de Dados
Para isso preciso ter os 4 .trp's compilados (no caso da importação automática) e com as nomenclaturas corretas, como no exemplo abaixo:
...
Pré-requisitos
- Já ter feito a instalação e integração com o Smart View, mais informações nos links:
- Necessário utilizar o REST 2.0 - Entendendo as novidades do REST
- Ter conhecimento da linguagem TL++ - Rest - Ambiente de compilação do TLPP
- Cadastrar os relatórios na rotina de De/Para Protheus x Smart View - Amarração Protheus x Smart View
- Ter os arquivos .trp com o padrão de nomenclatura correto - Padrão para nomenclatura dos arquivos .trp (layouts)
- Ter compilados os arquivos .trp no RPO, caso utilize a importação automática - Smart View - Importação Automática de Recursos
...
Unificando o Menu/Rotina com recursos diferentes
Com o Padrão para nomenclatura dos arquivos .trp (layouts) correto, é possível unificar os recursos em apenas uma chamada, sendo:
- Múltiplos Relatórios
- Múltiplas Tabelas Dinâmicas
- Múltiplas Visões de Dados
Para isso preciso ter os 4 .trp's compilados (no caso da importação automática) e com as nomenclaturas corretas, como no exemplo abaixo:
- Relatório 1 -
- Relatório 1 - framework.sv.framework.product.synthetic.rep.bra.trp
- Relatório 2 - framework.sv.framework.product.analytical.rep.bra.trp
- Tabela Dinâmica - framework.sv.framework.product.default.pv.trp
- Visão de Dados - framework.sv.framework.product.synthetic.rep.bra.trp
- Relatório 2 - framework.sv.framework.product.analytical.rep.bra.trp
- Tabela Dinâmica - framework.sv.framework.product.default.pv.trp
- Visão de Dados - framework.sv.framework.product.default.dg.trp
Para a chamada do recurso o ID enviado (cProtheusId) no método new() desta classe deverá ser o seguinte: framework.sv.framework.product (área responsável + agrupador + modulo + nome do ON) e não deve ser mandado o parâmetro que indica o tipo do recurso, já que o recurso deverá ser escolhido pelo usuário.
...
Método de instância da classe.
Parâmetros:
Nome | Tipo | Obrigatório | Default | Descrição |
---|---|---|---|---|
cProtheusId | Caractere | X | Id do recurso que será |
impresso (relacionado ao nome do arquivo .trp) |
cType |
Caractere | Apenas quando for a execução de recurso único | Tipo do recurso (report, pivot-table ou data-grid) |
Exemplos de uso:
Bloco de código | ||
---|---|---|
| ||
oSmartView := totvs.framework.smartview.callSmartView():new("framework.sv.framework.product.default.rep.bra", "report") |
...
Propriedades | Obrigatório | Default | Descrição |
---|---|---|---|
name | Nome do relatório na tabela (TR__IDREL) + Data/Hora | Nome do arquivo | |
extension | Extensão | ||
path\Spool\ | MV_RELT | Pasta onde será salvo |
- Opção 2 - Impressão por E-mail
...
Propriedades | Obrigatório | Default | Descrição |
---|---|---|---|
to | X | Destinatário do E-mail | |
subject | Relatório Smart View | Assunto do E-mail | |
body | Descrição do relatório (TR__DESCRI) | Corpo do -email | |
name | Nome do relatório na tabela (TR__IDREL) + Data/Hora | Nome do arquivo | |
extension | Extensão | ||
path\Spool\ | MV_RELT | Pasta onde será salvo |
Informações |
---|
Necessário ter configurado o SMTP para envio de e-mail - Configurar o SMTP para envio de relatórios por e-mail |
Aviso | ||
---|---|---|
| ||
O tWebEngine possui uma proteção para não realizar download de arquivos maliciosos. Por padrão é possível realizar download de arquivos do Smart View com as seguintes extensões: pdf, xls, xlsx, rtf, docx, mht, html, txt, csv e png. Caso seja necessário realizar o download de outras extensões deve ser realizado tratamento pelo ponto de entrada AddLexList (https://tdn.totvs.com/display/PROT/AdDLExList). Para utilizar este ponto de entrada é necessário o fonte FwDLExList.prw mais atual.atual. |
Exemplo de uso:
Bloco de código |
---|
jPrintInfo := jsonObject():new()
jPrintInfo["extension"] := "xlsx"
jPrintInfo["name"] := "product" + FWTimeStamp()
oSmartView:setPrintInfo(jPrintInfo) |
Sintaxe: setPrintInfo(<jPrintInfo>) → nil
...
executeSmartView()
Executa o recurso escolhido.
Retorno:
Nome | Tipo | Descrição |
---|---|---|
lSuccess | Lógico | Indica o erro na execução |
Exemplo de uso:
Bloco de código |
---|
jPrintInfo := jsonObject():new() jPrintInfo["extension"]lSuccess := "xlsx" jPrintInfo["name"] := "product" + FWTimeStamp() oSmartView:setPrintInfoexecuteSmartView(jPrintInfo) |
Sintaxe: oSmartView:setPrintInfoexecuteSmartView(<jPrintInfo>) → nillSuccess
...
getError()
Retorna o erro na geração.
Retorno:
Nome | Tipo | Descrição |
---|---|---|
cError | Caractere | Indica o erro na execução |
Exemplo de uso:
Bloco de código |
---|
cError := oSmartView:getError() |
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
#include "protheus.ch"
user Function callSV()
local lSuccess As logical
local jParams as json
local oSmartView as object
jParams := JsonObject():new()
jParams["parameters"] := Array(2)
jParams["force"] := .T. //Indica se força o valor
jParams["parameters"][1] := JsonObject():New()
jParams["parameters"][1]["name"] := "MV_PAR01"
jParams["parameters"][1]["value"] := ""
jParams["parameters"][1]["visibility"] := "Disabled"
jParams["parameters"][2] := JsonObject():New()
jParams["parameters"][2]["name"] := "MV_PAR02"
jParams["parameters"][2]["value"] := "ZZZZ"
jParams["parameters"][2]["visibility"] := "Disabled"
oSmartView := totvs.framework.smartview.callSmartView():new("framework.sv.framework.product.synt.rep.bra", "report")
oSmartView:setParameters(jParams)
lSuccess := oSmartView:executeSmartView(.T.)
If !lSuccess
Conout(oSmartView:getError())
EndIf
oSmartView:destroy()
return .T. |
Bloco de código | ||||
---|---|---|---|---|
| ||||
#include "protheus.ch"
user Function callMultiSV()
local lSuccess As logical
local oSmartView as object
oSmartView := totvs.framework.smartview.callSmartView():new("framework.sv.framework.product")
oSmartView:setParam("MV_PAR01", "")
oSmartView:setParam("MV_PAR02", "ZZZZZ")
oSmartView:setParam("MV_PAR03", 2)
oSmartView:setParam("MV_PAR04", totvs.framework.treports.date.dateToTimeStamp(date()))
lSuccess := oSmartView:executeSmartView(.T.)
If !lSuccess
Conout(oSmartView:getError())
EndIf
oSmartView:destroy()
return .T. |