Referente a uma alteração no Ponto de Entrada M460MARK, que não está trazendo mais os filtro da tabela SC9.
Verificamos que na versão 11 após uma correção em uma falha encontrada nas classes e funções de browse não é mais possível sobrepor um filtro nativo sem utilizar o browse para isso.
Neste caso a rotina MATA461 utiliza a função FilBrowse() para refazer o filtro o que acaba não mantendo o filtro quando é chamado o ponto de entrada.
Este erro foi identificado pelo chamado TGMEUX, onde recebemos o seguinte feedback da equipe de Framework:
"Quando o browse possui um filtro nativo (criado por exemplo pelo FilBrowse), não pode ser possível trocar o filtro por fora (usando o SET FILTER TO direto na tabela, por exemplo). O correto é utilizar o browse para fazer os filtros, dessa forma todo o controle de filtro é responsabilidade exclusiva do browse."
Com esta alteração, na versão 11, em alguns momentos do fonte, para se utilizar do filtro tem que ser feito da seguinte forma:
**************************************************
User Function MBrwSA1()
Local cAlias := "SA1"
cFiltra := "A1_FILIAL = '"+xFilial("SA1")+"'"+" AND A1_EST = 'SP'"
cCadastro := "Cadastro de Clientes"
aRotina := {}
cCadastro := "Liberação de Titulos do Contas a Pagar "
aRotina := {{"Pesquisar" ,"PesqBrw" ,0,1},;
{"Visualizar" ,"AxVisual",0,2},;
{"Incluir" ,"AxInclui",0,3},;
{"Alterar", "AxAltera",0,4},;
{"TesteFil", "U_Testefil()",0,2}}
DbSelectArea("SA1")
mBrowse(6,1,22,75,cAlias,,,,,,,,,,,,,,cFiltra)
Return
User function Testefil()
Local oBrowse := GetMBrowse()
Local cFiltro2 := "SA1->A1_EST == 'PI'"
oBrowse:SetFilterDefault(cFiltro2)
Return()
**************************************************
Conforme explicado, para o incidente do ponto de entrada M460MARK na versão 11, deverá criar uma nova query na tabela SC9, antes de fazer o seu tratamento.
Abaixo segue um exemplo para obter as informações que podem auxiliar no filtro do ponto de entrada, no caso, utilizo as informações do pergunte MT461A que também é utilizado para fazer o filtro do Browse na rotina padrão.
**************************************************
USER FUNCTION M460MARK
Local lRet := MSGYESNO("M460MARK")
Pergunte("MT461A",.F.)
//Agora voce ira visualizar os parametros necessários para o filtro
//Por exemplo: MV_PAR11 -> 21/03/2013
Return lRet
**************************************************
Este artigo está publicado no byYou através do seguinte link:
https://totvs.byyou.com/artigos?space=ntecnologia&app_ByYouSocialArticle_articleId=799185250