Boas pessoal,
Estive a pesquisar neste e noutros fóruns se havia sugestões para resolver o meu problema, mas não vi nada de especifico para este caso.
O caso é o seguinte:
Estou a trabalhar com o ORACLE FORMS 10g.
Quero ter um FORM onde tenham três separadoes (TAB CANVAS com 3 páginas) e em cada um dos separadores devem aparecer um STACKED CANVAS diferente.
O problema concreto que me está a acontecer tem a ver com o facto de ao criar um STACKED CANVAS para aparecer apenas no primeiro separador, ele aparece tanto no primeiro como nos outros dois separadores.
Alguém sabe como posso contornar isto.
Cumprimentos
Colocar stacked canvas dentro de um tab canvas???
- 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
Veja se essa dica te ajuda:
http://glufke.net/oracle/viewtopic.php?t=1223
Uma outra forma é colocar mostrar o stacked canvas APOS o usuário mudar o tab. (algo do tipo : SHOW_VIEW )
Daí mostra seu stacked, vai parecer que o stacked está dentro do tab.
http://glufke.net/oracle/viewtopic.php?t=1223
Uma outra forma é colocar mostrar o stacked canvas APOS o usuário mudar o tab. (algo do tipo : SHOW_VIEW )
Daí mostra seu stacked, vai parecer que o stacked está dentro do tab.
-
- Rank: Programador Júnior
- Mensagens: 15
- Registrado em: Seg, 13 Jul 2009 9:20 am
- Localização: Esposende
novoa
Caro dr_gori,
Desde já o meu obrigado pela sua colaboração.
Eu já tinha visto a dica do link que me indicou, mas para este caso em particular não serve, porque o objectivo é diferente. Dessa dica percebi que o objectivo era colocar um STACKED CANVAS num TAB CANVAS com apenas um separador.
Acontece que no meu caso, existem 3 separadores e ao criar um STACKED CANVAS ele fica disponivel automaticamente nos 3 separadores, quando o que eu quero é que apenas apareça no primeiro separador.
Se não se importar ser mais especifico na segunda forma que me indicou agradecia.
Será que a solução está nas propriedades de algum CANVAS entretanto criado ou será apenas solucionado com recurso a instruções de código???
Possivelmente isto pode-se resolver através de instruções num trigger, mas não faço ideia por onde começar. Se me puder ajudar, agradecia imenso.
Não sei me estou a explicar convenientemente. Nesse caso poderei tentar explicar ainda mais detalhadamente o que pretendo.
Cumprimentos
Desde já o meu obrigado pela sua colaboração.
Eu já tinha visto a dica do link que me indicou, mas para este caso em particular não serve, porque o objectivo é diferente. Dessa dica percebi que o objectivo era colocar um STACKED CANVAS num TAB CANVAS com apenas um separador.
Acontece que no meu caso, existem 3 separadores e ao criar um STACKED CANVAS ele fica disponivel automaticamente nos 3 separadores, quando o que eu quero é que apenas apareça no primeiro separador.
Se não se importar ser mais especifico na segunda forma que me indicou agradecia.
Será que a solução está nas propriedades de algum CANVAS entretanto criado ou será apenas solucionado com recurso a instruções de código???
Possivelmente isto pode-se resolver através de instruções num trigger, mas não faço ideia por onde começar. Se me puder ajudar, agradecia imenso.
Não sei me estou a explicar convenientemente. Nesse caso poderei tentar explicar ainda mais detalhadamente o que pretendo.
Cumprimentos
- 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
A outra sugestão é a seguinte:
* Crie seu tab-canvas
* Crie uma trigger WHEN-TAB-PAGE-CHANGED
Nessa trigger, você verifica qual TAB foi clicada. (usando GET_CANVAS_PROPERTY('nome_do_canvas', topmost_tab_page);
* Depois de saber qual tab o usuário clicou, você coloca um IF. Se o usuário clicou no tab1, faz um SHOW_VIEW e mostra o stacked_canvas1. Se clicou no tab2, mostra o stacked_canvas2...
Assim você pode "simular" que seu tab-page possui stacked canvas nele. (mas é tudo controlado manualmente).
* Crie seu tab-canvas
* Crie uma trigger WHEN-TAB-PAGE-CHANGED
Nessa trigger, você verifica qual TAB foi clicada. (usando GET_CANVAS_PROPERTY('nome_do_canvas', topmost_tab_page);
* Depois de saber qual tab o usuário clicou, você coloca um IF. Se o usuário clicou no tab1, faz um SHOW_VIEW e mostra o stacked_canvas1. Se clicou no tab2, mostra o stacked_canvas2...
Assim você pode "simular" que seu tab-page possui stacked canvas nele. (mas é tudo controlado manualmente).
-
- Rank: Programador Júnior
- Mensagens: 15
- Registrado em: Seg, 13 Jul 2009 9:20 am
- Localização: Esposende
novoa
Mais uma vez obrigado dr_gori!
Então é assim:
- Eu tenho um CONTENT CANVAS que se chama CONTENT_CANVAS;
- Dentro desse CONTENT CANVAS existe o TAB CANVAS que se chama precisamente TAB_CANVAS;
- Esse TAB CANVAS tem 3 abas;
- A 1ª aba chama-se ABA_1, a 2ª ABA_2 e a 3ª ABA_3;
- Existem os 3 STACKED CANVAS, que se chamam, respectivamente, STK_CANVAS_PAGE1, STK_CANVAS_PAGE2, STK_CANVAS_PAGE3
A ideia é a seguinte:
Tenho três blocos (BLOCO1, BLOCO2 e BLOCO3). Uma parte dos campos do BLOCO1 devem aparecer na ABA_1 e os outros na STK_CANVAS_PAGE1, que corresponde à STACKED CANVAS que deve aparecer somente na ABA_1, acontecendo o mesmo para os outros 2 blocos.
Penso que o que me indicou foi criar um trigger geral a todo o FORM, chamado WHEN-TAB-PAGE-CHANGED e lá colocar código, certo?
Acho que é pedir muito mas poderia-me redigir esse código, ou então dar-me um empurrão para perceber melhor o que é para fazer e como fazer??
Cumprimentos
Então é assim:
- Eu tenho um CONTENT CANVAS que se chama CONTENT_CANVAS;
- Dentro desse CONTENT CANVAS existe o TAB CANVAS que se chama precisamente TAB_CANVAS;
- Esse TAB CANVAS tem 3 abas;
- A 1ª aba chama-se ABA_1, a 2ª ABA_2 e a 3ª ABA_3;
- Existem os 3 STACKED CANVAS, que se chamam, respectivamente, STK_CANVAS_PAGE1, STK_CANVAS_PAGE2, STK_CANVAS_PAGE3
A ideia é a seguinte:
Tenho três blocos (BLOCO1, BLOCO2 e BLOCO3). Uma parte dos campos do BLOCO1 devem aparecer na ABA_1 e os outros na STK_CANVAS_PAGE1, que corresponde à STACKED CANVAS que deve aparecer somente na ABA_1, acontecendo o mesmo para os outros 2 blocos.
Penso que o que me indicou foi criar um trigger geral a todo o FORM, chamado WHEN-TAB-PAGE-CHANGED e lá colocar código, certo?
Acho que é pedir muito mas poderia-me redigir esse código, ou então dar-me um empurrão para perceber melhor o que é para fazer e como fazer??
Cumprimentos
-
- Rank: Programador Júnior
- Mensagens: 15
- Registrado em: Seg, 13 Jul 2009 9:20 am
- Localização: Esposende
novoa
Eu tentei fazer por mim próprio mas estou a enfrentar algumas dificuldades.
1- Criei um trigger WHEN-TAB-PAGE-CHANGED na seccção dos triggers gerais a todo o FORM.
2- Lá dentro coloquei o seguinte código que não está a fazer nada daquilo que eu quero:
Alguém me ajuda a resolver isto de acordo com o enunciado que já coloquei aqui??
Agradecia imenso
1- Criei um trigger WHEN-TAB-PAGE-CHANGED na seccção dos triggers gerais a todo o FORM.
2- Lá dentro coloquei o seguinte código que não está a fazer nada daquilo que eu quero:
DECLARE
tp_nm VARCHAR2(30);
tp_id TAB_PAGE;
tp_lb VARCHAR2(30);
BEGIN
tp_nm := GET_CANVAS_PROPERTY('TAB_CANVAS', topmost_tab_page);
tp_id := FIND_TAB_PAGE(tp_nm);
tp_lb := GET_TAB_PAGE_PROPERTY(tp_id, label);
IF tp_lb = 'ABA_1' THEN
SHOW_VIEW ('STK_CANVAS_PAGE1');
ELSIF tp_lb = 'ABA_2' THEN
SHOW_VIEW ('STK_CANVAS_PAGE2');
ELSIF tp_lb = 'ABA_3' THEN
SHOW_VIEW ('STK_CANVAS_PAGE3');
ELSE null;
END IF;
END;
Agradecia imenso
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes