- Este tópico contém 7 respostas, 2 vozes e foi atualizado pela última vez 11 anos, 3 meses atrás por mpungan.
-
AutorPosts
-
27 de setembro de 2013 às 9:30 pm #105923mpunganParticipante
Pessoal, como meus teste com o forms 10g não evoluíram resolvi trocar a versão, instalei a versão abaixo do forms:
Forms [32 Bits] Versão 6.0.8.11.3Consegui compilar os arquivos PLL e MMB, porém quando compilo os FMB, recebe a seguinte mensagem:
Z:>type AGE0000.err
Form: AGE
FRM-30085: NÒo Ú possÝvel ajustar a tela para saÝda.Alguém saberia me dizer qual é o problema ou como solucionar esse erro.
Mpungan
27 de setembro de 2013 às 11:43 pm #105924mpunganParticipantePACKAGE BODY CGLT$TAB_BLOCKS IS
———————————————————————-
— These are the different Types used to define the package variables
———————————————————————-— Type for table of stacked canvases for a named tab
type stack_canvas_type is table of varchar2(50) INDEX BY BINARY_INTEGER;——————————————————
— These are the actual variables used in the code
——————————————————
stack_cvs stack_canvas_type; — PL/SQL table with all stacked canvases with name CG$POPUP_ that
— relate to any of the tabs——————————————————————————————————-
FUNCTION CGLT$FND_MASTER_TAB_CVS(l_item in VARCHAR2) RETURN VARCHAR2 ISc_val VARCHAR2(200);
item_cvs VARCHAR2(61) := get_item_property(l_item, ITEM_CANVAS);
r_grp RecordGroup := Find_Group(‘CGLT$CVS_DATA’); — record group containing tab data
r_count number := Get_Group_Row_Count(r_grp); — and the number of records in itBEGIN
FOR i IN 1..r_count LOOPc_val := Get_Group_Char_Cell(‘CGLT$CVS_DATA.MASTER_TAB’, i);
IF instr(upper(item_cvs), c_val) > 0 THEN
RETURN c_val;
END IF;c_val := Get_Group_Char_Cell(‘CGLT$CVS_DATA.PAGE’, i);
IF instr(upper(item_cvs), c_val) > 0 THEN
c_val := Get_Group_Char_Cell(‘CGLT$CVS_DATA.MASTER_TAB’, i);
RETURN c_val;
END IF;c_val := Get_Group_Char_Cell(‘CGLT$CVS_DATA.STACK_CANVAS’, i);
IF instr(upper(item_cvs), c_val) > 0 THEN
c_val := Get_Group_Char_Cell(‘CGLT$CVS_DATA.MASTER_TAB’, i);
RETURN c_val;
END IF;END LOOP;
RETURN null;RETURN NULL; EXCEPTION
WHEN OTHERS THEN
message(‘Unexpected Error in CGLT$FND_MASTER_TAB_CVS’);
pause;RETURN NULL; END CGLT$FND_MASTER_TAB_CVS;
——————————————————————————————————–
FUNCTION CGLT$FND_NAV_ITEM(in_tab in varchar2) RETURN VARCHAR2 ISc_val VARCHAR2(200);
r_grp RecordGroup := Find_Group(‘CGLT$CVS_DATA’); — record group containing tab data
r_count number := Get_Group_Row_Count(r_grp); — and the number of records in itBEGIN
FOR i IN 1..r_count LOOP
c_val := Get_Group_Char_Cell(‘CGLT$CVS_DATA.NAME’, i);IF c_val = upper(in_tab) THEN
c_val := Get_Group_Char_Cell(‘CGLT$CVS_DATA.NAV_ITEM’, i);
return c_val;
END IF;END LOOP;
RETURN null;RETURN NULL; EXCEPTION
WHEN OTHERS THEN
message(‘Unexpected Error in CGLY$FND_NAV_ITEM’);
pause;
RETURN NULL; END CGLT$FND_NAV_ITEM;——————————————————————————————————-
FUNCTION CGLT$FND_TAB(in_block in varchar2) RETURN VARCHAR2 ISc_val VARCHAR2(200);
r_grp RecordGroup := Find_Group(‘CGLT$CVS_DATA’); — record group containing tab data
r_count number := Get_Group_Row_Count(r_grp); — and the number of records in itBEGIN
FOR i IN 1..r_count LOOP
c_val := Get_Group_Char_Cell(‘CGLT$CVS_DATA.BLOCKS’, i);IF instr(c_val,upper(in_block)) > 0 THEN
c_val := Get_Group_Char_Cell(‘CGLT$CVS_DATA.NAME’, i);
RETURN c_val;
END IF;END LOOP;
RETURN null;RETURN NULL; EXCEPTION
WHEN OTHERS THEN
message(‘Unexpected Error in CGLT$FND_NAV_ITEM’);
pause;
RETURN NULL; END CGLT$FND_TAB;——————————————————————————————————-
FUNCTION CGLT$FND_TAB_STACK_CVS(in_tab in varchar2) RETURN CGLT$TAB_BLOCKS.stack_canvas_type ISc_val VARCHAR2(200);
l_start number := 1;
l_end number;
stck_cnvs CGLT$TAB_BLOCKS.stack_canvas_type;
j number := 1;
r_grp RecordGroup := Find_Group(‘CGLT$CVS_DATA’); — record group containing tab data
r_count number := Get_Group_Row_Count(r_grp); — and the number of records in itBEGIN
FOR i IN 1..r_count LOOP
c_val := Get_Group_Char_Cell(‘CGLT$CVS_DATA.NAME’, i);IF c_val = upper(in_tab) THEN
————————————–
— Is there more than one stacked canvas for this tab
————————————–
c_val := Get_Group_Char_Cell(‘CGLT$CVS_DATA.STACK_CANVAS’, i);
l_end := instr(c_val,’,’);IF l_end > 0 THEN
LOOP
stck_cnvs(j) := substr(c_val,l_start,l_end – l_start);l_start := l_end + 1;
l_end := instr(c_val,’,’,l_start);j := j + 1; — point to next canvas
————————————–
— If Last stacked canvas then return the table of stacked canvases
————————————–
IF l_end = 0 THEN
stck_cnvs(j) := substr(c_val,l_start);
RETURN stck_cnvs;
END IF;
END LOOP;————————————–
— If there is only one stacked canvas for the tab
— not necessary to loop
————————————–
ELSE
IF (c_val IS NOT NULL) THEN
stck_cnvs(j) := c_val;
return stck_cnvs;
END IF;
END IF;
END IF;
END LOOP;
RETURN stck_cnvs;RETURN NULL; EXCEPTION
WHEN OTHERS THEN
message(‘Unexpected Error in CGLT$FND_TAB_STACK_CVS’);
pause;
RETURN NULL; END CGLT$FND_TAB_STACK_CVS;——————————————————————————————————-
PROCEDURE CGLT$NEW_BLOCK ISl_tab varchar2(50) := CGLT$FND_TAB(name_in(‘system.trigger_block’));
l_item varchar2(100) := name_in(‘system.cursor_item’);
l_stack_canvases CGLT$TAB_BLOCKS.stack_canvas_type; — List of stacked canvases for the new active tab
tab_win VARCHAR2(61);
tab_cvs VARCHAR2(61);
c_val VARCHAR2(200);
r_grp RecordGroup := Find_Group(‘CGLT$CVS_DATA’); — record group containing tab data
r_count number := Get_Group_Row_Count(r_grp); — and the number of records in itBEGIN
tab_cvs := CGLT$FND_MASTER_TAB_CVS(l_item);
IF (tab_cvs IS NOT NULL) THEN
IF l_tab IS null THEN
l_tab := get_canvas_property(tab_cvs,topmost_tab_page);
END IF;set_canvas_property(tab_cvs,topmost_tab_page,l_tab);
l_stack_canvases := CGLT$FND_TAB_STACK_CVS(l_tab);————————————–
— This shouldn’t be necessary, but due to some unexpected behavior
— this workaround makes sure the cursor is still in the item that it
— was in before we changed the active tab
————————————–
go_item(l_item);FOR i IN 1..r_count LOOP
c_val := Get_Group_Char_Cell(‘CGLT$CVS_DATA.MASTER_TAB’, i);
IF (c_val = tab_cvs) THEN
tab_win := Get_Group_Char_Cell(‘CGLT$CVS_DATA.WINDOW’, i);
EXIT;
END IF;
END LOOP;FOR i IN 1..r_count LOOP
c_val := Get_Group_Char_Cell(‘CGLT$CVS_DATA.WINDOW’, i);
IF (c_val = tab_win) THEN
c_val := Get_Group_Char_Cell(‘CGLT$CVS_DATA.MASTER_TAB’, i);
hide_view(c_val);
END IF;
END LOOP;show_view(tab_cvs);
IF l_stack_canvases.count > 0 THEN
FOR i IN l_stack_canvases.first..l_stack_canvases.last LOOP
show_view(l_stack_canvases(i));
END LOOP;
END IF;
END IF;
END CGLT$NEW_BLOCK;——————————————————————————————————-
PROCEDURE CGLT$TAB_CHANGED isl_stack_canvases CGLT$TAB_BLOCKS.stack_canvas_type; — List of all stacked canvases for the active tab
l_nav_item varchar2(100); — item to navigate to for the active tab
l_tab varchar2(50) := name_in(‘system.tab_new_page’); — The new active tab
j integer := 1;
tab_cvs VARCHAR2(61);
tab_win VARCHAR2(61);
c_val VARCHAR2(200);
r_grp RecordGroup := Find_Group(‘CGLT$CVS_DATA’); — record group containing tab data
r_count number := Get_Group_Row_Count(r_grp); — and the number of records in itBEGIN
l_stack_canvases := CGLT$FND_TAB_STACK_CVS(l_tab);
l_nav_item := CGLT$FND_NAV_ITEM(l_tab);
tab_cvs := CGLT$FND_MASTER_TAB_CVS(l_nav_item);IF (l_nav_item IS NOT NULL) THEN
go_item(l_nav_item);
END IF;IF NOT form_success THEN
set_canvas_property(tab_cvs,topmost_tab_page,name_in(‘system.tab_previous_page’));
go_item(name_in(‘system.trigger_item’));————————————–
— If the master block is in Enter-Query and the user tries
— to click a different tab than the current one, show the views for
— the current tab since this is not allowed
————————————–
IF name_in(‘system.mode’) = ‘ENTER-QUERY’ THEN— retrieve list of all stacked canvases for the previously active tab
l_stack_canvases := CGLT$FND_TAB_STACK_CVS(get_canvas_property(tab_cvs,topmost_tab_page));IF l_stack_canvases.count > 0 THEN
FOR rec in 1..l_stack_canvases.last LOOP
show_view(l_stack_canvases(rec));
END LOOP;
END IF;ELSE
raise form_trigger_failure;
END IF;ELSE
FOR i IN 1..r_count LOOP
c_val := Get_Group_Char_Cell(‘CGLT$CVS_DATA.MASTER_TAB’, i);
IF (c_val = tab_cvs) THEN
tab_win := Get_Group_Char_Cell(‘CGLT$CVS_DATA.WINDOW’, i);
EXIT;
END IF;
END LOOP;FOR i IN 1..r_count LOOP
c_val := Get_Group_Char_Cell(‘CGLT$CVS_DATA.WINDOW’, i);
IF (c_val = tab_win) THEN
c_val := Get_Group_Char_Cell(‘CGLT$CVS_DATA.MASTER_TAB’, i);
hide_view(c_val);
END IF;
END LOOP;show_view(tab_cvs);
IF l_stack_canvases.count > 0 THEN
FOR rec in 1..l_stack_canvases.last LOOP
show_view(l_stack_canvases(rec));
END LOOP;
END IF;
END IF;END CGLT$TAB_CHANGED;
END CGLT$TAB_BLOCKS;
Quando compilo a library OFGTAB.pll da o erro da package acima nas linha abaixo:
Erro 382 na linha 159, coluna 8 a expressão é do tipo incorreto
Erro 0 na linha 159, coluna 1 Statement ignored
Erro 382 na linha 163, coluna 8 a expressão é do tipo incorreto
Erro 0 na linha 163, coluna 1 Statement ignoredFalha ao gerar a biblioteca.
FRM-30312: Falha na compilação da biblioteca.Se alguém puder ajudar, agradeço.
Att.
Mpungan
27 de setembro de 2013 às 11:48 pm #105925mpunganParticipanteA parte do código que esta com problema é essa abaixo:
RETURN NULL; EXCEPTION
WHEN OTHERS THEN
message(‘Unexpected Error in CGLT$FND_TAB_STACK_CVS’);
pause;
RETURN NULL; END CGLT$FND_TAB_STACK_CVS;Mpungan
28 de setembro de 2013 às 12:00 am #105926Sergio WilliansMestre@mpungan
Quanto mais antiga a versão do forms, mais problemas você vai ter. Pois geralmente apresentam uma série de incompatibilidades com os SOs mais atuais.
Outra coisa é o idioma da instalação. Instale sempre em inglês, pois fica mais fácil encontrar os erros em pesquisa. Sinceramente, eu nunca trabalhei em uma empresa com o Forms instalado em português. Olha que eu já trabalho com a ferramenta desde 1998.Esse erro é bem genérico. Pode ser um canvas maior que a window. Falta de window definida no canvas property, campos não enquadrados no tamanho da window, etc…
Comece a busca por esses pontos. Pode ser que encontre alguma dessas opções.Abraço
28 de setembro de 2013 às 12:06 am #105927Sergio WilliansMestreNessas linhas que você enviou não há erro de sintaxe. O erro deve estar em outro ponto.
Verifique se todos os objetos (Record Groups, LOVs, Canvas, etc..) foram abertos corretamente no forms. Se algum deles for referenciado e você não tiver os objetos no forms path, ele abre o forms mas não os objetos dessa referência.30 de setembro de 2013 às 4:45 pm #105931mpunganParticipanteMas o mais estranho é que com o Developer 10g, eu não conseguia compilar os arquivos PLL (library) e MMB (menu) somente conseguia compilar os FMB (forms). E com essa versão consigo compilar os PLL(library) e MMB(menu) e os FMB(forms) não consigo. Verifique a questão de path, aparentemente esta tudo correto.
Como que eu consigo conferir essas questões abaixo, é alguma configuração que deve ser ajustada no forms?
Pode ser um canvas maior que a window. Falta de window definida no canvas property, campos não enquadrados no tamanho da window, etc…Mpungan
1 de outubro de 2013 às 2:59 pm #105934Sergio WilliansMestreEu tenho um Oracle VM com windows XP em casa rodando Forms 6. Roda liso !
Desisti de fazer ele funcionar a contento no 7. É uma perda de tempo. Ás vezes você vai em busca de um erro, que na verdade é um incompatibilidade.Respondendo a sua pergunta, vá em Canvases, clique 2 vezes no canvas que você entrará em modo de edição. Você verá uma linha preta em volta do canvas, essa é a window.
Para acessar o property desses objetos, basta clicar em algum deles e dar F422 de outubro de 2013 às 9:58 pm #106066mpunganParticipanteNos resolvemos esses erros gerando o forms novamente. Agora esta tudo certo.
-
AutorPosts
- Você deve fazer login para responder a este tópico.