Postagem em destaque
- Gerar link
- X
- Outros aplicativos
Protheus :: Advpl :: FINR530 :: PE F530QRY :: Eu acho que vi um gatinho!
Cliente gostaria que os Bancos/Agências/Contas usadas no Cadastro de Funcionários não aparecessem no Relatório de Movimento Financeiro Diário (FINR530). Sugeri-lhe:
- Deixar esses registros como Bloqueados (A6_BLOCKED=’1’); e
- Incluir um Filtro, na emissão do relatório, para só emitir os Bancos em que o Campo A6_BLOCKED seja diferente de ‘1’
Mas, considerando que o Filtro salvo não é restaurado automaticamente, dependendo da ação do usuário, perguntou se teria como isso ser feito automaticamente pelo sistema. A resposta, sim, poderemos implementar o Ponto de Entrada F530QRY (Normalmente utilizado para Filtrar os Registros da Tabela SE5) para esse fim.
Mas, aí vem a surpresa! Ao implementar o PE F530QRY quem aparece “Frajola”:
TOTVS Build 7.00.101202A-20110330 |
Mas porque “Frajola” resolve aparecer logo após a implementação do Ponto de Entrada? Vamos analisar o código:
Irá verificar se o Ponto de Entrada foi compilado e atribui valor inicial a cQueryADD que será utilizado na Complementação do “Filtro”
Se a Função Referente ao Ponto de Entrada foi encontrada e se o tipo da variável cQueryAdd for Caractere (e sempre vai ser), executa o “Ponto de Entrada” armazenando o retorno em cQueryADD (na realidade isso deveria estar a 2 linhas acima), mas, até aqui tudo bem. Frajola resolve aparecer quando:
O sistema tenta usar nIndex. nIndex não foi formalmente declarada em nenhum ponto do sistema, sua atribuição ocorre (ou ocorria) logo apos a chamada a IndRegua de forma a obter o retorno de RetIndex() que se TOPCONN será 0, caso contrário, o último índice da tabela SE5. Ocorre que, ou a “Vovó” deixou nIndex “de castigo”, restringindo-lhe àlguma condição, ou mandou-lhe passear e…
quando o sistema tenta usá-la… (@#&$*!) crash....
TOTVS Build 7.00.101202A-20110330 |
É um erro com “Solução/Contorno” (paliativo é claro). Ei-la: Usaremos _SetNamedPrvt() para fazer o trabalho do programador, e restituir nIndex onde de direito.
“Piu-Piu agradece”.
[]s
иαldσ dj
- Gerar link
- X
- Outros aplicativos
Comentários
Postagens mais visitadas
BlackTDN :: RLeg ~ Desvendando a Função ParamBox
- Gerar link
- X
- Outros aplicativos
Protheus :: Chamando Funções do Menu Diretamente e sem a Necessidade de Login
- Gerar link
- X
- Outros aplicativos
Naldo, por que usar _SetNamedPrvt ao invés de private ou public?
ResponderExcluirPelo simples fato de inserir a variável em seu contexto. Public iria usar um espaço desnecessário em memória e Private não atenderia à solução pela limitação de escopo. Já _SetNamedPrvt() (salve salve Weber por tê-la criado) irá "por a variável em seu devido lugar" e quando FINR350 "deixar de existir" levará com ele a variável.
ResponderExcluir