não limpar bloco()urgente

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
priajf
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 297
Registrado em: Ter, 21 Dez 2010 8:45 am
Localização: Florianopolis
Priscila Fernandes

Pessoal, ajuda........
Estou com uma tela, que tem varios text item. chamado Texte. E em cima tenho um outro text item, chamado texte 2. Quando eu insiro outro item no text item. O campo de cima limpa pedindo para colocar outro. COmo eu tiro isso. Quero que o campo texte 2 não altere, que deixe como esta. Como eu faço???


att
gfkauer
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 389
Registrado em: Ter, 27 Jul 2010 1:34 pm
Localização: Sapiranga - RS
Contato:
Quem falou que programar era fácil??

Quanto mais dificil for a implementação mais valorizado seu trabalho será!

Acessem: www.gfkauer.com.br

Existe algum tipo de relacionamento entre estar informações? Ou são apenas campos de livre digitação?

Qual destes dois seria o primeiro bloco na navegação?

Tenas alguma trigger do tipo when-validate-item, post-item ou post-change na aplicação? Onde? Qual sua função?

Tente responder estas questões e talvez possamos te ajudar, pois sua especificação foi um tanto quanto vaga...
priajf
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 297
Registrado em: Ter, 21 Dez 2010 8:45 am
Localização: Florianopolis
Priscila Fernandes

Os dois campos, possui uma LOV. São do mesmo bloco
O primeiro na navegaçao é o texte 2.
Existe essa trigger when-validate_item, que pede para mostrar o texte, que vai la na unidade de programas.
O texte 1, tambem possui essa trigger, pedindo para valida-lo, localizado tambem na unidade de programa
gfkauer
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 389
Registrado em: Ter, 27 Jul 2010 1:34 pm
Localização: Sapiranga - RS
Contato:
Quem falou que programar era fácil??

Quanto mais dificil for a implementação mais valorizado seu trabalho será!

Acessem: www.gfkauer.com.br

Mais uma pergunta:
É a mesma LOV para os dois campos?
gfkauer
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 389
Registrado em: Ter, 27 Jul 2010 1:34 pm
Localização: Sapiranga - RS
Contato:
Quem falou que programar era fácil??

Quanto mais dificil for a implementação mais valorizado seu trabalho será!

Acessem: www.gfkauer.com.br

Sua tela se parece com isto?
-------------------
| Text2 |
-------------------

-------------------
| Text1 |
-------------------
| Text1 |
-------------------
| Text1 |
-------------------

onde os dois campos estão dentro de um unico bloco, e são preenchidos com origens(LOVs) diferentes é isto?
priajf
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 297
Registrado em: Ter, 21 Dez 2010 8:45 am
Localização: Florianopolis
Priscila Fernandes

Exatamente.
Queria mandar uma imagem, mais não consigo. POsso mandar pro seu email?
gfkauer
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 389
Registrado em: Ter, 27 Jul 2010 1:34 pm
Localização: Sapiranga - RS
Contato:
Quem falou que programar era fácil??

Quanto mais dificil for a implementação mais valorizado seu trabalho será!

Acessem: www.gfkauer.com.br

Não tem nescessidade.
ACHO que já sei o que se passa na sua aplicação.

Você criou um unico bloco, onde o primeiro campo (Text2) deveria ter a mesma informação para todos os campos Text1.
Desta forma que você criou não funciona, pois quando você insere uma nova linha no text1 ele entende que esta trocando de registro no bloco, e como o campo text2 é do mesmo bloco ele pede um valor para o novo registro, possivelmente se você navegar para os outros registro verá que neles já existem informações.

Para chegar ao resultado que você busca o correto é criar 2 blocos relacionados, onde o primeiro bloco (contendo text2) teria N filhos (text1). Ai quando tu criar um novo registro filho ele manteria o mesmo pai.
priajf
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 297
Registrado em: Ter, 21 Dez 2010 8:45 am
Localização: Florianopolis
Priscila Fernandes

Isso mesmo, que preciso.
Tenho um bloco chamado AUX. E o bloco pai.
Preciso que os itens do formulario fica no aux??
Como que seria o codigo.
Sou novata
priajf
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 297
Registrado em: Ter, 21 Dez 2010 8:45 am
Localização: Florianopolis
Priscila Fernandes

Eu já fiz da seguinte forma, mais não deu certo
Passei para o AUX, o text item, a lov. E criei um outro no bloco pai.
Mais não deu certo,. Não traz dados salvos já no banco. E não deixa eu inserir. Coloquei no insert assim....

:bloco_pai.cd_texte2 := :aux.cd_texte2;
priajf
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 297
Registrado em: Ter, 21 Dez 2010 8:45 am
Localização: Florianopolis
Priscila Fernandes

Da esses erros
FRM-40202 - O campo deve ser informado - 'Ele é obrigatorio'
FRM - 41003 - Esta função não pode ser executada aqui
gfkauer
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 389
Registrado em: Ter, 27 Jul 2010 1:34 pm
Localização: Sapiranga - RS
Contato:
Quem falou que programar era fácil??

Quanto mais dificil for a implementação mais valorizado seu trabalho será!

Acessem: www.gfkauer.com.br

Bom, eu faria o sequinte:

Criaria o Bloco1 non base table e apenas com o campo text2(campo que fica na parte superior do seu formulario).

Criaria o Bloco2 base table com ambos os campos, mas apenas o campo text1 (multi line da parte inferior do formulário) visivel.

No bloco2 criaria uma trigger do tipo WHEN-NEW-RECORD-INSTANCE onde alimentaria o campo do bloco1 com o valor do text2.

No unico campo do bloco1 criaria uma trigger WHEN-VALIDATE-ITEM que alimentasse o campo origem.

MAS ATENÇÃO:
Pela descrição que tu fez da tela eu só consegui imaginar seu formulário de duas formas:
1: Tabela Unica - Todos os campos em uma tabela, o que te faria ter que digitar um valor text2 para cada valor text1.
2:Multi Table - Cada coluna seria originada de uma tabela diferente onde a tabela superior fosse pai da infeior, desta forma funcionaria sem maiores problemas o que lhe falei anteriormente.
priajf
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 297
Registrado em: Ter, 21 Dez 2010 8:45 am
Localização: Florianopolis
Priscila Fernandes

Não adianta, não consigui. Coloco esse campo em outro bloco. Só que esse formulario, tem varias condições. Mais vou tentando aqui. Se alguém souber de mais alguma coisa. Brigadao ai gfkauer
priajf
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 297
Registrado em: Ter, 21 Dez 2010 8:45 am
Localização: Florianopolis
Priscila Fernandes

Meu caro colega, consegui fazer, Porem não salva no banco. Sabe me dizer o porque. Só não coloque o when - new - record - instance, O que ele vai fazer necessariamente.
gfkauer
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 389
Registrado em: Ter, 27 Jul 2010 1:34 pm
Localização: Sapiranga - RS
Contato:
Quem falou que programar era fácil??

Quanto mais dificil for a implementação mais valorizado seu trabalho será!

Acessem: www.gfkauer.com.br

É dificil de definir o porque não salva no banco já que não sei como você veio a resolver...
priajf
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 297
Registrado em: Ter, 21 Dez 2010 8:45 am
Localização: Florianopolis
Priscila Fernandes

Coloquei os seguintes gatilhos.
Pre-Insert, contendo:

Selecionar tudo

:bloco1.text01 := :blocoaux.text01;
pre-update a mesma coisa
e no validate item coloquei validar_campo;
priajf
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 297
Registrado em: Ter, 21 Dez 2010 8:45 am
Localização: Florianopolis
Priscila Fernandes

Ainda estou com problema
VAmos la
TEnho tres blocos

Pessoa_juridica
AUX - não é bem um bloco. Não esta no banco
pessoa_fisica

Coloquei um campo no aux fica localizado no formulario. Esse campo é da pessoa_fisica
Porem já fiz. Coloquei um pre_insert no bloco pessoa_Fisica.

Selecionar tudo

:pessoa_fisica.cd_pessoafisica := :aux.cd_pessoafisica;
Porem esta dando esse errro. FRM-40505.

O que pode estar errado
priajf
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 297
Registrado em: Ter, 21 Dez 2010 8:45 am
Localização: Florianopolis
Priscila Fernandes

gfkauer - Consegui fazer agora. O que acontecia
Quando eu colocava o campo no bloco AUX.
os campos do bloco 2, ficavam como não pertencia a um banco. Alterei, deu certo, esta salvando no banco beleza.
TEm um problema agora:

Quando eu digito a mesma pessoa fisica, ele da erros, e não mostrar o que salvei por ultimo. MAis ta pra salvar tudo certo. Só não mostra o que salvei por exemplo, a tres dias atraz. sabe como posso resolver?
TEnho trigger, insert, update, query. FAZENDO:

Selecionar tudo

:AUX.TEXT1 := :BLOCO2.TEXT2;
priajf
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 297
Registrado em: Ter, 21 Dez 2010 8:45 am
Localização: Florianopolis
Priscila Fernandes

BOm, brigada ai pela ajuda.
Consegui.
Responder
  • Informação