Ponto-de-Entrada: QNCFILPD - Alteração de Filtro
Abrangências: | Microsiga Protheus 8.11 , Microsiga Protheus 10 , Microsiga Protheus 11 |
Versões: | Microsiga Protheus 8.11 , Microsiga Protheus 10 , Microsiga Protheus 11 |
Compatível Países: | Todos |
Sistemas Operacionais: | Todos |
Compatível às Bases de Dados: | Todos |
Idiomas: | Português (Brasil) , Espanhol , Inglês |
Descrição:
Ponto de Entrada criado para mudar o Filtro da Browse.
Ponto de chamada: na montagem dos array com as pendências de Não conformidades / Plano de ação / ações corretivas do usuário logado.
Programa Fonte
QNCA050.PRW
Sintaxe
QNCFILPD - Alteração de Filtro ( < PARAMIXB> ) --> cExp
Parâmetros:
Nome | Tipo | Descrição | Default | Obrigatório | Referência | ||||||||||||
PARAMIXB | Array of Record | 1- Alias (QI2 - Não conformidades, QI3 - Plano de ação, QI5 - Ações corretivas x Ações) 2 - Query padrão (somente informado no Ambiente TOP Connect) | X |
Retorno
-
cExp(caracter)
- Retorno do filtro:
no ambiente TOP CONNECT será a expressao QUERY do Usuario,
no ambiente CODEBASE será a expressao XBASE para o filtro.
Exemplos
USER FUNCTION QNCFILPD() // Este ponto de entrada atua sobre a seleção das tabelas LOCAL cALias := '' // QI3, QI5 ou QI2 independes entre si e dependente LOCAL cQuery := '' // do banco de dados usado. Para TOP será sobreposta a query padrão, LOCAL cRet // para os demais (Não TOP) será aplicado filtro. cALias := PARAMIXB[1] if len(PARAMIXB) > 1 cQuery := PARAMIXB[2] // Valida PARAMIXB se existir PARAMIXB [2] recebe a query original e devolve a do usuario. endIf // se não existir devolve o filtro definido. If cQuery <> '' // É Top reescreve query's if cAlias == 'QI3' // Plano de ação cRet := "SELECT QI3.QI3_FILMAT,QI3.QI3_MAT,QI3.QI3_CODIGO,QI3.QI3_REV,QI3.QI3_STATUS,QI3.QI3_ABERTU, " cRet +=" QI3.QI3_ENCPRE,QI3.QI3_TIPO,QI3.R_E_C_N_O_,QI3.QI3_FILIAL,QI3.QI3_PROBLE " cRet +=" FROM " + RetSqlName("QI3") + " QI3 " cRet +=" WHERE QI3.QI3_FILMAT='"+cMatFil+"' AND QI3.QI3_MAT='"+cMatCod+"' AND " cRet +=" QI3.QI3_STATUS = '3' AND " //<<<<<<<< mudança da query padrão (Somente "Procede") cRet +=" QI3.QI3_ENCREA='"+SPACE(8)+"' ORDER BY " + SqlOrder("QI3_FILMAT+QI3_MAT") Alert (cRet) Endif if cAlias == 'QI5' // Ações corretivas x Ações cRet :=" SELECT QI5.QI5_FILMAT,QI5.QI5_MAT,QI5.QI5_PEND,QI5.QI5_CODIGO,QI5.QI5_REV, " cRet +=" QI5.QI5_STATUS,QI5.QI5_TPACAO,QI5.QI5_PRAZO,QI5.QI5_REALIZ,QI5.R_E_C_N_O_, " cRet +=" QI5.QI5_DESCRE,QI5.QI5_DESCCO,QI5.QI5_DESCOB,QI5.QI5_FILIAL " cRet +=" FROM " + RetSqlName("QI5")+" QI5 " cRet +=" WHERE QI5.QI5_FILMAT='"+cMatFil+"' AND QI5.QI5_MAT='"+cMatCod+"' AND " cRet +=" QI5.QI5_STATUS = '4' AND " //<<<<<<<< mudança da query padrão (Somente 100%) cRet +=" QI5.QI5_PEND='S' ORDER BY " + SqlOrder("QI5_FILMAT+QI5_MAT+QI5_PEND") Alert (cRet) Endif if cAlias == 'QI2' // Não conformidades cRet :=" SELECT QI2.QI2_FILRES,QI2.QI2_MATRES,QI2.QI2_STATUS,QI2.QI2_FILIAL,QI2.QI2_ANO,QI2.QI2_FNC,QI2.QI2_REV,QI2.QI2_ANEXO, " cRet +=" QI2.QI2_DESCR,QI2.R_E_C_N_O_,QI2.QI2_PRIORI,QI2.QI2_OCORRE," cRet +=" QI2.QI2_CONPRE,QI2.QI2_CONREA,QI2.QI2_DDETA " cRet +=" FROM " + RetSqlName("QI2") + " QI2 " cRet +=" WHERE QI2.QI2_FILRES='"+cMatFil+"' AND QI2.QI2_MATRES ='"+cMatCod+"' AND " cRet +=" QI2.QI2_STATUS = '3' AND " //<<<<<<<< mudança da query padrão (Somente "Procede") cRet +=" QI2.QI2_CONREA='"+SPACE(8)+"' ORDER BY " + SqlOrder("QI2_FILRES+QI2_MATRES+QI2_STATUS") Alert (cRet) Endif Else // Não é TOP Define Filtros if cAlias == 'QI3' .And. cQuery == '' cRet := " QI3_STATUS = '3'" Alert (cRet) end if cAlias == 'QI5' .And. cQuery == '' cRet := " QI5_STATUS = '4'" Alert (cRet) end if cAlias == 'QI2' .And. cQuery == '' cRet := " QI2_STATUS = '3'" Alert (cRet) end EndIf RETURN (cRet) // devolve nova query ou filtro.
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas