Home » Developer & Programmer » Forms » popup menu- Row Functionality - Problem (Oracle form 6i -Database 10g)
popup menu- Row Functionality - Problem [message #534893] Sat, 10 December 2011 00:06
nagpalgggmailcom
Messages: 16
Registered: August 2010
Location: Bangalore
Junior Member
Hi All,

Need you help in matrix form (Rows+Column).

I want to restrict the full column cell to RED 'R'using row functionality (popup menu)
here is my code.
Note Once the user select row functionality full will get converted to RED 'R'.
OUTPUT shall be looked like CELLS CELL 7 AND CELL 8
******************************************************
DECLARE
lv_curr_content prag.tec_matval.matval_content%TYPE;
lv_curr_content_mn prag.tec_matval.matval_content%TYPE;
lv_curr_item VARCHAR2(100);
lv_curr_attr VARCHAR2 (20);
ln_S_matval_id NUMBER;
v_itm_cur_rec NUMBER;
dummy1 NUMBER;
BEGIN
v_itm_cur_rec := :SYSTEM.CURSOR_RECORD;
lv_curr_item := :SYSTEM.CURRENT_ITEM;
lv_curr_content := NAME_IN (:SYSTEM.trigger_item);
dummy1 := :SYSTEM.CURSOR_RECORD;

IF PR_FND_TECHNICAL_DEPENDENCY THEN

DECLARE
curr_blk_cnt NUMBER := 0;
curr_sts_flg VARCHAR2 (1) := 'N';
curr_cnt NUMBER := 0;
curr_r_cnt NUMBER := 0;
BEGIN
GO_BLOCK ('CELLS');
FIRST_RECORD;

LOOP
curr_blk_cnt := curr_blk_cnt + 1;
EXIT WHEN :SYSTEM.LAST_RECORD = 'TRUE';
NEXT_RECORD;
END LOOP;

GO_BLOCK ('CELLS');
FIRST_RECORD;
LOOP
lv_curr_content := NAME_IN (:SYSTEM.trigger_item);
curr_cnt := NVL (curr_cnt, 0) + 1;
IF lv_curr_content not in ('R') THEN
curr_r_cnt:= Nvl(curr_r_cnt, 0)+1;
END IF;
IF curr_r_cnt > 1 THEN
curr_sts_flg := 'Y';
EXIT;
END IF;

EXIT WHEN curr_cnt = curr_blk_cnt OR curr_r_cnt > 1;
NEXT_RECORD;
END LOOP;
GO_RECORD (dummy1);
lv_curr_content := NAME_IN (:SYSTEM.trigger_item);

IF curr_sts_flg = 'N' THEN
gui$error_message('EC82');
END IF;

IF curr_sts_flg = 'Y' THEN
LOOP
DECLARE
n_cnt NUMBER := 0;
n_tot_cnt NUMBER := 0;
n_cur_itm VARCHAR2(50);
n_def VARCHAR2(1) := 'N';
n_cur_recc VARCHAR2(50);
n_curr_r_cnt NUMBER := 0;
n_curr_sts_flg VARCHAR2 (1) := 'N';
n_curr_blk_cnt NUMBER := 0;

BEGIN
GO_BLOCK ('CELLS');
FIRST_RECORD;
LOOP
n_curr_blk_cnt := n_curr_blk_cnt +1;
EXIT WHEN :SYSTEM.LAST_RECORD = 'TRUE';
NEXT_RECORD;
END LOOP;

n_cnt := 0;
n_tot_cnt := NVL (n_tot_cnt, 0) + 1;

GO_BLOCK ('CELLS');
FIRST_RECORD;

n_cur_itm := 'CELL'|| n_tot_cnt;
GO_ITEM (n_cur_itm);
LOOP
lv_curr_content := NAME_IN (:SYSTEM.trigger_item);
n_cnt := NVL (n_cnt, 0) + 1;

IF lv_curr_content not in ('R') THEN
n_curr_r_cnt:= Nvl(n_curr_r_cnt, 0)+1;
END IF;

IF n_curr_r_cnt > 1 THEN
n_curr_sts_flg := 'Y';
EXIT;
END IF;

EXIT WHEN n_cnt=n_curr_blk_cnt; --n_cnt = curr_blk_cnt or
NEXT_RECORD;
GO_ITEM (n_cur_itm);

END LOOP;
-- GO_RECORD (dummy1);

IF n_tot_cnt = 3 THEN
IF n_curr_sts_flg = 'Y' THEN
pr_set_row_value ('DISPLAYED', 'R');
ELSE
gui$error_message('EC82');
END IF;
EXIT;
END IF;
EXIT WHEN n_tot_cnt = 3;
END;
END LOOP;
END IF;
END;
ELSE
pr_set_row_value ('DISPLAYED', 'R');
END IF;
END;
********************.**********************************

Please help refer my matrix form 6i.jpg emclosed.
Previous Topic: ROWNUM returns NULL rows when value > 1
Next Topic: Changing Record group for LOV at runtime
Goto Forum:
  


Current Time: Wed Jul 10 05:44:06 CDT 2024