A710FIL - Edita Expressão do Filtro

Linha de Produto:

Protheus

Segmento:

Manufatura

Módulo:

SIGAPCP - Planejamento e Controle da Produção

Parâmetro(s):


Nome
Tipo
Descrição
Default
Obrigatório Referência

PARAMIXB
Vetor
Array com os dados do filtro. O formato do array é: PARAMIXB[1] -> Álias do filtro. ; PARAMIXB[2] -> Expressão de filtro.


X


Idiomas:

Espanhol, Inglês

País(es):

Todos

Banco(s) de Dados:

Todos

Sistema(s) Operacional(is):

Todos

Ponto de Entrada

Localização:

Funções A710ProjOP() , A710ProjPed() , A710ProjSC() , A710ProjPC() , a710Proc()

Em que ponto:PE será chamado antes da IndRegua para os alias SC2, SC6, SC1, SC7 e SHC permitindo que a expressão filtro do IndRegua possa ser editada antes de sua execução.
Programa Fonte:MATA711.PRX

Sintaxe:

A710FIL - Edita Expressão do Filtro ( < PARAMIXB> ) --> cFiltro

Retorno:

cFiltro(caracter)

(Vide Observações)

Observações:

Retorno:

Será retornado a expressão que será utilizada na IndRegua.
Caso o retorno não seja do tipo caracter sera ignorado e assumido filtro padrão.
Note que a expressão do filtro poderá estar vazia em alguns casos.
Neste caso, testar isso ao acrescentar expressão no filtro, não incluindo "  .and. " antes da inserção da expressão desejada.

Exemplo: cFiltro := If(!Empty(cFiltro), ".And.", "") + 'C2+OBS = "TESTE"'


Exemplo:

USER FUNCTION A710FIL/*/PARAMIXB é um array composto pelo alias e expressao filtro.

O Alias deverá ser tratado para manipular apenas os alias desejados.

Os alias que serão tratados pelo PE são: SC2, SC6, SC1, SC7, SHC.Pelo SC2 o PE será acionado na projeção e na geração de OP (A710PROJOP e A710PROC).

Tratar isso usando ProcName(2) identificando onde fazer o tratamento desejado.

Prestar atenção na adição de expressão no filtro, acrescentando '.and.' apenas se a expressão filtro não estiver vazia.

Parâmetros MV_PAR01 a MV_PAR11 poderão ser 'lidos' nas variáveis 'nPar01' a 'nPar11'/*/Local cAlias

:= PARAMIXB[1]Local cFiltro

:= PARAMIXB[2]Local cOldAli

:= Alias()Local cProg

:= ProcName(2)If cProg = 'A710PROC'* Return(.T.)

// Qualquer retorno não caracter será// ignorado e usará o filtro padrão

EndifIf nPar01 == 2

// Projeção pelo início* Return(.T.)

EndifIf cAlias == 'SC2'cFiltro += If(!Empty(cFiltro), '.And.', '') + ''TESTE' $ C2_OBS'ElseIf cAlias == 'SC7'cFiltro += If(!Empty(cFiltro), '.And.', '') + ''TESTE' $ C7_OBS'

Endif

//* Se quiser 'checar' a expressão do filtro, salve//* a expressão em um arquivo conforme abaixo

//* MemoWrit('FILTRO.TXT', cFiltro)

//* Se alterar o Alias corrente, retorne ao alias inicial conforme abaixo

//* dbSelectArea(cOldAli)

Return(cFiltro)