动态操作不会获取页面项值 - Apex 5.1

时间:2018-06-05 16:03:29

标签: oracle plsql oracle-apex

我有一个包含2个日期字段和一个按钮的页面。将创建一个PLSQL代码的动态操作,该代码引用2个日期字段中的值。由于某种原因,页面项值不会在动态操作中传递。当我使用常量值时,DA工作没有任何问题,但是当我引用项目值时,它不起作用。不知道为什么。有人可以帮忙吗?

我已经包含了DA(不工作)代码和有效的DA。

不工作DA

DECLARE
    I_VCNAME VARCHAR2(200);
    I_LPARAMS PK_JRXML2PDF_REPGEN.TPARAMLIST;
    I_VCDIR VARCHAR2(200);
    I_VCFILENAME VARCHAR2(200);
    bl BLOB;
BEGIN
    I_VCNAME:='Fundraiser_Stats';
    I_VCDIR := 'FUNDAMENTAL_FTP';
    I_LPARAMS(1).vcName:='date_from';
    I_LPARAMS(1).vcValue:=:R1_FROM_DATE;
    I_LPARAMS(2).vcName:='date_to';
    I_LPARAMS(2).vcValue:=:R1_TO_DATE;
    I_LPARAMS(3).vcName:='fundraiser';

    FOR fundraiser_name IN (SELECT DISTINCT B.FUNDRAISER fundraiser FROM WAYSACT_SRC_VW A, PLEDGE_EXT B WHERE A.PLEDGE_ID = B.PLEDGE_ID
                       AND A.PLEDGE_DATE BETWEEN :R1_FROM_DATE AND :R1_TO_DATE)
        LOOP
            I_LPARAMS(3).vcValue:= fundraiser_name.fundraiser;
            I_VCFILENAME := fundraiser_name.fundraiser||'-'||to_char(sysdate,'dd-Mon-yyyy')||'.pdf';
            PK_JRXML2PDF_REPGEN.PR_RUN_TO_FILE(I_VCNAME => I_VCNAME, I_LPARAMS => I_LPARAMS, I_VCDIR => I_VCDIR,I_VCFILENAME => I_VCFILENAME);
    END LOOP fundraiser_name;
    --APEX_APPLICATION.STOP_APEX_ENGINE;
END;

工作DA:

DECLARE
    I_VCNAME VARCHAR2(200);
    I_LPARAMS PK_JRXML2PDF_REPGEN.TPARAMLIST;
    I_VCDIR VARCHAR2(200);
    I_VCFILENAME VARCHAR2(200);
    bl BLOB;
BEGIN
    I_VCNAME:='Fundraiser_Stats';
    I_VCDIR := 'FUNDAMENTAL_FTP';
    I_LPARAMS(1).vcName:='date_from';
    I_LPARAMS(1).vcValue:='02-jun-2018';
    I_LPARAMS(2).vcName:='date_to';
    I_LPARAMS(2).vcValue:='02-jun-2018';
    I_LPARAMS(3).vcName:='fundraiser';

    FOR fundraiser_name IN (SELECT DISTINCT B.FUNDRAISER fundraiser FROM WAYSACT_SRC_VW A, PLEDGE_EXT B WHERE A.PLEDGE_ID = B.PLEDGE_ID
                       AND A.PLEDGE_DATE BETWEEN '02-jun-2018' AND '02-jun-2018')
        LOOP
            I_LPARAMS(3).vcValue:= fundraiser_name.fundraiser;
            I_VCFILENAME := fundraiser_name.fundraiser||'-'||to_char(sysdate,'dd-Mon-yyyy')||'.pdf';
            PK_JRXML2PDF_REPGEN.PR_RUN_TO_FILE(I_VCNAME => I_VCNAME, I_LPARAMS => I_LPARAMS, I_VCDIR => I_VCDIR,I_VCFILENAME => I_VCFILENAME);
    END LOOP fundraiser_name;
    --APEX_APPLICATION.STOP_APEX_ENGINE;
END;

1 个答案:

答案 0 :(得分:1)

这是“执行PL / SQL代码”的动态动作,不是吗?在DA的“设置”部分中,有“要提交的项目”字段 - 将您在该代码中使用的所有项目的名称放入;我注意到了

R1_FROM_DATE, R1_TO_DATE

你会知道是否还有其他的。如果是,请将它们包含在列表中。