Olá, Temos a necessidade de gerar, sem agendamento com chamada via menu pelo usuário, um TReport sem aquela tela de interação onde o resultado será uma planilha numa pasta específica. Alguém sabe como proceder? Grato.
Olá, Temos a necessidade de gerar, sem agendamento com chamada via menu pelo usuário, um TReport sem aquela tela de interação onde o resultado será uma planilha numa pasta específica. Alguém sabe como proceder? Grato.
Marcelo,
É possível gerar um relatório TReport
sem exibir a dialog padrão, para isso, você deve criar o TReport e não utilizar do método printDialog. Exemplo:
#include "protheus.ch"
//-------------------------------------------------------------------
/*/{Protheus.doc} myReport
Impressão de relatório sem interface, listagem da SED
@author Daniel Mendes
@since 06/04/2021
@version 1.0
/*/
//-------------------------------------------------------------------
user function myReport()
local oReport as object
local oSection as object
local oCodigo as object
local oDescricao as object
oReport := TReport():New("MyReport", "Listagem de naturezas", /*uParam*/, {|oReport| oSection:Print()}, "Listagem de naturezas")
oSection := TRSection():New(oReport, "Naturezas", "SED")
oCodigo := TRCell():New(oSection, "ED_CODIGO", "SED", "Código", /*cPicture*/, Len(SED->ED_CODIGO))
oDescricao := TRCell():New(oSection, "ED_DESCRIC", "SED", "Descrição", /*cPicture*/, Len(SED->ED_DESCRIC))
oReport:setEnvironment(2)
oReport:setDevice(4)
oReport:setFile("C:\temp\myReport")
SED->(dbGoTop())
oReport:print(.F.)
return
Veja que chamei o método print
do TReport
, assim ele não faz perguntas em tela, apenas efetua a geração do relatório.
Documentação: https://tdn.totvs.com/display/framework/TReport
Como você deseja fazer a impressão em planilha, você pode usar as seguintes classes para efetuar a geração diretamente em planilha:
As duas últimas classes são mais recentes e permitem gerar o arquivo em formato XLSX.
Porém, caso você use qualquer uma dessas classes, algumas responsabilidades ficam na sua mão, como por exemplo a questão dos dados protegidos, você deverá validar campo a campo e ofuscar o dado caso o usuário não possa acesso.
Documentação: https://tdn.totvs.com/pages/viewpage.action?pageId=560647734
Para saber mais sobre os dados protegidos, existem algumas documentações:
https://tdn.totvs.com/display/framework/Dados+Protegidos
https://tdn.totvs.com/pages/releaseview.action?pageId=520102017
Perfeito, exatamente o que precisava. Obrigado!
— Marcelo Gall 06 de Apr de 2021Boa tarde.
Você pode usar o Objeto oExcel para gerar o arquivo. Você define os filtros que serão aplicados na consulta e gera o arquivo mandando para o seu local de salvamento.
Verificar o link da classe: https://tdn.totvs.com/display/framework/FWMsExcelEx
Tomara que posso te ajudar...
Show...obrigado pela dica, mas já tenho o relatório todo pronto em TReport então minha necessidade é mantê-lo com os recursos adicionais. Mas obrigado, em outra oportunidade ao desenvolver um novo poderei usar este recursol
— Marcelo Gall 06 de Apr de 2021