Tempo aproximado para leitura: 00:03:00 min
Ocorrência
Ao solicitar a impressão do Browse, de uma determinada rotina gera o erro or log.
Exemplo:
Temos um campo customizado com uma user function que percorre uma tabela e retorno o conteúdo do campo, a user function é executada no inicializador do browse.
Na Rotina FINA040 gera o erro abaixo.
variable does not exist "E1_PARCELA" on TRBREAK:EXECUTE(REPORT07.PRW)
Ambiente
Cross Segmentos - Backoffice (Linha Protheus) – ADVPL – A partir da versão 11.80
Causa
Esse erro pode ocorre em qualquer rotina do padrão ou customização, quando é selecionado uma tabela em uma user function, desposicionando área de trabalho do browse.
Solução
Esse erro " variable does not exist "E1_PARCELA" on TRBREAK:EXECUTE(REPORT07.PRW) " é só um exemplo, pois cada rotina é diferente, o sistema tenta acessar o campo "E1_PARCELA" que na sua estrutura está na "SE1", mas como na user function está sendo utilizada "DbSelectArea()" para selecionar uma tabela é necessário restaurar a área de trabalho, usando no inicio GetArea() e no final a RestArea()
#Include 'Protheus.ch'
User Function INFO()
Local aArea := GetArea() // Salva área atual para posterior restauração
// sua customização
DbSelectArea("TMP")
("TMP")->(DbCloseArea())
RestArea(aArea) // Restaura área atual
Return
1 Comentários