Illegal restricted in post change

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
djoq
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 54
Registrado em: Sex, 27 Jan 2012 8:16 am
Localização: Londres UK

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
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
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

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!
djoq
Rank: Programador Sênior
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! :D
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 6 visitantes