我开始学习PLSQL Oracle,试图找到一种将值从一种形式复制到另一种形式的方法。
我有两种形式,首先是form (A)
进行一些计算,在某些情况下,该计算不能在形式(A)中进行编辑。
我想到要制作form (B)
并将form (A)
的数据传递给它们,然后将其传递回form (A)
这是我的代码和想法的图片。
begin
set_block_property('POL',UPDATE_ALLOWED,PROPERTY_TRUE);
update POL set
POLICA =: TENDER.POLICA,
VOZAC = TENDER.VOZAC,
BR_VOZACA = TENDER.BR_VOZACA,
NEZGODA1 = TENDER.NEZGODA1,
PUTNICI = TENDER.PUTNICI,
BR_PUTNIKA = TENDER.BR_PUTNIKA,
NEZGODA = TENDER.NEZGODA,
AO_PLUS_LIMIT = TENDER.AO_PLUS_LIMIT,
AO_PLUS_PREMIJA = TENDER.AOPLUSPREMIJA,
PRAVNA_ZASTITA_LIMIT = TENDER.PRAVNA_ZASTITA_LIMIT,
PRAVNA_ZASTITA_PREMIJA = TENDER.PRAVNA_ZASTITA_PREMIJA,
LOM_STAKLA_PREMIJA = TENDER.LOM_STAKLA_PREMIJA,
TROSKOVI_LIJECENJA = TENDER.TROSKOVI_LIJECENJA,
TROSKOVI_LIJECENJA_PREMIJA = TENDER.TROSKOVI_LIJECENJA_PREMIJA
WHERE POLICA =:TENDER.BRPOLICE;
end;
我尝试选项:从“项目”属性复制值,但出现错误
FRM-30047: Cannot resolve item reference
我不知道我在哪里犯了错误?任何建议或评论?
答案 0 :(得分:2)
表单通常通过以下两种方式进行通信:
全局变量更易于使用;在表格A中,您只需将其设置为:global.polica := :pol.polica;
,然后在表格B中将其用作(例如)
select ...
from some_table
where polica = :global.polica;
全局变量始终是字符串(其数据类型为VARCHAR2
),其大小受到限制(可能取决于Forms版本;我知道某些版本具有限制为255个字符)。
参数的使用有些复杂,因为您必须首先创建它(在Object Navigator的“ Parameters”节点中),但是它允许您选择数据类型(因此不必仅限于字符串)。您可以像设置全局变量的值一样:parameter.polica := :pol.polica;
来设置它的值,但是实际上您必须传递以使其在CALL_FORM
(或OPEN_FORM
)参数列表中形成B。例如:
创建参数列表的函数(将在后面的示例中使用):
function make_param_list (p_name in varchar2)
return paramlist
is
pl_id paramlist;
w_button number;
begin
pl_id := get_parameter_list(p_name);
if not id_null(pl_id) then
destroy_parameter_list(pl_id);
end if;
pl_id := create_parameter_list(p_name);
if id_null(pl_id) then
message('DESIGN ERROR - PARAMLIST');
if name_in('system.mode') <> 'QUERY' then
raise form_trigger_failure;
end if;
else
return pl_id;
end if;
end;
示例; list_id
与我们正在讨论的参数有关:
declare
list_id ParamList;
begin
list_id := make_param_list('input_params');
Add_Parameter(list_id, 'ugo_id' , TEXT_PARAMETER, :ugo.ugo_id);
Add_Parameter(list_id, 'query_only_mode', TEXT_PARAMETER, :parameter.query_only_mode);
call_form('ugoa', no_hide, no_replace, no_query_only, no_share_library_data, list_id);
end;
Forms联机帮助系统中的更多信息。