...
Nome | Tipo | Obrigatório | Default | Descrição |
---|---|---|---|---|
cIdProt | caractere | X | Id do relatório que será impresso (relacionado ao nome do arquivo .trp) | |
cType | caractere | Apenas se for um recurso individual | Tipo de dado (report, pivot-table ou data-grid) | |
nPrintType | numérico | Apenas se for utilizada em jobo recurso sem interface | Tipo do impressão (Arquivo=1, Email=2) | |
jPrintInfo | json | Apenas se for utilizada em jobo recurso sem interface | Informações para a impressão do relatório | |
jParams | json | Se houver parâmetros no relatório | Parâmetros do relatório | |
lRunInJoblRunNoInterface | lógico | .T. | Indica se irá executar em jobsem interface | |
lShowParams (Disponível a partir da LIB Label 20230807) | lógico | .T. | Indica se irá mostrar a tela de parâmetros (se for geração em job esse sem interface esse parâmetro sempre é .F.) | |
lWizard (Disponível a partir da LIB Label 20231009) | lógico | .F. | Indica se exibe o wizard de configuração do Smart View, caso o ambiente não esteja preparado | |
cError (Disponível a partir da LIB Label 20231009) | caractere | Indica o erro na execução [referência] |
Informações | ||
---|---|---|
| ||
Ao utilizar a geração em job sem interface o desenvolvedor deve ter conhecimento dos parâmetros cadastrados no Smart View, pois os mesmos serão enviados a partir do jParams |
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
#include "protheus.ch" #include "fwmvcdef.ch" //------------------------------------------------------------------- /*/{Protheus.doc} poc_mvc Exemplo de um modelo e view baseado em uma unica tabela com chamada de um relatório no treports pela função totvs.framework.treports.callTReports @author Vanessa Ruama @since 01/12/2022 @version 1.0 /*/ //------------------------------------------------------------------- User Function poc_mvc() Local oBrowse As Object oBrowse := FWMBrowse():New() oBrowse:SetAlias('SC7') oBrowse:SetDescription('Pedido de Compras') oBrowse:Activate() Return //------------------------------------------------------------------- /*/{Protheus.doc} MenuDef Função para carregamento do menu. @return aRotina, array, array com as opções de menu. @author Vanessa Ruama @since 01/12/2022 @version 1.0 /*/ //------------------------------------------------------------------- Static Function MenuDef() Local aRotina As Array Local aMedicao As Array aRotina := {} aMedicao := {} ADD OPTION aRotina TITLE 'Visualizar' ACTION 'VIEWDEF.poc_mvc' OPERATION 2 ACCESS 0 ADD OPTION aRotina TITLE 'Incluir' ACTION 'VIEWDEF.poc_mvc' OPERATION 3 ACCESS 0 ADD OPTION aRotina TITLE 'Alterar' ACTION 'VIEWDEF.poc_mvc' OPERATION 4 ACCESS 0 ADD OPTION aRotina TITLE 'Excluir' ACTION 'VIEWDEF.poc_mvc' OPERATION 5 ACCESS 0 ADD OPTION aRotina TITLE 'Imprimir Multi' ACTION 'callMulti' OPERATION 8 ACCESS 0 Return aRotina //------------------------------------------------------------------- /*/{Protheus.doc} ModelDef Definição do model referente aos pedidos @return oModel, objeto, objeto do modelo @author Vanessa Ruama @since 01/12/2022 @version 1.0 /*/ //------------------------------------------------------------------- Static Function ModelDef() Local oModel As Object Local oStruSC7 As Object oStruSC7 := FWFormStruct(1,"SC7") oModel := MPFormModel():New("PEDIDO") oModel:SetDescription("Pedido de Compras") oModel:addFields('MASTERSC7',,oStruSC7) oModel:getModel('MASTERSC7'):SetDescription('Pedido de Compras') Return oModel //------------------------------------------------------------------- /*{Protheus.doc} ViewDef Interface do modelo de dados @return oView , objeto, retorna a view do modelo @author Vanessa Ruama @since 01/12/2022 @version 1.0 */ //------------------------------------------------------------------- Static Function ViewDef() Local oModel := ModelDef() Local oView Local oStrSC7:= FWFormStruct(2, 'SC7') oView := FWFormView():New() oView:SetModel(oModel) oView:AddField('FORM_PROD' , oStrSC7,'MASTERSC7' ) oView:CreateHorizontalBox( 'BOX_FORM_PROD', 100) oView:SetOwnerView('FORM_PROD','BOX_FORM_PROD') Return oView //------------------------------------------------------------------- /*{Protheus.doc} callMulti Chamada de múltiplos recursos do Smart View @author Vanessa Ruama @since 15/09/2023 @version 1.0 */ //------------------------------------------------------------------- Function callMulti() Local lSuccess As logical Local cError as character //1º parâmetro = Relatório cadastrado na tabela de De/Para (Campo TR__IDREL) //2º parâmetro = Tipo do relatório ("reports" = relatório comum, "data-grid" = visão de dados, "pivot-table" = tabela dinâmica) //3º parâmetro = Tipo do impressão (Arquivo=1, Email=2) //4º parâmetro = Informações de impressão //5º parâmetro = Parâmetros do relatório //6º parâmetro = Indica se executa sem ema jobinterface //7º parâmetro = Indica se exibe os parâmetros para preenchimento //8º parâmetro = Indica se exibe o wizard de configuração do Smart View //9º parâmetro = Erro da execução //Disponível a partir da LIB Label 20231009 lSuccess := totvs.framework.treports.callTReports("framework.sv.framework.product",,,,,.F.,,.T., @cError) If !lSuccess Conout(cError) EndIf Return .T. |
...
Bloco de código | ||||
---|---|---|---|---|
| ||||
#include "protheus.ch" #include "fwmvcdef.ch" //------------------------------------------------------------------- /*/{Protheus.doc} poc_mvc Exemplo de um modelo e view baseado em uma unica tabela com chamada de um relatório no Smart View pela função totvs.framework.treports.callTReports @author Framework @since 01/12/2022 @version 1.0 /*/ //------------------------------------------------------------------- User Function poc_mvc() Local oBrowse As Object oBrowse := FWMBrowse():New() oBrowse:SetAlias('SB1') oBrowse:SetDescription('Cadastro de Produtos') oBrowse:Activate() Return //------------------------------------------------------------------- /*/{Protheus.doc} MenuDef Função para carregamento do menu. @return aRotina, array, array com as opções de menu. @author Framework @since 01/12/2022 @version 1.0 /*/ //------------------------------------------------------------------- Static Function MenuDef() Local aRotina As Array aRotina := {} ADD OPTION aRotina TITLE 'Visualizar' ACTION 'VIEWDEF.poc_mvc' OPERATION 2 ACCESS 0 ADD OPTION aRotina TITLE 'Incluir' ACTION 'VIEWDEF.poc_mvc' OPERATION 3 ACCESS 0 ADD OPTION aRotina TITLE 'Alterar' ACTION 'VIEWDEF.poc_mvc' OPERATION 4 ACCESS 0 ADD OPTION aRotina TITLE 'Excluir' ACTION 'VIEWDEF.poc_mvc' OPERATION 5 ACCESS 0 ADD OPTION aRotina TITLE 'Imprimir' ACTION 'VIEWDEF.poc_mvc' OPERATION 8 ACCESS 0 ADD OPTION aRotina TITLE 'Imprimir Smart View' ACTION 'callTrep' OPERATION 8 ACCESS 0 ADD OPTION aRotina TITLE 'Copiar' ACTION 'VIEWDEF.poc_mvc' OPERATION 9 ACCESS 0 Return aRotina //------------------------------------------------------------------- /*/{Protheus.doc} ModelDef Definição do model referente aos produtos @return oModel, objeto, objeto do modelo @author Framework @since 01/12/2022 @version 1.0 /*/ //------------------------------------------------------------------- Static Function ModelDef() Local oModel As Object Local oStruSB1 As Object oStruSB1 := FWFormStruct(1,"SB1") oModel := MPFormModel():New("PRODUTOS") oModel:SetDescription("Produtos - SB1") oModel:addFields('MASTERSB1',,oStruSB1) oModel:getModel('MASTERSB1'):SetDescription('Produtos - SB1') Return oModel //------------------------------------------------------------------- /*{Protheus.doc} ViewDef Interface do modelo de dados @return oView , objeto, retorna a view do modelo @author Framework @since 01/12/2022 @version 1.0 */ //------------------------------------------------------------------- Static Function ViewDef() Local oModel := ModelDef() Local oView Local oStrSB1:= FWFormStruct(2, 'SB1') oView := FWFormView():New() oView:SetModel(oModel) oView:AddField('FORM_PROD' , oStrSB1,'MASTERSB1' ) oView:CreateHorizontalBox( 'BOX_FORM_PROD', 100) oView:SetOwnerView('FORM_PROD','BOX_FORM_PROD') Return oView //------------------------------------------------------------------- /*{Protheus.doc} callTReports Função para chamada do relatório do Smart View @author Framework @since 01/12/2022 @version 1.0 */ //------------------------------------------------------------------- Function callTrep() Local lSuccess As Logical //1º parâmetro = Relatório cadastrado na tabela de De/Para (Campo TR__IDREL) //2º parâmetro = Tipo do relatório ("reports" = relatório, "data-grid" = visão de dados, "pivot-table" = tabela dinâmica) //Como não foi mandado o 6º parâmetro como .F. o relatório será gerado emsem jobinterface, caso esse parâmetro seja enviado será aberta a tela de opções lSuccess := totvs.framework.treports.callTReports("framework.sv.framework.product.default.pv", "pivot-table") If !lSuccess Conout("Erro na geração, verificar logs") EndIf Return |
Bloco de código | ||||
---|---|---|---|---|
| ||||
User Function treportsJobtreportsNoInterface() Local lSuccess As Logical Local jParams As Json Local jPrintInfo As Json RpcSetEnv('T1', 'M PR 02', "admin", "1234") //Caso não tenha ambiente aberto //Preencher os parâmetros do relatório, caso o mesmo tenha parâmetro jParams := JsonObject():New() jParams['filial'] := "M PR 02" jParams['periodo'] := "201601" jParams['matriculade'] := "000003" jParams['matriculaate'] := "000003" jPrintInfo := JsonObject():New() jPrintInfo['name'] := "GPER040_" + FwTimeStamp() //Adicionado o timestamp para não ter conflito no nome do arquivo jPrintInfo['path'] := "C:\relatórios\" jPrintInfo['extension'] := "pdf" //1º parâmetro = Relatório cadastrado na tabela de De/Para (Campo TR__IDREL) //2º parâmetro = Tipo do relatório ("reports" = relatório, "data-grid" = visão de dados, "pivot-table" = tabela dinâmica) //3º parâmetro = Tipo de impressão (1 = Arquivo, 2 = E-mail ) //4º parâmetro = Informações de impressão //5º parâmetro = Parâmetros do relatório lSuccess := totvs.framework.treports.callTReports("framework.sv.framework.product.synthetic.rep.bra", "report", 1, jPrintInfo, jParams) If !lSuccess Conout("Erro na geração, verificar logs") EndIf Return |
Bloco de código | ||||
---|---|---|---|---|
| ||||
User Function treportsJobtreportsNoInterface() Local lSuccess As Logical Local jPrintInfo As Json RpcSetEnv('T1', 'M PR 02', "admin", "1234") //Necessário identificar o usuário no rpcsetenv ou após jPrintInfo := JsonObject():New() jPrintInfo['to'] := "[email protected]" //Obrigatório setar o destinatário jPrintInfo['name'] := "Produtos - " + FWTimeStamp() //1º parâmetro = Relatório cadastrado na tabela de De/Para (Campo TR__IDREL) //2º parâmetro = Tipo do relatório ("reports" = relatório, "data-grid" = visão de dados, "pivot-table" = tabela dinâmica) //3º parâmetro = Tipo de impressão (1 = Arquivo, 2 = E-mail ) //4º parâmetro = Informações de impressão lSuccess := totvs.framework.treports.callTReports("framework.sv.framework.product.analytical.rep.bra", "report", 2, jPrintInfo) If !lSuccess Conout("Erro na geração e envio do e-mail, verificar logs") EndIf Return |
...