+1 voto
18 visitas

É possível guardar as informações de uma tabela virtual na sessão do usuário "UserVar" via Bef?

Ou seja, é possivel guardar as informações de um filtro de relatório que utiliza tabela virtual, para que possa ser carregado novamente na próxima geração do relatório? Tudo isso via BEF?

 

Antes utiliza o codigo abaixo via Macro de tabela:

 
 

Public Sub TABLE_AfterInsert(CanInherited As Boolean)
  If UserVar("K_FILTRO_TIMESHEET_21") <> "" Then
    XMLToDataset(UserVar("K_FILTRO_TIMESHEET_21"),CurrentQuery.TQuery)
  End If
End Sub

 

Public Sub TABLE_AfterPost(CanInherited As Boolean)
  UserVar("K_FILTRO_TIMESHEET_21") = DatasetToXML(CurrentQuery.TQuery,"")
End Sub

 

por (105 pontos)
editado por | 18 visitas

1 Resposta

0 votos

Willian, 

No bef, na entidade especializada, você pode setar os valores no evento Created da entidade. Veja o link da API para criar este evento.

https://desenv.benner.com.br/bef/Reference/20.0/html/M_Benner_Tecnologia_Business_BusinessEntity_1_Created.htm

No entendo, não recomentaria a estratégia de utilizar as variáveis de usuário para salver os valores da ultima emissão do relatório. Isso porque irá gerar muitos dados na tabela Z_VARIAVEIS, onde esses valores são salvos. 

Como se trata de valores que não precisam ser persistidos, sugiro utilizar uma estratégia de salvar os dados em disco. Na pasta temporaria do sistema ou do usuário. E recuperar na proxima emissão. 

O Bef também tem a API para gravar as variaveis de usuário, deixo o link da API a baixo. Use com moderação. 

https://desenv.benner.com.br/bef/Reference/20.0/html/T_Benner_Tecnologia_Common_BennerVars.htm

por (929 pontos)

Existe em BEF, alguma maneira de pegar os dados da tabela e converter em "Json" ou "Xml"?

 

Algo parecido com isso: "

DatasetToXML(CurrentQuery.TQuery,"")

"

439 perguntas
486 respostas
350 comentários
473 usuários