我想对提交采取双重行动。
目前,我只有一个表单,提交时需要同时执行两个操作。下面是在每个标签内创建n个标签和n条记录行的第一个操作。现在,我尝试保持该功能正常运行,并在每次单击提交按钮时从另一个页面打开一个模式窗口,然后重新提交该页面。
BEGIN
IF (:P2_CREATE_TABS != 0 OR :P2_CREATE_TABS != NULL) AND :P2_CREATE_TABS <= 5 THEN
htp.p ('<nav><div class="nav nav-tabs" id="nav-tab" role="tablist">');
FOR k IN 1..:P2_CREATE_TABS
LOOP
IF k = 1 THEN
htp.p ('<a class="nav-item nav-link active" id="nav-'||k||'-tab" data-toggle="tab" href="#nav-'||k||'" role="tab" aria-controls="nav-'||k||'" aria-selected="true">Document '||k||'</a>');
ELSE
htp.p ('<a class="nav-item nav-link" id="nav-'||k||'-tab" data-toggle="tab" href="#nav-'||k||'" role="tab" aria-controls="nav-'||k||'" aria-selected="false">Document '||k||'</a>');
END IF;
END LOOP;
htp.p('</div></nav><div class="tab-content" id="nav-tabContent">');
FOR l IN 1..:P2_CREATE_TABS
LOOP
IF l = 1 THEN
htp.p ('<div class="tab-pane fade show active" id="nav-'||l||'" role="tabpanel" aria-labelledby="nav-'||l||'-tab">');
IF (:P2_LINES != 0 OR :P2_LINES != NULL) AND :P2_LINES < 20 THEN
htp.p ('<div class="row"><div class"col-md-6" style="margin-left: 17em;"><table class="table">');
FOR i IN 1..:P2_LINES
LOOP
IF MOD(i,2) != 0 THEN
htp.p ('<thead><tr><th scope="col"> </th><th scope="col">Name</th><th scope="col">Type</th><th scope="col">Width</th><tbody>');
htp.p ('<tr><th scope="row">'|| i ||'</th><td>');
htp.p ( APEX_ITEM.HIDDEN(
p_idx => 1,
p_item_label => 'ID') );
htp.p ( APEX_ITEM.TEXT(
p_idx => 2,
p_item_label => 'Name',
p_attributes => 'class="form-control"'));
htp.p ('</td><td>');
htp.p ( APEX_ITEM.SELECT_LIST(
p_idx => 3,
p_list_values => 'Numeric;20',
p_show_null => 'YES',
p_null_value => '10',
p_null_text => 'Alphnumeric',
p_item_label => 'Type',
p_attributes => 'class="form-control"') );
htp.p ('</td><td>');
htp.p ( APEX_ITEM.TEXT(
p_idx => 3,
p_item_label => 'Width',
p_attributes => 'class="form-control"') );
htp.p ('</td></tr>');
END IF;
END LOOP;
htp.p ('</tbody></table></div><div class"col-md-6" style="margin-left: 17em;"><table class="table">');
FOR j IN 2..:P2_LINES
LOOP
IF MOD(j,2) = 0 THEN
htp.p ('<thead><tr><th scope="col"> </th><th scope="col">Name</th><th scope="col">Type</th><th scope="col">Width</th><tbody>');
htp.p ('<tr><th scope="row">'|| j ||'</th><td>');
htp.p ( APEX_ITEM.HIDDEN(
p_idx => 1,
p_item_label => 'ID') );
htp.p ( APEX_ITEM.TEXT(
p_idx => 2,
p_item_label => 'Name',
p_attributes => 'class="form-control"'));
htp.p ('</td><td>');
htp.p ( APEX_ITEM.SELECT_LIST(
p_idx => 3,
p_list_values => 'Numeric;20',
p_show_null => 'YES',
p_null_value => '10',
p_null_text => 'Alphnumeric',
p_item_label => 'Type',
p_attributes => 'class="form-control"') );
htp.p ('</td><td>');
htp.p ( APEX_ITEM.TEXT(
p_idx => 3,
p_item_label => 'Width',
p_attributes => 'class="form-control"') );
htp.p ('</td></tr>');
END IF;
END LOOP;
htp.p ('</tbody></table></div></div>');
END IF;
htp.p ('</div>');
END IF;
htp.p ('<div class="tab-pane fade" id="nav-'||l||'" role="tabpanel" aria-labelledby="nav-'||l||'-tab">');
IF (:P2_LINES != 0 OR :P2_LINES != NULL) AND :P2_LINES < 20 THEN
htp.p ('<div class="row"><div class"col-md-6" style="margin-left: 17em;"><table class="table">');
FOR i IN 1..:P2_LINES
LOOP
IF MOD(i,2) != 0 THEN
htp.p ('<thead><tr><th scope="col"> </th><th scope="col">Name</th><th scope="col">Type</th><th scope="col">Width</th><tbody>');
htp.p ('<tr><th scope="row">'|| i ||'</th><td>');
htp.p ( APEX_ITEM.HIDDEN(
p_idx => 1,
p_item_label => 'ID') );
htp.p ( APEX_ITEM.TEXT(
p_idx => 2,
p_item_label => 'Name',
p_attributes => 'class="form-control"'));
htp.p ('</td><td>');
htp.p ( APEX_ITEM.SELECT_LIST(
p_idx => 3,
p_list_values => 'Numeric;20',
p_show_null => 'YES',
p_null_value => '10',
p_null_text => 'Alphnumeric',
p_item_label => 'Type',
p_attributes => 'class="form-control"') );
htp.p ('</td><td>');
htp.p ( APEX_ITEM.TEXT(
p_idx => 3,
p_item_label => 'Width',
p_attributes => 'class="form-control"') );
htp.p ('</td></tr>');
END IF;
END LOOP;
htp.p ('</tbody></table></div><div class"col-md-6" style="margin-left: 17em;"><table class="table">');
FOR j IN 2..:P2_LINES
LOOP
IF MOD(j,2) = 0 THEN
htp.p ('<thead><tr><th scope="col"> </th><th scope="col">Name</th><th scope="col">Type</th><th scope="col">Width</th><tbody>');
htp.p ('<tr><th scope="row">'|| j ||'</th><td>');
htp.p ( APEX_ITEM.HIDDEN(
p_idx => 1,
p_item_label => 'ID') );
htp.p ( APEX_ITEM.TEXT(
p_idx => 2,
p_item_label => 'Name',
p_attributes => 'class="form-control"'));
htp.p ('</td><td>');
htp.p ( APEX_ITEM.SELECT_LIST(
p_idx => 3,
p_list_values => 'Numeric;20',
p_show_null => 'YES',
p_null_value => '10',
p_null_text => 'Alphnumeric',
p_item_label => 'Type',
p_attributes => 'class="form-control"') );
htp.p ('</td><td>');
htp.p ( APEX_ITEM.TEXT(
p_idx => 3,
p_item_label => 'Width',
p_attributes => 'class="form-control"') );
htp.p ('</td></tr>');
END IF;
END LOOP;
htp.p ('</tbody></table></div></div>');
END IF;
htp.p ('</div>');
END LOOP;
htp.p('</div>');
END IF;
END;
我创建了一个隐藏项,并使用PL / SQL函数体将其链接到一个计算后的提交,代码如下:
BEGIN
IF :P2_CUST_NAME != '' AND :P2_ORG_NUM != NULL AND :P2_CONTACT_NUM != NULL AND :P2_EMAIL != '' THEN
RETURN 'Y';
END IF;
END;
在处理了服务器端条件When Button Pressed = MY_BUTTON
并将“行为”设置为所需页面后,创建了一个分支。
下一步,我使用创建了一个动态动作Event=Dialogue Closed
,Selection Type=Region
并为该区域选择了具有“提交”按钮的区域。
在这一刻,如果我在前两个输入字段中创建了选项卡,并且在选项卡中的字段将自动动态创建它们而无需任何提交,因为我没有强制清除缓存。如果我更改值并输入其余字段,则将显示野生模式窗口,但未提交页面,也不会从字段中再次获取数据以构建其他结构。
我想我很亲密,我不知道自己在做什么错。
提前致谢 !
尝试制作一个单击“提交按钮”后将运行的“后处理分支”,然后在其设置的下部内部看到“高级”,可以在其中设置请求。您可以设置/命名任何请求,例如将其设置为“ OPEN_MODAL ”。
然后,在提交后在重定向的页面(其他页面或同一页面)上,对页面加载进行动态操作,这将打开模式(javascript或pl sql),然后将其条件设置为REQUEST = VALUE并将值设置为' OPEN_MODAL '
提交主页后,这将在重定向页面上打开模式。
希望这可以帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句