Oi gente.
seguinte preciso ir para o proximo block e não estou lembrando alguém sabe???
tipo:
Get_Form_Property(curform,FIRST_BLOCK);
e
Get_Form_Property(curform,NEXT_BLOCK);
mas o next_block no get não funciona!!!!!
abraços,
next block
-
- Rank: Programador Sênior
- Mensagens: 47
- Registrado em: Qui, 07 Abr 2011 3:54 pm
- Localização: Jussara PR
David
-
- Rank: Analista Júnior
- Mensagens: 71
- Registrado em: Seg, 23 Mai 2011 11:56 am
- Localização: SP
então não dá por causa das classes... acabaria substituindo a trigger de alguma tela que não tivesse amarrada.
Mas acabei criando uma prc que deu certo.
abraços,
Valeu pela ajuda...
Mas acabei criando uma prc que deu certo.
PROCEDURE prc_block_Item IS
curform VARCHAR2(40);
first_blk VARCHAR2(40);
cur_blk VARCHAR2(40):='0';
orig_blk VARCHAR2(40);
cur_itm VARCHAR2(80);
orig_itm VARCHAR2(80);
first_itm VARCHAR2(80);
wrapped BOOLEAN := FALSE;
found BOOLEAN := FALSE;
Exit_Procedure EXCEPTION;
FUNCTION The_blk_After(blk VARCHAR2)
RETURN VARCHAR2 IS
BEGIN
RETURN Get_block_Property(NVL(blk,:System.Cursor_block),NEXTblock);
END;
FUNCTION The_Item_After(itm VARCHAR2)
RETURN VARCHAR2 IS
v_base varchar2(1000);
BEGIN
v_base := Get_Item_Property(itm,database_value);
if v_base IS NOT NULL then
RETURN orig_blk||'.'||Get_Item_Property(itm,NEXTITEM);
else
return null;
end if;
END;
BEGIN
curform := :System.Current_Form;
first_blk := Get_Form_Property(curform,FIRST_BLOCK);
orig_blk := :System.Cursor_block;
WHILE (orig_blk <> cur_blk) LOOP
IF Get_block_Property(NVL(orig_blk,:System.Cursor_block),UPDATE_ALLOWED) = 'FALSE' THEN
SET_block_PROPERTY (orig_blk,UPDATE_ALLOWED,PROPERTY_TRUE);
else
if orig_blk is not null then
cur_blk := The_blk_After(orig_blk);
end if;
END IF;
first_itm := Get_Block_Property( NVL(orig_blk,:System.Cursor_block), FIRST_ITEM );
orig_itm := :System.Cursor_Item;
cur_itm := The_Item_After(orig_itm);
WHILE (orig_itm <> cur_itm) LOOP
IF Get_Item_Property(cur_itm,UPDATE_ALLOWED) = 'FALSE' THEN
SET_ITEM_PROPERTY (cur_itm,UPDATE_ALLOWED,PROPERTY_TRUE);
ELSE
if orig_itm is not null then
cur_itm := The_Item_After(orig_itm);
end if;
END IF;
IF Get_Block_Property( orig_blk, LAST_ITEM ) = cur_itm THEN
RAISE Exit_Procedure;
ELSE
if orig_itm is not null then
orig_itm := The_Item_After(orig_itm);
end if;
if cur_itm is not null then
cur_itm := The_Item_After(cur_itm);
end if;
END IF;
END LOOP;
IF Get_Block_Property( curform, LAST_BLOCK ) = cur_blk THEN
RAISE Exit_Procedure;
ELSE
if orig_blk is not null then
orig_blk := The_blk_After(orig_blk);
end if;
if cur_blk is not null then
cur_blk := The_blk_After(cur_blk);
end if;
if orig_blk is null and orig_blk is null then
RAISE Exit_Procedure;
end if;
END IF;
END LOOP;
wrapped := TRUE;
RAISE Exit_Procedure;
EXCEPTION
WHEN Exit_Procedure THEN
NULL;
END;
abraços,
Valeu pela ajuda...
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 14 visitantes