Árvore de páginas

Correção - Aplicação de filtro utilizando c-tree Server

Correção na interpretação de expressões de filtros utilizando c-tree Server.

Abrangência ERP 10

Situação

Utilização de filtro específico em tabela criada no formato c-tree, utilizando c-tree Server.

Ocorrência

Caso a expressão de filtro utilizada contenha a identificação do Alias aos quais pertencem os campos de filtro, especificados como variáveis (variáveis de Alias entre parênteses), após setar o filtro e reposicionar a tabela, a aplicação é encerrada com a ocorrência de erro "Ctree Error 598 - IO Error: 0 - Could not evaluate conditional expression.".

Observe o código fonte exemplo:

cTmpAlias := 'TMP'DbSelectArea(cTmpAlias)SET FILTER TO (cTmpAlias)->CPOC = 'AAA'
 

Correção

Realizado tratamento no engine de filtros para tratar corretamente a expressão de filtro para c-tree Server.

Informações adicionais

  • Caso a variável de Alias utilizada corresponda ao Alias atual, a utilização da expressão (cTmpAlias)-> para indicar que o campo do filtro pertence a este Alias é opcional, pois o nome de campo usado em um filtro sempre vai referenciar ao Alias atualmente selecionado para setar o filtro.
  • Existem expressões de filtro que, quando utilizam comparações ou funções AdvPL, em conjunto com expressões utilizando Alias dentro de uma variável, que ainda não são suportadas, e provocam esta ocorrência de erro, por exemplo DTOS( (ctmpAlias)->CAMPO ) =  "20010101" : Para estas condições,  é recomendável que seja removido o Alias dentro da variável, e caso seja realmente necessário o uso de um Alias variável dentro de uma expressão de filtro, utilizando um campo de uma outra tabela para fazer o filtro, que seja montada uma variável com a expressão completa como string, e o filtro seja setado com uma macro. Por exemplo : 

cTmpFiltro :=  "DTOS( " + cTmpAlias+ "->CAMPO ) > '20010101' " 
SET FILTER TO &(cFiltro)

  • Disponível a partir da build 7.00.090818P-091104

  • Sem rótulos