+2 votos
48 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 (148 pontos)
editado por | 48 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 (956 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,"")

"

Melhores Aug 2025
    200 pontos
    Melhores 2025 Jul 28 - Aug 03
    1. Larson

      156 Pontos

    2. danilo.pereira

      96 Pontos

    3. danilo.pereira

      96 Pontos

    4. danilo.pereira

      96 Pontos

    5. luciano.fronza

      61 Pontos

    6. luciano.fronza

      61 Pontos

    7. luciano.fronza

      61 Pontos

    8. diuari.molinari

      52 Pontos

    9. diuari.molinari

      51 Pontos

    10. diuari.molinari

      51 Pontos

    517 perguntas
    566 respostas
    389 comentários
    704 usuários