在表单之间传递参数

时间:2014-04-14 09:04:22

标签: forms oracle11g plsqldeveloper

大家好我正在尝试在表单之间传递参数但是我有这个错误: frm-92101在启动期间表单服务器出现故障。 我想在EMPLOYEE表单上放置一个按钮,当按下该按钮时,将调用EMPLOYEE / DEPENDENT表单并自动查询在EMPLOYEE表单上查看的员工的受抚养人。 创造了EMPLOYEE表格并添加了一个按钮。当按下bouton时,我指定了一个触发器:

DECLARE
    pl_id   ParamList;
BEGIN
    pl_id := Get_Parameter_List('tmpdata');
    IF NOT Id_Null(pl_id) THEN
        Destroy_Parameter_List( pl_id );
    END IF;
    pl_id := Create_Parameter_List('tmpdata');
    Add_Parameter(pl_id, 'EMPLOYEESSN', TEXT_PARAMETER, :SSN);
    Run_Product(FORMS, 'empdepn', SYNCHRONOUS, RUNTIME,
    FILESYSTEM, pl_id, NULL);
END;

之后我在EMPLOYEE / DEPENDENT中添加一个参数 我使用下面的代码创建了一个名为EMPLOYEESSN的PARAMETER,并添加了一个参数EMPLOYEESSN并添加了一个WHEN-NEW-FORM-INSTANCE触发器:

DECLARE
    blk_id Block;
BEGIN
    -- Obtain the block ID of the EMPLOYEE block.  This is the
    -- Master block in the empdepn master/detail form.
    blk_id := Find_Block('EMPLOYEE');
    IF NOT Id_Null(blk_id) THEN
        -- Check to make sure our parameter has a value. If this form
        -- were executed by itself, then the parameter will be null.
        -- If this form is called from EMPLOYEE then the parameter will
        -- be passed along and assigned to: PARAMETER.employeessn
        IF (:PARAMETER.employeessn is not null) THEN
            -- Since we have a parameter, use it to alter the WHERE Clause
            -- property so that it becomes WHERE ssn=:PARAMETER.employeessn
            SET_BLOCK_PROPERTY(blk_id,DEFAULT_WHERE,'ssn=' || : PARAMETER.employeessn);
            -- Navigate to the EMPLOYEE block and execute a query automatically
            GO_BLOCK('EMPLOYEE');
            EXECUTE_QUERY;
        END IF;
    END IF;
END;

任何想法,谢谢你的帮助

0 个答案:

没有答案