Olá,
Existem dois novos campos do tipo datetime no Protheus,
são o ST_A_M_P e o IN_S_T_D eles são do tipo DATETIME e internos ( iguais ao RE_C_N_O )
Gostaria de apresentar ao usuário esses campos no browse, se utilizando de um campo virtual e chamando eles no X3_BROWSE e X3_RELACAO, porem por serem internos e do tipo datetime não estou conseguindo.
Alguém já teve essa necessidade e conseguiu através de alguma função converte-los a caracter e apresenta-los em browse ?
Obrigado
https://tdn.totvs.com/pages/viewpage.action?pageId=515681471
Edvar,
A documentação já cita que para retornar esses campos, você precisa fazer isso via query. Ela também cita que o campo será retornado no padrão de data do Protheus, ou seja, não possuirá a hora. Para retornar a hora, você deve fazer um CAST na query, assim como é também demonstrado na documentação:
https://tdn.totvs.com/pages/viewpage.action?pageId=515681471
Tendo essas informações em mãos, você poderá sim exibir esses dados no browse, sendo possível montar um browse de query, de tabela temporária ou criar um campo virtual e nesse criar uma função que faça a query e retorno o conteúdo.
A opção de fazer via query com campo virtual pode gerar um grande custo ao banco de dados, visto que cada linha do seu browse vai fazer uma query, se você usar os dois novos campos ( inserção e atualização ), cada linha do seu browse vai fazer duas novas querys, aí é só multiplicar pela quantidade de registros do browse e pensar no custo disso, se vale a pena etc.
Quanto a usar os campos X3_BROWSE e X3_RELACAO... O X3_RELACAO é o inicializador do campo, logo ele não entra nessa lógica.
Você deve criar o campo virtual via Configurador (SIGACFG), marcar para exibir no browse e informar um valor para o inicializador de browse (Inic. Browse), campo X3_INIBRW da SX3, esse valor será macro executado para cada linha do browse.
Daniel, estava tentando uma alternativa ao uso de query. Mas caso não tenha jeito e precise de query fica totalmente inviável em um browse.
Obrigado pela ajuda.