Olá pessoal. Tenho um forms com um bloco pai com os dados do pedido e um bloco filho com os itens do pedido.
Tenho uma procedure que é chamada na trigger Post-Change do campo Código_Produto do bloco filho.
A procedure tem a seguinte função: Quando o item possuir preço com valor menor quer o ultimo pedido a linha do item deve aparecer em vermelho.
A procedure tem um cursor e faz um loop em cada linha do bloco verificando cada item do pedido.
Ao executar o form surge o erro: Illegal restricted in post change.
A minha dúvida é, como na post-change e when-validate-item não aceita o Go_block, next_record, first_record utilizados para o cursor percorrer as linhas do bloco, Onde eu poderei chamar esta procedure?
Na key-next-item do campo não resolve meu problema pois o usuário muitas vezes não navega neste bloco filho, ele apenas navega no bloco pai, o ideal seria que isto não dependesse de uma ação explícita do usuário, por isso na post-change seria ideal.
Conto com a sugestão de vocês
Obrigada
Illegal restricted in post change
- dr_gori
- Moderador
- Mensagens: 5013
- Registrado em: Seg, 03 Mai 2004 3:08 pm
- Localização: Portland, OR USA
- Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Pra esse tipo de coisa, eu tentaria deixar todos blocos BASE TABLE.
Aí no momento de fazer as validações, bastaria dar um POST que o programa faria todos os inserts pras tabelas sem comitar. Daí é possível fazer queries e verificações, sem afetar a posição.
Você pode usar Global Temporary Tables pra que cada sessão veja somente o que é seu. (sem misturar informações dos outros).
É uma idéia!
Aí no momento de fazer as validações, bastaria dar um POST que o programa faria todos os inserts pras tabelas sem comitar. Daí é possível fazer queries e verificações, sem afetar a posição.
Você pode usar Global Temporary Tables pra que cada sessão veja somente o que é seu. (sem misturar informações dos outros).
É uma idéia!
-
- Rank: Programador Sênior
- Mensagens: 54
- Registrado em: Sex, 27 Jan 2012 8:16 am
- Localização: Londres UK
Consegui resolver, eu não tinha observado antes mas éra muito simples.
Como os blocos são base table e há um relation, eu eliminei cursor e tudo que populava bloco, apenas chamei a função que retornava o resultado na post-change do primeiro campo do bloco filho. Funcionou.
Obrigada pela atenção!
Como os blocos são base table e há um relation, eu eliminei cursor e tudo que populava bloco, apenas chamei a função que retornava o resultado na post-change do primeiro campo do bloco filho. Funcionou.
Obrigada pela atenção!

-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes