SetarFiltroSql
Define um filtro sql, personalizado pelo cliente, em tabelas do sistema ou de usuário.
Sintaxe: Funcao SetarFiltroSql(Alfa aTabela, Alfa aCampo, Alfa aFiltro);
Parâmetros:
Nome | Tipo | Descrição |
---|---|---|
aTabela | Alfa | Nome da tabela onde o filtro será definido. |
aCampo | Alfa | Nome do campo da tabela onde o filtro será definido. |
aFiltro | Alfa | Filtro sql que deverá ser definido no campo, ou vazio ("") para limpar o filtro do campo. |
Exemplo 1:
@ Para definir um filtro onde somente podem ser vistos clientes que tenham definição
para a empresa ativa @
Definir Alfa vAlfCodEmp;
Definir Alfa vFiltro;
IntParaAlfa(CodEmp, vAlfCodEmp);
vFiltro = "SELECT CODCLI FROM E085HCL WHERE CODEMP = " + vAlfCodEmp;
SetarFiltroSql("E085CAD", "CodCli", vFiltro);
@ Para limpar o filtro da tabela de cliente, campo código @
SetarFiltroSql("E085CAD", "CodCli", "");
Exemplo 2:
@ Para definir um filtro onde retorne somente derivações de produtos ativas@
SetarFiltroSql("E075DER","SITDER","'A'");
Observações:
- Esta função somente pode ser chamada através do identificador de regras GER/000SELEF01.
- O filtro deve ser um select completo, que retorne somente um campo, do mesmo tipo do campo informado em aCampo ou pode-se setar o filtro diretamente.
-
na tabela passando o campo e qual situação que ele deve estar.
- Uma vez que o filtro é definido em um campo, somente nas seguintes situações ele é
removido:
- Ao limpar o filtro explicitamente;
- Ao definir um novo filtro no mesmo campo;
- No logon de usuários ao sistema;
- No fechamento da instância do Gestão Empresarial | ERP.
- Para cada campo, de cada tabela, somente é possível definir um filtro de usuário. Ao definir um segundo filtro o primeiro é eliminado.
- Nem todas as telas têm suporte a estes filtros, caso for necessário que uma tela tenha suporte a um determinado filtro é necessário criar uma tarefa para implementação do suporte (criar uma tarefa por tela).
- Quando filtro é definido num determinado campo, não há garantias de que registros de
outras tabelas também considerem o filtro, sendo o ideal que se sete o filtro também
para aquela tabela.
Exemplo: Se for definido um filtro em que o fornecedor X não seja visível, não há garantias de que não seja possível visualizar as observações cadastradas para esse fornecedor X; - Após atribuir filtro em um campo, tal filtro pode causar a inviabilidade de se cadastrar novos registros na tabela, logo é sugerido que não sejam atribuídos filtros para usuários que cadastram informações.
- Quando a função de programador "SetarFiltroSql" for utilizada, somente será possível realizar uma troca de empresa/filial saindo do ERP e logando na empresa/filial desejada, pois os filtros indicados na função de programador não são limpos quando a troca de empresa/filial ocorre através do menu do ERP.