DBA Data[Home] [Help]

PACKAGE BODY: APPS.BIS_LOV_PUB

Source


1 package body bis_lov_pub as
2 /* $Header: BISPLOVB.pls 120.3 2005/12/28 06:09:20 ashankar noship $ */
3 g_user_id integer;
4 g_session_id number;
5 
6 -- *****************************************************
7 --        Main - entry point
8 -- ****************************************************
9 procedure main
10 ( p_procname      in  varchar2 default NULL
11 , p_qrycnd        in  varchar2 default NULL
12 , p_jsfuncname    in  varchar2 default NULl
13 , p_startnum      in  pls_integer   default NULL
14 , p_rowcount      in  pls_integer   default NULL
15 , p_totalcount    in  pls_integer   default NULL
16 , p_search_str    in  varchar2 default NULL
17 , p_dim_level_id   in number default NULL
18 , p_sqlcount      in  varchar2 default NULL
19 , p_coldata       in  colinfo_table
20 , p_rel_dim_lev_id         in varchar2 default NULL
21 , p_rel_dim_lev_val_id     in varchar2 default NULL
22 , p_rel_dim_lev_g_var      in varchar2 default NULL
23 , Z                        in pls_integer default NULL
24 , p_user_id        in pls_integer default NULL
25 , x_string        out nocopy VARCHAR2
26 )
27 IS
28 l_startnum              pls_integer;
29 l_pos1                  pls_integer;
30 l_titlename             varchar2(32000);
31 l_history               varchar2(240);
32 l_message               varchar2(240);
33 l_ccursor               pls_integer;
34 l_dummy1                pls_integer;
35 l_totalcount            pls_integer;
36 l_colstore              colstore_table;
37 l_totalpossible         pls_integer;
38 l_store1                varchar2(32000);
39 l_store2                varchar2(32000);
40 l_searchlink            varchar2(32000);
41 l_datalink              varchar2(32000);
42 l_buttonslink           varchar2(32000);
43 l_title                 varchar2(32000) := 'List Of Values: ';
44 l_head                  varchar2(32000);
45 l_value                 varchar2(32000);
46 l_link                  varchar2(32000);
47 l_disp                  varchar2(32000);
48 l_sql                   varchar2(32000);
49 l_search_str            varchar2(32000) := p_search_str;
50 l_rel_dim_lev_id        varchar2(32000);
51 l_rel_dim_lev_val_id    varchar2(32000);
52 l_rel_dim_lev_g_var     varchar2(32000);
53 l_Z                     varchar2(32000);
54 
55 l_var number;
56 l_return_sts VARCHAR2(10) := FND_API.G_RET_STS_SUCCESS;
57 l_sob_id     NUMBER;
58 l_plug_id    pls_integer;
59 l_string                 VARCHAR(32000);
60 l_search_rstr            VARCHAR(32000);
61 l_data_rstr              VARCHAR(32000);
62 l_buttons_rstr           VARCHAR(32000);
63 l_head_tbl                 colstore_table;
64 l_value_tbl                colstore_table;
65 l_link_tbl                 colstore_table;
66 l_disp_tbl                 colstore_table;
67 l_test_count               NUMBER;
68 
69 begin
70 
71 -- meastmon 09/07/2001 Fix bug#1980577. Workaround Do not encrypt plug_id
72 --l_plug_id := icx_call.decrypt2(Z);
73 
74 l_plug_id := Z;
75 --if icx_sec.validateSession then
76 -- if ICX_SEC.validatePlugSession(l_plug_id) then
77 
78      /*if instr(owa_util.get_cgi_env('HTTP_USER_AGENT'),'MSIE') > 0
79      then
80          l_history := '';
81      else
82          l_history := 'opener.history.go(0);';
83      end if;*/
84 
85      --commented as giving error
86 
87      l_history := ''; --WORKAROUND
88 
89   IF p_rel_dim_lev_val_id IS NOT NULL THEN
90     setGlobalVar
91     ( p_dim_lev_id      => p_rel_dim_lev_id
92     , p_dim_lev_val_id  => p_rel_dim_lev_val_id
93     , p_dim_lev_g_var   => p_rel_dim_lev_g_var
94     , x_return_status   => l_return_sts
95     );
96   END IF;
97 
98     -- If this page is being called the first time
99     -- parse the sqlcount to get totalcount
100      l_ccursor := DBMS_SQL.OPEN_CURSOR;
101      DBMS_SQL.PARSE(l_ccursor,p_sqlcount,DBMS_SQL.NATIVE);
102      DBMS_SQL.DEFINE_COLUMN(l_ccursor,1,l_totalcount);
103      l_dummy1 := DBMS_SQL.EXECUTE_AND_FETCH(l_ccursor);
104      DBMS_SQL.COLUMN_VALUE(l_ccursor,1,l_totalcount);
105      DBMS_SQL.CLOSE_CURSOR(l_ccursor);
106 
107     -- Set certain numbers and names
108      l_totalpossible := NVL(p_totalcount,l_totalcount);
109      for l_pos1 in p_coldata.FIRST .. p_coldata.COUNT loop
110         if (p_coldata(l_pos1).link = FND_API.G_TRUE) then
111           l_titlename := p_coldata(l_pos1).header;
112           exit;
113         end if;
114       end loop;
115 
116     l_string:= l_string ||'<HEAD>';
117 
118     l_string:= l_string ||'<SCRIPT LANGUAGE="Javascript">';
119 
120     l_string:= l_string ||'function blank() {';
121     l_string:= l_string ||'       return "<HTML><BODY BGCOLOR=#336699></BODY></HTML>"';
122     l_string:= l_string ||'        }';
123 
124     --  Transfer the clicked URL's name and id to the parent window box
125     l_string:= l_string ||'function transfer(name,id) {';
126     --l_string := l_string||'alert("name "+name+"  id "+id);';
127     l_string:= l_string ||'    parent.opener.parent.'||p_jsfuncname||'(name,id);';
128     --l_string := l_string||'alert("before windowclose");';
129     l_string:= l_string ||'     window.close();';
130     l_string:= l_string ||'  }';
131 
132     -- Close the child window and clear all events on parent window
133     l_string:= l_string ||'function closeMe() {';
134     l_string:= l_string ||'    if (opener){';
135     l_string:= l_string ||'       opener.unblockEvents();';
136     l_string:= l_string ||'    }';
137     l_string:= l_string ||'   window.close();';
138     l_string:= l_string ||' }';
139 
140     l_string:= l_string ||'</SCRIPT>';
141     l_string:= l_string ||'</HEAD>';
142 
143     -- Create the main form that communicates with the intermediate proc
144 
145 
146     l_string := l_string ||'<SCRIPT LANGUAGE="Javascript">document.DefaultFormName.p_qrycnd.value='''||p_qrycnd||''';</SCRIPT>';
147 
148     l_string := l_string ||'<SCRIPT LANGUAGE="Javascript">document.DefaultFormName.p_dim1_lbl.value='''||l_titlename||''';</SCRIPT>';
149 
150     l_string := l_string ||'<SCRIPT LANGUAGE="Javascript">document.DefaultFormName.p_jsfuncname.value='''||p_jsfuncname||''';</SCRIPT>';
151 
152     l_string := l_string ||'<SCRIPT LANGUAGE="Javascript">document.DefaultFormName.p_startnum.value='''||p_startnum||''';</SCRIPT>';
153 
154     l_string := l_string ||'<SCRIPT LANGUAGE="Javascript">document.DefaultFormName.p_rowcount.value='''||p_rowcount||''';</SCRIPT>';
155 
156     l_string := l_string ||'<SCRIPT LANGUAGE="Javascript">document.DefaultFormName.p_totalcount.value='''||p_totalcount||''';</SCRIPT>';
157 
158     l_string := l_string ||'<SCRIPT LANGUAGE="Javascript">document.DefaultFormName.p_search_str.value='''||NVL(p_search_str,c_percent)||''';</SCRIPT>';
159 
160     l_string := l_string ||'<SCRIPT LANGUAGE="Javascript">document.DefaultFormName.Z.value='||Z||';</SCRIPT>';
161 
162     -- Replace the % sign in the sql string with an asterisk
163     -- because it tends to dissappear from the URL string
164     l_search_str := REPLACE(p_search_str,c_percent,c_asterisk);
165 
166     lov_search
167     ( p_totalpossible => l_totalpossible
168     , p_totalavailable => l_totalcount
169     , p_titlename => bis_utilities_pub.encode(l_titlename)
170     , p_startnum =>p_startnum
171     , p_rowcount => p_rowcount
172     , p_search_str => l_search_str
173     ,x_string => l_search_rstr
174     );
175 
176     l_string:= l_string || l_search_rstr;
177 
178 
179     for i in p_coldata.FIRST .. p_coldata.COUNT loop
180       l_head_tbl(i) := p_coldata(i).header;
181       l_value_tbl(i) := p_coldata(i).value;
182       l_link_tbl(i) := p_coldata(i).link;
183       l_disp_tbl(i) := p_coldata(i).display;
184 
185     end loop;
186 
187 
188     l_rel_dim_lev_id := l_rel_dim_lev_id ||c_amp
189                       ||'p_rel_dim_lev_id='||p_rel_dim_lev_id;
190     l_rel_dim_lev_val_id := l_rel_dim_lev_val_id ||c_amp
191                           ||'p_rel_dim_lev_val_id='||p_rel_dim_lev_val_id;
192     l_rel_dim_lev_g_var := l_rel_dim_lev_g_var ||c_amp
193                          ||'p_rel_dim_lev_g_var='||p_rel_dim_lev_g_var;
194     l_Z := l_Z||c_amp||'Z='||Z;
195 
196 
197     lov_data
198     ( p_startnum => p_startnum
199     , p_rowcount => p_rowcount
200     , p_totalavailable => l_totalcount
201     , p_dim_level_id =>  p_dim_level_id
202     , p_search_str => p_search_str
203     , p_head  => l_head_tbl
204     , p_value => l_value_tbl
205     , p_link  => l_link_tbl
206     , p_disp  => l_link_tbl
207     , p_rel_dim_lev_id  => p_rel_dim_lev_id
208     , p_rel_dim_lev_val_id  => p_rel_dim_lev_val_id
209     , p_rel_dim_lev_g_var  => p_rel_dim_lev_g_var
210     , Z  => Z
211     , p_user_id => p_user_id
212     , x_string => l_data_rstr
213     );
214 
215 
216 
217     l_string:= l_string || l_data_rstr;
218 
219     lov_buttons
220     ( p_startnum => p_startnum
221     , p_rowcount => p_rowcount
222     , p_totalavailable => l_totalcount
223     , x_string => l_buttons_rstr
224     );
225      l_string:= l_string || l_buttons_rstr;
226 
227     x_string := l_string ;
228 
229 
230 -- end if; -- icx_validate session
231 --end if; -- icx_sec.validateSession
232 exception
233   when others then
234     x_string := SQLERRM;
235 
236 end main;
237 
238 -- ***********************************************************
239 --     Frame that paints the  search box
240 -- ************************************************************
241 procedure lov_search
242 ( p_totalpossible     in  pls_integer   default NULL
243 , p_totalavailable    in  pls_integer   default NULL
244 , p_titlename         in  varchar2      default NULL
245 , p_startnum          in  pls_integer   default NULL
246 , p_rowcount          in  pls_integer   default NULL
247 , p_search_str        in  varchar2      default NULL
248 , x_string            out nocopy VARCHAR2
249 )
250 is
251 
252 l_to                     varchar2(15) := ' to ';
253 l_totalpossible          pls_integer := p_totalpossible;
254 l_totalcount             pls_integer := p_totalavailable;
255 l_titlename              varchar2(32000) := p_titlename;
256 l_possible               varchar2(30):= ' possible';
257 l_of                     varchar2(15):= ' of ';
258 l_values                 varchar2(15):= 'Values ';
259 l_endnum                 pls_integer;
260 l_startnum               pls_integer;
261 l_title                  varchar2(60) := 'List Of Values: ';
262 l_search_str             varchar2(200);
263 l_string                 VARCHAR2(32000);
264 
265 -- meastmon 06/20/2001
266 -- Fix for ADA buttons
267 l_button_str             varchar2(32000);
268 l_button_tbl             BIS_UTILITIES_PVT.HTML_Button_Tbl_Type;
269 l_append_string          VARCHAR2(1000);
270 l_swan_enabled           BOOLEAN;
271 l_button_edge            VARCHAR2(100);
272 
273 begin
274 
275 --if icx_sec.validateSession then
276   l_swan_enabled := BIS_UTILITIES_PVT.checkSWANEnabled();
277   l_startnum := NVL(p_startnum,1);
278   -- Replace the asterisk with the percent sign
279   l_search_str := REPLACE(p_search_str,c_asterisk,c_percent);
280   l_string := l_string || '<LINK HREF="/OA_HTML/bisportal.css" type="text/css" rel="stylesheet">';
281 
282   l_string := l_string || '<SCRIPT LANGUAGE="Javascript">';
283   --  Check and send the text string for find criteria
284   l_string := l_string ||'function chkString() {';
285   l_string := l_string ||'    if (document.DefaultFormName.p_search_str1.value == "")';
286   l_string := l_string ||'       alert("Please enter a search criteria");';
287   l_string := l_string ||'    else {';
288   l_string := l_string ||'       top.document.DefaultFormName.p_startnum.value ="";';
289   l_string := l_string ||'       top.document.DefaultFormName.p_search_str.value = document.DefaultFormName.p_search_str1.value;';
290   l_string := l_string ||'       top.document.DefaultFormName.submit();';
291   l_string := l_string ||'       };';
292   l_string := l_string ||'    }';
293 
294   l_string := l_string ||'</SCRIPT>';
295 
296 
297 
298   --l_string := l_string ||'<BODY BGCOLOR="'||c_fmbgcolor||'">';
299   l_string := l_string ||'<BODY class="C_FMBGCOLOR">';
300   l_string := l_string ||'<CENTER>';
301 
302   l_string := l_string ||'<table border=0 cellspacing=0 cellpadding=0 width=100%>';
303   IF(NOT l_swan_enabled)THEN
304    l_string := l_string ||'<TR class="C_FMBGCOLOR">';
305    l_string := l_string ||'<td height=3></td>';
306    l_string := l_string ||'</TR>';
307    l_button_edge := BIS_UTILITIES_PVT.G_ROUND_EDGE;
308   ELSE
309    l_button_edge :=BIS_UTILITIES_PVT.G_FLAT_EDGE;
310   END IF;
311   /*l_string := l_string ||'<TR BGCOLOR='||c_fmbgcolor||'>';
312   l_string := l_string ||'<td height=3></td>';
313   l_string := l_string ||'</TR>';*/
314 
315   --l_string := l_string ||'<BODY BGCOLOR="'||c_pgbgcolor||'">';
316   l_string := l_string ||'<BODY class="C_PGBGCOLOR">';
317   l_string := l_string ||'<TD><font size= -2><BR></font></TD>';
318   l_string := l_string ||'</TR>';
319 
320   --l_string := l_string ||'<BODY BGCOLOR="'||c_pgbgcolor||'">';
321   l_string := l_string ||'<BODY class="C_PGBGCOLOR">';
322 
323   l_string := l_string ||'<TD ALIGN="LEFT"><B>'||bis_utilities_pvt.escape_html(l_titlename)||' '||'('||bis_utilities_pvt.escape_html(l_totalpossible)||' '||bis_utilities_pvt.escape_html(c_possible)||')'||'</B></TD>';
324 
325   l_string := l_string ||'</TR>';
326 
327         -- table for input box and find button
328   --l_string := l_string ||'<BODY BGCOLOR="'||c_pgbgcolor||'">';
329   l_string := l_string ||'<BODY class="C_PGBGCOLOR">';
330 
331   l_string := l_string ||'<td align="CENTER">';
332   l_string := l_string ||'<table border=0 cellspacing=0 cellpadding=0 width=100%>';
333   l_string := l_string ||'<TR>';
334   l_string := l_string ||'<TD ALIGN="LEFT"><INPUT TYPE="text" NAME="p_search_str1" SIZE="25" VALUE="'||bis_utilities_pvt.escape_html_input(NVL(l_search_str,c_percent))||'"></TD>';
335   l_string := l_string ||'<td align="LEFT">';
336 
337  -- meastmon 06/20/2001. ICX Button is not ADA Complaint. ICX is not going to fix that.
338  --icx_plug_utilities.buttonBoth(c_find,'javascript:chkString()');
339 
340   l_button_tbl(1).left_edge := l_button_edge;
341   l_button_tbl(1).right_edge := l_button_edge;
342   l_button_tbl(1).disabled := FND_API.G_FALSE;
343   l_button_tbl(1).label := c_find;
344   l_button_tbl(1).href := 'javascript:chkString()';
345   BIS_UTILITIES_PVT.GetButtonString(l_button_tbl, l_button_str);
346   l_string := l_string ||l_button_str;
347 
348   l_string := l_string ||'</td>';
349   l_string := l_string ||'</TR>';
350   l_string := l_string ||'</TABLE>';
351   l_string := l_string ||'</td>';
352   l_string := l_string ||'</TR>';
353 
354 
355   --l_string := l_string ||'<TR BGCOLOR='||c_pgbgcolor||'>';
356   l_string := l_string ||'<TR class="C_PGBGCOLOR">';
357   l_string := l_string ||'<td height=1 bgcolor=#000000> <IMG SRC="/OA_MEDIA/FNDINVDT.gif" height=1></td>';
358   l_string := l_string ||'</TR>';
359   --l_string := l_string ||'<TR BGCOLOR='||c_pgbgcolor||'>';
360   l_string := l_string ||'<TR class="C_PGBGCOLOR">';
361 
362   if (l_totalcount = 0) then
363     -- if no values returned then print nothing
364     l_string := l_string ||'<td><font size = -2><BR></font></td>';
365   else
366    -- if any values returned then print the range numbers
367     l_string := l_string ||'<td align="RIGHT">';
368     l_endnum := l_startnum+p_rowcount-1;
369     if (l_endnum >= l_totalcount) then
370       l_endnum := l_totalcount;
371     end if;
372     l_string := l_string ||c_values||' '||l_startnum||' '||c_to||' '||l_endnum||' '||c_of||' '||l_totalcount;
373     l_string := l_string ||'</td>';
374   end if;
375   l_string := l_string ||'</TR>';
376   --l_string := l_string ||'<TR BGCOLOR='||c_pgbgcolor||'>';
377   l_string := l_string ||'<TR class="C_PGBGCOLOR">';
378   l_string := l_string ||'<td><font size = -2><BR></font></td>';
379   l_string := l_string ||'</TR>';
380   --l_string := l_string ||'<TR BGCOLOR='||c_pgbgcolor||'>';
381   l_string := l_string ||'<TR class="C_PGBGCOLOR">';
382   l_string := l_string ||'<td><font size = -2><BR></font></td>';
383   l_string := l_string ||'</TR>';
384   l_string := l_string ||'</TABLE>';
385 
386   l_string := l_string ||'</CENTER>';
387 
388   --end if; --icx_sec.validateSession
389   x_string := l_string;
390 
391 exception
392   when others then
393     x_string := SQLERRM;
394 end lov_search;
395 
396 
397 -- ****************************************************
398 --      Frame that paints the LOVdata
399 -- ****************************************************
400 procedure lov_data
401 ( p_startnum          in  pls_integer   default NULL
402 , p_rowcount          in  pls_integer   default NULL
403 , p_totalavailable    in  pls_integer   default NULL
404 , p_dim_level_id   in number default NULL
405 , p_search_str    in  varchar2 default NULL
406 , p_head              in  colstore_table
407 , p_value             in  colstore_table
408 , p_link              in  colstore_table
409 , p_disp              in  colstore_table
410 , p_rel_dim_lev_id         in varchar2 default NULL
411 , p_rel_dim_lev_val_id     in varchar2 default NULL
412 , p_rel_dim_lev_g_var      in varchar2 default NULL
413 , Z                        in pls_integer default NULL
414 , p_user_id           in pls_integer default NULL
415 , x_string            out nocopy VARCHAR2
416 )
417 is
418 l_startnum               pls_integer;
419 l_count                  pls_integer;
420 l_totalcount             pls_integer := p_totalavailable;
421 l_rcursor                pls_integer;
422 l_row                    pls_integer;
423 l_dummy2                 pls_integer;
424 l_dummy3                 pls_integer;
425 l_colstore               colstore_table;
426 l_pos1                   pls_integer;
427 l_pos2                   pls_integer;
428 l_col                    pls_integer;
429 l_linkvalue              varchar2(32000);
430 l_linktext               varchar2(32000);
431 l_string                 varchar2(32000);
432 l_sql                    varchar2(32000);
433 l_return_sts             VARCHAR2(100);
434 l_var VARCHAR2(100);
435 l_plug_id    pls_integer;
436 l_temp                   varchar2(32000);
437 l_search_str             varchar2(32000);
438 --l_user_id                pls_integer;
439 
440 begin
441 
442 
443 -- meastmon 09/07/2001 Fix bug#1980577. Workaround Do not encrypt plug_id
444   --l_plug_id := icx_call.decrypt2(Z);
445   l_plug_id := Z;
446   --if icx_sec.validateSession  then
447  --if ICX_SEC.validatePlugSession(l_plug_id) then
448 
449   -- prepare SQl modified for enh#3559231
450   -- Replace the asterisk with the percent sign
451   --l_sql := REPLACE(p_sql,c_asterisk,c_percent);
452   --l_user_id := ICX_SEC.getID(ICX_SEC.PV_USER_ID, '', icx_sec.g_session_id);
453   l_search_str := concat_string(p_search_str);
454   l_temp := BIS_INTERMEDIATE_LOV_PVT.getLOVSQL(p_dim_level_id, l_search_str, 'LOV',  p_user_id);
455   l_sql := 'select distinct id, value from ('||l_temp||')';
456 
457 
458 
459    IF p_rel_dim_lev_val_id IS NOT NULL THEN
460      setGlobalVar
461      ( p_dim_lev_id      => p_rel_dim_lev_id
462      , p_dim_lev_val_id  => p_rel_dim_lev_val_id
463      , p_dim_lev_g_var   => p_rel_dim_lev_g_var
464      , x_return_status   => l_return_sts
465      );
466    END IF;
467 
468    -- Now parse the actual query
469    l_rcursor := DBMS_SQL.OPEN_CURSOR;
470    DBMS_SQL.PARSE(l_rcursor,l_sql,DBMS_SQL.NATIVE);
471 
472    IF DBMS_SQL.IS_OPEN(l_rcursor) THEN
473      for l_pos1 in p_head.FIRST .. p_head.COUNT loop
474        l_colstore(l_pos1) := '';
475        DBMS_SQL.DEFINE_COLUMN(l_rcursor,l_pos1,l_colstore(l_pos1),32000);
476      end loop;
477      l_dummy2 := DBMS_SQL.EXECUTE(l_rcursor);
478    ELSE
479      DBMS_SQL.CLOSE_CURSOR(l_rcursor);
480      COMMIT;
481    END IF;
482    l_startnum := NVL(p_startnum,1);
483 
484 
485    --l_string := l_string || '<BODY BGCOLOR="'||c_pgbgcolor||'">';
486    l_string := l_string || '<BODY class="C_PGBGCOLOR">';
487 
488    -- Set the set of books id for GL dimension levels
489  --
490    l_var := BIS_TARGET_PVT.G_SET_OF_BOOK_ID;
491 
492    l_string := l_string ||'<SCRIPT LANGUAGE="Javascript">';
493 
494    --  Transfer the clicked URL's name and id to the parent function
495    l_string := l_string ||'function transfer_value(name,id) {';
496    l_string := l_string ||'      top.transfer(name,id);';
497    l_string := l_string ||'   }';
498    l_string := l_string ||'</SCRIPT>';
499 
500    l_string := l_string ||'<CENTER>';
501    l_string := l_string ||'<table border=0 cellspacing=0 cellpadding=2 width=95%>';
502   -- l_string := l_string ||'<TR BGCOLOR='||c_tblsurnd||'>';
503     l_string := l_string ||'<TR class="C_TBLSURND">';
504    l_string := l_string ||'<td>';
505    l_string := l_string ||'<table border=0 cellspacing=1 cellpadding=2 width=100%>';
506    --l_string := l_string ||'<TR BGCOLOR='||c_rowHeader||'>';
507    l_string := l_string ||'<TR class="C_ROWHEADER">';
508 
509    for l_col in p_disp.FIRST..p_disp.COUNT loop
510      if (p_disp(l_col) = FND_API.G_TRUE) then
511       -- l_string := l_string ||'<TH><font color='||c_rowcolor||'>'||p_head(l_col)||'</font></TH>';
512        l_string := l_string ||'<TH><font class="C_FONT_COLOR">'||p_head(l_col)||'</font></TH>';
513      end if;
514    end loop;
515    l_string := l_string ||'</TR>';
516     --
517     --    *******      Print LOV DATA       *********
518     --
519     l_count := 1;
520     loop
521 
522     BEGIN
523       -- Fetch the rows
524       IF DBMS_SQL.IS_OPEN(l_rcursor) THEN
525        l_dummy3 := DBMS_SQL.FETCH_ROWS(l_rcursor);
526 
527         IF l_dummy3 > 0 THEN
528           -- Store in local plsql table of variables
529           for l_pos1 in p_head.FIRST .. p_head.COUNT loop
530             DBMS_SQL.COLUMN_VALUE(l_rcursor,l_pos1,l_colstore(l_pos1));
531           end loop;
532         ELSE
533           DBMS_SQL.CLOSE_CURSOR(l_rcursor);
534           COMMIT;
535         END IF;
536       ELSE
537         DBMS_SQL.CLOSE_CURSOR(l_rcursor);
538         COMMIT;
539       END IF;
540 
541       EXCEPTION
542         when others then
543         l_string := l_string ||'<SCRIPT LANGUAGE="Javascript">';
544         l_string := l_string ||'ERROR in LovData: '||SQLERRM;
545         l_string := l_string ||'</SCRIPT>';
546       END;
547 
548      -- Start painting only those rows in the range specified
549      if (l_count >= l_startnum AND l_count < l_startnum + p_rowcount) then
550         -- Start painting the column values
551         for l_pos1 in p_head.FIRST .. p_head.COUNT loop
552           if (p_link(l_pos1) = FND_API.G_TRUE) then
553              l_linktext := bis_utilities_pvt.escape_html(l_colstore(l_pos1));
554              for l_pos2 in p_head.FIRST..p_head.COUNT loop
555                if (p_value(l_pos2) = FND_API.G_TRUE) then
556                   l_linkvalue := bis_utilities_pvt.escape_html(l_colstore(l_pos2));
557                   exit;
558                end if;
559               end loop;
560              --l_string := l_string ||'<TR BGCOLOR='||c_rowcolor||'>';
561                l_string := l_string ||'<TR class="C_ROWCOLOR">';
562              --l_string := l_string ||'<TD NOWRAP HEIGHT=10><A HREF="Javascript:transfer_value('''||ICX_UTIL.replace_onMouseOver_quotes(l_linktext)||''','''||l_linkvalue||''')">'||l_linktext||'</A></TD>';
563              l_string := l_string ||'<TD NOWRAP HEIGHT=10><A HREF="Javascript:transfer_value('''||REPLACE(REPLACE(REPLACE(l_linktext,'''','\'''),'"','`'||c_amp||'quot;'),'\\','\')||''','''||l_linkvalue||''')">'||l_linktext||'</A></TD>';
564 
565           elsif (p_disp(l_pos1) = FND_API.G_TRUE) AND
566                 (p_link(l_pos1) = FND_API.G_FALSE) then
567              --l_string := l_string ||'<TR BGCOLOR='||c_rowcolor||'>';
568              l_string := l_string ||'<TR class="C_ROWCOLOR">';
569              l_string := l_string ||'<TD NOWRAP >'||bis_utilities_pvt.escape_html(l_colstore(l_pos1))||'</TD>';
570           end if;   -- to check type of column
571         end loop; --  p_coldata loop to determine the context of each col
572        l_string := l_string ||'</TR>';
573 
574       end if;   -- if count of rows is between the start and end
575       l_count := l_count + 1;
576       exit when (l_count >= l_startnum + p_rowcount) OR
577                 (l_count > l_totalcount);
578 
579      end loop;
580 
581    -- Close the cursor
582    IF DBMS_SQL.IS_OPEN(l_rcursor) THEN
583      DBMS_SQL.CLOSE_CURSOR(l_rcursor);
584      COMMIT;
585    END IF;
586    l_string := l_string ||'</TABLE>';
587    l_string := l_string ||'</td>';
588    l_string := l_string ||'</TR>';
589    l_string := l_string ||'</TABLE>';
590    --l_string := l_string || '</FORM>';
591    l_string := l_string || '</CENTER>';
592 -- end if; -- icx_validate session
593 --end if; --icx_sec.validateSession
594 
595 x_string := l_string;
596 
597 exception
598   when others then
599     x_string := SQLERRM;
600     IF DBMS_SQL.IS_OPEN(l_rcursor) THEN
601       DBMS_SQL.CLOSE_CURSOR(l_rcursor);
602       COMMIT;
603     END IF;
604 end lov_data;
605 
606 -- ****************************************************
607 --      Frame that paints the Buttons
608 -- ****************************************************
609 procedure lov_buttons
610 ( p_startnum          in  pls_integer   default NULL
611 , p_rowcount          in  pls_integer   default NULL
612 , p_totalavailable    in  pls_integer   default NULL
613 , x_string             out nocopy varchar
614 )
615 is
616 i                       pls_integer;
617 l_startnum              pls_integer;
618 l_endnum                pls_integer;
619 l_start                 pls_integer;
620 l_end                    pls_integer;
621 l_snext                  pls_integer;
622 l_enext                  pls_integer;
623 l_sprev                  pls_integer;
624 l_eprev                  pls_integer;
625 l_totalcount             pls_integer := p_totalavailable;
626 l_to                     varchar2(15):= ' to ';
627 l_previous               varchar2(30):= 'Previous';
628 l_next                   varchar2(30):= 'Next';
629 l_of                     varchar2(15) := ' of ';
630 l_values                 varchar2(15) := 'Values ';
631 l_string                 VARCHAR2(32000);
632 
633 -- meastmon 06/20/2001
634 -- Fix for ADA buttons
635 l_button_str             varchar2(32000);
636 l_button_tbl             BIS_UTILITIES_PVT.HTML_Button_Tbl_Type;
637 l_append_string          VARCHAR2(1000);
638 l_swan_enabled           BOOLEAN;
639 l_button_edge            VARCHAR2(100);
640 
641 begin
642 
643 --if icx_sec.validateSession then
644   l_swan_enabled := BIS_UTILITIES_PVT.checkSWANEnabled();
645   l_startnum := NVL(p_startnum,1);
646 
647    -- Set the numbers for the buttons for next set of rows
648   l_snext := l_startnum + p_rowcount;
649   l_sprev := l_startnum - p_rowcount;
650 
651   l_string  := l_string  ||'<SCRIPT LANGUAGE="Javascript">';
652 
653   l_string  := l_string  ||'function doNothing() {';
654 
655   l_string  := l_string  ||'}';
656 
657   l_string  := l_string  ||'function get_nextNum() {';
658   l_string  := l_string  ||'top.document.DefaultFormName.p_startnum.value ='||l_snext||';';
659   l_string  := l_string  ||'top.document.DefaultFormName.submit();';
660   l_string  := l_string  ||'}';
661 
662   l_string  := l_string  ||'function get_prevNum() {';
663   l_string  := l_string  ||'top.document.DefaultFormName.p_startnum.value ='||l_sprev||';';
664   l_string  := l_string  ||'top.document.DefaultFormName.submit();';
665   l_string  := l_string  ||'}';
666 
667   l_string  := l_string  ||'function getRange() {';
668   l_string  := l_string  ||'  var tmp = document.DefaultFormName.range.selectedIndex;';
669   l_string  := l_string  ||'    top.document.DefaultFormName.p_startnum.value = document.DefaultFormName.range[tmp].value;';
670   l_string  := l_string  ||'    top.document.DefaultFormName.submit();';
671   l_string  := l_string  ||'  }';
672 
673   --  Propagate the cancel event upwards to the frameset section
674   l_string  := l_string  ||'  function cancel() {';
675   l_string  := l_string  ||'      top.closeMe();';
676   l_string  := l_string  ||'    }';
677 
678   l_string  := l_string  ||'  </SCRIPT>';
679 
680  -- l_string  := l_string  ||'  <BODY BGCOLOR="'||c_fmbgcolor||'">';
681    l_string  := l_string  ||'  <BODY class="C_FMBGCOLOR">';
682 
683   l_string  := l_string  ||'<CENTER>';
684 
685   l_string  := l_string  ||'<!-- Open table -->';
686   l_string  := l_string  ||'<table border=0 cellspacing=0 cellpadding=0 width=100%>';
687 
688   IF(l_swan_enabled)THEN
689    l_button_edge := BIS_UTILITIES_PVT.G_FLAT_EDGE;
690   ELSE
691    l_button_edge := BIS_UTILITIES_PVT.G_ROUND_EDGE;
692   END IF;
693 
694 
695      -- Check if the Buttons need to be painted
696   if (l_totalcount > p_rowcount) then
697 
698     l_string  := l_string  ||'<!-- Open row because totalcount is more than rowcount -->';
699     --l_string  := l_string  ||'<TR BGCOLOR='||c_pgbgcolor||'>';
700     l_string  := l_string  ||'<TR class="C_PGBGCOLOR">';
701     l_string  := l_string  ||'<td align="CENTER" nowrap="YES">';
702     l_string  := l_string  ||'<!-- Open embedded table  -->';
703     l_string  := l_string  ||'<table border=0 cellspacing=0 cellpadding=0 width=100%>';
704     l_string  := l_string  ||'<!-- Open row inside embedded table containing prev-next buttons and range -->';
705     l_string  := l_string  ||'<TR>';
706 
707     if (l_startnum < p_rowcount) then
708       l_string  := l_string  ||'<td align="RIGHT" nowrap="YES">';
709 
710          --meastmon 06/20/2001. ICX Button is not ADA Complaint. ICX is not going to fix that.
711          --icx_plug_utilities.buttonLeft(c_previous||' '
712          --                            ||p_rowcount,'Javascript:doNothing()');
713        l_button_tbl(1).left_edge := l_button_edge;
714        l_button_tbl(1).right_edge := BIS_UTILITIES_PVT.G_FLAT_EDGE;
715        l_button_tbl(1).disabled := FND_API.G_FALSE;
716        l_button_tbl(1).label := c_previous||' '||p_rowcount;
717        l_button_tbl(1).href := 'Javascript:doNothing()';
718        BIS_UTILITIES_PVT.GetButtonString(l_button_tbl, l_button_str);
719        l_string  := l_string  ||l_button_str;
720 
721        l_string  := l_string  ||'</td>';
722      else
723        l_string  := l_string  ||'<td align="RIGHT" nowrap="YES">';
724 
725          --meastmon 06/20/2001. ICX Button is not ADA Complaint. ICX is not going to fix that.
726          --icx_plug_utilities.buttonLeft(c_previous||' '
727          --                            ||p_rowcount,'Javascript:get_prevNum()');
728        l_button_tbl(1).left_edge := l_button_edge;
729        l_button_tbl(1).right_edge := BIS_UTILITIES_PVT.G_FLAT_EDGE;
730        l_button_tbl(1).disabled := FND_API.G_FALSE;
731        l_button_tbl(1).label := c_previous||' '||p_rowcount;
732        l_button_tbl(1).href := 'Javascript:get_prevNum()';
733        BIS_UTILITIES_PVT.GetButtonString(l_button_tbl, l_button_str);
734        l_string  := l_string  ||l_button_str;
735 
736        l_string  := l_string  ||'</td>';
737      end if;
738 
739        l_string  := l_string  ||'<td align="CENTER">';
740        l_string  := l_string  ||'<SELECT NAME="range" onChange="getRange()">';
741        i := 1;
742        l_start := 1;
743        l_end := 1;
744        while (l_end <= l_totalcount) loop
745          l_end := l_start + (p_rowcount -1);
746          if (l_end >= l_totalcount) then
747             l_end := l_totalcount;
748             if l_start = l_startnum then
749               l_string  := l_string  ||'<OPTION SELECTED VALUE='||l_start||'>'||l_start||l_to||l_end||l_of||l_totalcount;
750             else
751               l_string  := l_string  ||'<OPTION VALUE='||l_start||'>'||l_start||l_to||l_end||l_of||l_totalcount;
752             end if;
753             exit;
754          end if;
755          if l_start = l_startnum then
756            l_string  := l_string  ||'<OPTION SELECTED VALUE='||l_start||'>'||l_start||l_to||l_end||l_of||l_totalcount;
757          else
758            l_string  := l_string  ||'<OPTION VALUE='||l_start||'>'||l_start||l_to||l_end||l_of||l_totalcount;
759          end if;
760 
761          i := i + 1;
762          l_start := l_start + p_rowcount;
763        end loop;
764        l_string  := l_string  ||'</SELECT>';
765        l_string  := l_string  ||'</td>';
766 
767        if (l_startnum + p_rowcount >= l_totalcount) then
768          l_string  := l_string  ||'<td align="LEFT" nowrap="YES">';
769 
770          --meastmon 06/20/2001. ICX Button is not ADA Complaint. ICX is not going to fix that.
771          --icx_plug_utilities.buttonRight(c_next||' '
772          --                  ||p_rowcount,'Javascript:doNothing()');
773          l_button_tbl(1).left_edge := BIS_UTILITIES_PVT.G_FLAT_EDGE;
774          l_button_tbl(1).right_edge := l_button_edge;
775          l_button_tbl(1).disabled := FND_API.G_FALSE;
776          l_button_tbl(1).label := c_next||' '||p_rowcount;
777          l_button_tbl(1).href := 'Javascript:doNothing()';
778          BIS_UTILITIES_PVT.GetButtonString(l_button_tbl, l_button_str);
779          l_string  := l_string  ||l_button_str;
780 
781          l_string  := l_string  ||'</td>';
782        else
783          l_string  := l_string  ||'<td align="LEFT" nowrap="YES">';
784 
785          --meastmon 06/20/2001. ICX Button is not ADA Complaint. ICX is not going to fix that.
786          --icx_plug_utilities.buttonRight(c_next||' '
787          --                   ||p_rowcount,'Javascript:get_nextNum()');
788          l_button_tbl(1).left_edge := BIS_UTILITIES_PVT.G_FLAT_EDGE;
789          l_button_tbl(1).right_edge := l_button_edge;
790          l_button_tbl(1).disabled := FND_API.G_FALSE;
791          l_button_tbl(1).label := c_next||' '||p_rowcount;
792          l_button_tbl(1).href := 'Javascript:get_nextNum()';
793          BIS_UTILITIES_PVT.GetButtonString(l_button_tbl, l_button_str);
794          l_string  := l_string  ||l_button_str;
795 
796          l_string  := l_string  ||'</td>';
797        end if;
798 
799        l_string  := l_string  ||'<!-- Close row containing buttons and range poplist -->';
800        l_string  := l_string  ||'</TR>';
801        l_string  := l_string  ||'<!-- Close embedded table containing buttons and range poplist -->';
802        l_string  := l_string  ||'</TABLE>';
803        l_string  := l_string  ||'</td>';
804        l_string  := l_string  ||'<!-- Close row containing embedded table buttons and range poplist -->';
805        l_string  := l_string  ||'</TR>';
806 
807      else
808        l_string  := l_string  ||'<!-- If totalcount is less than rowcount paint an extra stip of grey -->';
809        --l_string  := l_string  ||'<TR BGCOLOR='||c_pgbgcolor||'>';
810        l_string  := l_string  ||'<TR class="C_PGBGCOLOR">';
811        l_string  := l_string  ||'<td><BR></td>';
812        l_string  := l_string  ||'</TR>';
813 
814    end if;    -- to decide to even print the prev,next,range items
815 
816    l_string  := l_string  ||'<!-- Open row to paint an empty strip of framecolor -->';
817    --l_string  := l_string  ||'<TR BGCOLOR='||c_fmbgcolor||'>';
818    /*l_string  := l_string  ||'<TR style="background-image:url(/OA_HTML/cabo/images/footerBg.gif);background-repeat:repeat-x;height:41px" >';
819    l_string  := l_string  ||'<td><font size = -2><BR></font></td>';
820    l_string  := l_string  ||'<!-- Close row to paint an empty strip of framecolor -->';
821    l_string  := l_string  ||'</TR>';*/
822    l_string  := l_string  ||'<!-- Open row to paint the cancel button -->';
823 
824    --l_string  := l_string  ||'<TR BGCOLOR='||c_fmbgcolor||'>';
825    IF(l_swan_enabled)THEN
826     l_string  := l_string  ||'<TR style="background-image:url(/OA_HTML/cabo/images/footerBg.gif);background-repeat:repeat-x;height:41px" >';
827    ELSE
828     l_string  := l_string  ||'<TR class="C_FMBGCOLOR">';
829    END IF;
830    l_string  := l_string  ||'<td align="RIGHT">';
831    l_string  := l_string  ||'<table border=0 cellspacing=0 cellpadding=0 width=20%>';
832    l_string  := l_string  ||'<TR>';
833    l_string  := l_string  ||'<td align="RIGHT" nowrap="YES">';
834 
835     --meastmon 06/20/2001. ICX Button is not ADA Complaint. ICX is not going to fix that.
836     --icx_plug_utilities.buttonBoth(c_cancel,'Javascript:cancel()');
837     l_button_tbl(1).left_edge := l_button_edge;
838     l_button_tbl(1).right_edge := l_button_edge;
839     l_button_tbl(1).disabled := FND_API.G_FALSE;
840     l_button_tbl(1).label := c_cancel;
841     l_button_tbl(1).href := 'Javascript:cancel()';
842     BIS_UTILITIES_PVT.GetButtonString(l_button_tbl, l_button_str);
843     l_string  := l_string  ||l_button_str;
844 
845     l_string  := l_string  ||'</td>';
846     l_string  := l_string  ||'</TR>';
847     l_string  := l_string  ||'</TABLE>';
848     l_string  := l_string  ||'</td>';
849     l_string  := l_string  ||'<!-- Close row to paint the cancel button -->';
850     l_string  := l_string  ||'</TR>';
851     l_string  := l_string  ||'<!-- Close main table -->';
852     l_string  := l_string  ||'</TABLE>';
853     l_string  := l_string  ||'</CENTER>';
854     --l_string  := l_string  ||'</FORM>';
855 
856     x_string := l_string;
857 
858 --end if; --icx_sec.validateSession
859 
860 exception
861   when others then --htp.p(SQLERRM);
862     x_string := SQLERRM;
863 end lov_buttons;
864 
865 
866 -- ****************************************************
867 --     Function to return a string with attachments on
868 --               both sides
869 -- ****************************************************
870 function concat_string (p_search_str  varchar2 default NULL)
871 return
872    varchar2 is
873 v_local_str   varchar2(200);
874 
875 begin
876    v_local_str := ''''||NVL(p_search_str,c_percent)||'''';
877 
878    return v_local_str;
879 end concat_string;
880 
881 -- *****************************************************
882 --      Procedure to paint the Javascript for LOV window
883 -- *****************************************************
884 procedure lovjscript
885 (x_string out nocopy varchar2
886 )
887 is
888 l_string    VARCHAR2(32000);
889 begin
890 --if icx_sec.validateSession then
891   l_string := l_string || '<SCRIPT LANGUAGE="JavaScript">';
892       -- **************************
893       --   BEGIN MODAL DIALOG CODE
894       -- **************************
895    -- Global for type of browser
896   l_string := l_string ||'var Nav4 = ((navigator.appName == "Netscape") '||c_amp|| c_amp||' (parseInt(navigator.appVersion) == 4));';
897 
898    -- one object tracks the current modal dialog spawned from this window
899   l_string := l_string ||'var modalWin = new Object();';
900 
901    -- Generate a modal window from any frame of the parent window
902    -- Parameters:
903    --  js_procname : plsql procedure that creates the sql query
904    --  js_qrycnd   : query condition
905    --  js_jsfuncname : name of the javascript function that will
906    --  receive the returning value
907   l_string := l_string ||' function getLOV(js_procname,js_qrycnd,js_jsfuncname,Z,js_dim1_lbl) {';
908    --l_string := l_string ||'// Bug 1797465 if label has a space then replace it with +';
909   l_string := l_string ||'out = " "; ';--// replace this
910   l_string := l_string ||'add = "+";'; --// with this';
911   l_string := l_string ||'temp = "" + js_dim1_lbl; ';--// temporary holder';
912 
913   l_string := l_string ||'while (temp.indexOf(out)>-1) {';
914   l_string := l_string ||'pos= temp.indexOf(out);';
915   l_string := l_string ||'temp = "" + (temp.substring(0, pos) + add +';
916   l_string := l_string ||'temp.substring((pos + out.length), temp.length));';
917   l_string := l_string ||'}';
918   --l_string := l_string ||'// load up properties of the modal window object';
919   --l_string := l_string ||'modalWin.url = js_procname + "p_qrycnd=" + js_qrycnd + "'||c_amp||'p_jsfuncname=" + js_jsfuncname + "'||c_amp||'Z=" + Z + "'||c_amp||'p_dim1_lbl=" + temp;';
920   l_string := l_string ||'modalWin.url = "/OA_HTML/OA.jsp?page=/oracle/apps/bis/pmf/pmportlet/pages/BISPMFLOV'||c_amp||'p_qrycnd=" + js_qrycnd + "'||c_amp||'p_jsfuncname=" + js_jsfuncname + "'||c_amp||'Z=" + Z + "'||c_amp||'p_dim1_lbl=" + temp;';
921   --l_string := l_string ||'//     alert("Window URL: "+modalWin.url);';
922   l_string := l_string ||'modalWin.width = 400;';
923   l_string := l_string ||'modalWin.height = 460;';
924   --l_string := l_string ||'// keep name unique so Navigator does not overwrite an existing dialog';
925   l_string := l_string ||'modalWin.name = (new Date()).getSeconds().toString();';
926   l_string := l_string ||'if (Nav4) {';
927   --l_string := l_string ||'// center on the main window';
928   l_string := l_string ||'modalWin.left = window.screenX + ((window.outerWidth - modalWin.width) / 2);';
929   l_string := l_string ||'modalWin.top = window.screenY + ((window.outerHeight - modalWin.height) / 2);';
930   l_string := l_string ||'var attr = "screenX=" + modalWin.left + ",screenY=" + modalWin.top + ",resizable=no,dependent=yes,width=" + modalWin.width + ",height=" + modalWin.height;';
931   l_string := l_string ||'   } else {';
932   --l_string := l_string ||'// best we can do is center in screen';
933   l_string := l_string ||'modalWin.left = (screen.width - modalWin.width) / 2;';
934   l_string := l_string ||'modalWin.top = (screen.height - modalWin.height) / 2;';
935   l_string := l_string ||'var attr = "left=" + modalWin.left + ",top=" + modalWin.top+ ",resizable=no,width=" + modalWin.width + ",height=" + modalWin.height;';
936   l_string := l_string ||'}';
937   --l_string := l_string ||'// generate the window and make sure it has focus';
938   l_string := l_string ||'modalWin.win=window.open(modalWin.url, modalWin.name, attr);';
939   l_string := l_string ||'modalWin.win.focus();';
940   l_string := l_string ||'}';
941 
942 
943   -- event handler to prevent any Navigator widget action when modal is active
944   l_string := l_string ||'function deadend() {';
945   l_string := l_string ||'if (modalWin.win '||c_amp || c_amp||' !modalWin.win.closed) {';
946   l_string := l_string ||'modalWin.win.focus();';
947   l_string := l_string ||'return false;';
948   l_string := l_string ||'}';
949   l_string := l_string ||'}';
950 
951   -- preserve IE link onclick event handlers while they are disabled;
952   -- restore when reenabling the main window
953   l_string := l_string ||'var IELinkClicks;';
954 
955   -- disable form elements and links in all frames for IE
956   l_string := l_string ||'function disableForms() {';
957   l_string := l_string ||'IELinkClicks = new Array();';
958   l_string := l_string ||'for (var h = 0; h < frames.length; h++) {';
959   l_string := l_string ||'for (var i = 0; i < frames[h].document.forms.length; i++) {';
960   l_string := l_string ||'for (var j=0; j<frames[h].document.forms[i].elements.length; j++) {';
961   l_string := l_string ||'frames[h].document.forms[i].elements[j].disabled = true;';
962   l_string := l_string ||'}';
963   l_string := l_string ||'}';
964   l_string := l_string ||'IELinkClicks[h] = new Array();';
965   l_string := l_string ||'for (i = 0; i < frames[h].document.links.length; i++) {';
966   l_string := l_string ||'IELinkClicks[h][i] = frames[h].document.links[i].onclick;';
967   l_string := l_string ||'frames[h].document.links[i].onclick = deadend;';
968   l_string := l_string ||'}';
969   l_string := l_string ||'}';
970   l_string := l_string ||'}';
971 
972   -- restore IE form elements and links to normal behavior
973   l_string := l_string ||'function enableForms() {';
974   l_string := l_string ||'for (var h = 0; h < frames.length; h++) {';
975   l_string := l_string ||'for (var i = 0; i < frames[h].document.forms.length; i++) {';
976   l_string := l_string ||'for (var j=0; j<frames[h].document.forms[i].elements.length; j++) {';
977   l_string := l_string ||'frames[h].document.forms[i].elements[j].disabled = false;';
978   l_string := l_string ||'}';
979   l_string := l_string ||'}';
980   l_string := l_string ||'for (i = 0; i < frames[h].document.links.length; i++) {';
981   l_string := l_string ||'frames[h].document.links[i].onclick = IELinkClicks[h][i];';
982   l_string := l_string ||'}';
983   l_string := l_string ||'}';
984   l_string := l_string ||' }';
985 
986   -- extra work for Navigator
987   l_string := l_string ||'function blockEvents() {';
988   l_string := l_string ||'if (Nav4) {';
989   l_string := l_string ||'window.captureEvents(Event.CLICK | Event.MOUSEDOWN | Event.MOUSEUP | Event.FOCUS);';
990   l_string := l_string ||'window.onclick = deadend;';
991   l_string := l_string ||'window.onfocus = checkModal;';
992   l_string := l_string ||'} else {';
993   l_string := l_string ||'disableForms();';
994   l_string := l_string ||'}';
995   l_string := l_string ||'}';
996 
997   l_string := l_string ||'function unblockEvents() {';
998   l_string := l_string ||'if (Nav4) {';
999   l_string := l_string ||'window.releaseEvents(Event.CLICK | Event.MOUSEDOWN | Event.MOUSEUP | Event.FOCUS);';
1000   l_string := l_string ||'window.onclick = null;';
1001   l_string := l_string ||'window.onfocus = null;';
1002   l_string := l_string ||'} else {';
1003   l_string := l_string ||'enableForms();';
1004   l_string := l_string ||'}';
1005   l_string := l_string ||'}';
1006 
1007   -- invoked by onFocus event handler of EVERY frame document
1008   l_string := l_string ||'function checkModal() {';
1009   l_string := l_string ||'  if (modalWin.win '||c_amp || c_amp||' !modalWin.win.closed) {';
1010   l_string := l_string ||'modalWin.win.focus();';
1011   l_string := l_string ||'}';
1012   l_string := l_string ||'}';
1013 
1014   -- clear opener reference in a modal if dialog is showing;
1015   -- takes care of case when user closes main window while dialog is showing
1016   l_string := l_string ||'function cancelModal() {';
1017   l_string := l_string ||'if (modalWin.win '||c_amp || c_amp||' !modalWin.win.closed) {';
1018   l_string := l_string ||'modalWin.win.opener = null;';
1019   l_string := l_string ||'}';
1020   l_string := l_string ||'}';
1021 
1022 
1023 
1024   l_string := l_string ||'function getdim0(name,id) {';
1025   l_string := l_string ||'var end = document.DefaultFormName.dim0.length;';
1026   l_string := l_string ||'var tempText = document.DefaultFormName.dim0[end-1].text;';
1027   l_string := l_string ||'var tempValue = document.DefaultFormName.dim0.options[end-1].value;';
1028   --l_string := l_string ||'// 2309961 add to the poplist only when it is not already available';
1029   l_string := l_string ||'var found = "false";';
1030   l_string := l_string ||'var ind = 0;';
1031   l_string := l_string ||'for (var i = 0; i < document.DefaultFormName.dim0.length; i++) {';
1032   l_string := l_string ||'if (document.DefaultFormName.dim0[i].text == name ){';
1033   l_string := l_string ||'found = "true";';
1034   l_string := l_string ||'ind = i;';
1035   l_string := l_string ||'}';
1036   l_string := l_string ||'}';
1037   l_string := l_string ||'if (found == "false"){';
1038   l_string := l_string ||'document.DefaultFormName.dim0[end-1].text = name;';
1039   l_string := l_string ||'document.DefaultFormName.dim0.options[end-1].value = id;';
1040   l_string := l_string ||'document.DefaultFormName.dim0.options[end] = new Option(tempText,tempValue);';
1041   l_string := l_string ||'document.DefaultFormName.dim0.selectedIndex = end-1;';
1042   l_string := l_string ||'}';
1043   l_string := l_string ||'else ';
1044   l_string := l_string ||'document.DefaultFormName.dim0.selectedIndex = ind;';
1045   --l_string := l_string ||'// 2309961 add to the poplist only when it is not already available';
1046   l_string := l_string ||'}';
1047 
1048   l_string := l_string ||'function getdim1(name,id) {';
1049   l_string := l_string ||'var end = document.DefaultFormName.dim1.length;';
1050   l_string := l_string ||'var tempText = document.DefaultFormName.dim1[end-1].text;';
1051   l_string := l_string ||'var tempValue = document.DefaultFormName.dim1.options[end-1].value;';
1052   --l_string := l_string ||'// 2309961 add to the poplist only when it is not already available';
1053   l_string := l_string ||'var found = "false";';
1054   l_string := l_string ||'var ind = 0;';
1055   l_string := l_string ||'for (var i = 0; i < document.DefaultFormName.dim1.length; i++) {';
1056   l_string := l_string ||'if (document.DefaultFormName.dim1[i].text == name ){';
1057   l_string := l_string ||'found = "true";';
1058   l_string := l_string ||'ind = i;';
1059   l_string := l_string ||'}';
1060   l_string := l_string ||'}';
1061   l_string := l_string ||'if (found == "false"){';
1062   l_string := l_string ||'document.DefaultFormName.dim1[end-1].text = name;';
1063   l_string := l_string ||'document.DefaultFormName.dim1.options[end-1].value = id;';
1064   l_string := l_string ||'document.DefaultFormName.dim1.options[end] = new Option(tempText,tempValue);';
1065   l_string := l_string ||'document.DefaultFormName.dim1.selectedIndex = end-1;';
1066   l_string := l_string ||'}';
1067   l_string := l_string ||'else ';
1068   l_string := l_string ||'document.DefaultFormName.dim1.selectedIndex = ind;';
1069   --l_string := l_string ||'// 2309961 add to the poplist only when it is not already available';
1070   l_string := l_string ||'}';
1071 
1072   l_string := l_string ||'function getdim2(name,id) {';
1073   l_string := l_string ||'var end = document.DefaultFormName.dim2.length;';
1074   l_string := l_string ||'var tempText = document.DefaultFormName.dim2[end-1].text;';
1075   l_string := l_string ||'var tempValue = document.DefaultFormName.dim2.options[end-1].value;';
1076   --l_string := l_string ||'// 2309961 add to the poplist only when it is not already available';
1077   l_string := l_string ||'var found = "false";';
1078   l_string := l_string ||'var ind = 0;';
1079   l_string := l_string ||'for (var i = 0; i < document.DefaultFormName.dim2.length; i++) {';
1080   l_string := l_string ||'if (document.DefaultFormName.dim2[i].text == name ){';
1081   l_string := l_string ||'found = "true";';
1082   l_string := l_string ||'ind = i;';
1083   l_string := l_string ||'}';
1084   l_string := l_string ||'}';
1085   l_string := l_string ||'if (found == "false"){';
1086   l_string := l_string ||'document.DefaultFormName.dim2[end-1].text = name;';
1087   l_string := l_string ||'document.DefaultFormName.dim2.options[end-1].value = id;';
1088   l_string := l_string ||'document.DefaultFormName.dim2.options[end] = new Option(tempText,tempValue);';
1089   l_string := l_string ||'document.DefaultFormName.dim2.selectedIndex = end-1;';
1090   l_string := l_string ||'}';
1091   l_string := l_string ||'else ';
1092   l_string := l_string ||'document.DefaultFormName.dim2.selectedIndex = ind;';
1093   --l_string := l_string ||'// 2309961 add to the poplist only when it is not already available';
1094   l_string := l_string ||'}';
1095 
1096   l_string := l_string ||'function getdim3(name,id) {';
1097   l_string := l_string ||'var end = document.DefaultFormName.dim3.length;';
1098   l_string := l_string ||'var tempText = document.DefaultFormName.dim3[end-1].text;';
1099   l_string := l_string ||'var tempValue = document.DefaultFormName.dim3.options[end-1].value;';
1100   --l_string := l_string ||'// 2309961 add to the poplist only when it is not already available';
1101   l_string := l_string ||'var found = "false";';
1102   l_string := l_string ||'var ind = 0;';
1103   l_string := l_string ||'for (var i = 0; i < document.DefaultFormName.dim3.length; i++) {';
1104   l_string := l_string ||'if (document.DefaultFormName.dim3[i].text == name ){';
1105   l_string := l_string ||'found = "true";';
1106   l_string := l_string ||'ind = i;';
1107   l_string := l_string ||'}';
1108   l_string := l_string ||'}';
1109   l_string := l_string ||'if (found == "false"){';
1110   l_string := l_string ||'document.DefaultFormName.dim3[end-1].text = name;';
1111   l_string := l_string ||'document.DefaultFormName.dim3.options[end-1].value = id;';
1112   l_string := l_string ||'document.DefaultFormName.dim3.options[end] = new Option(tempText,tempValue);';
1113   l_string := l_string ||'document.DefaultFormName.dim3.selectedIndex = end-1;';
1114   l_string := l_string ||'}';
1115   l_string := l_string ||'else ';
1116   l_string := l_string ||'document.DefaultFormName.dim3.selectedIndex = ind;';
1117   --l_string := l_string ||'// 2309961 add to the poplist only when it is not already available';
1118   l_string := l_string ||'}';
1119 
1120   l_string := l_string ||'function getdim4(name,id) {';
1121   l_string := l_string ||'var end = document.DefaultFormName.dim4.length;';
1122   l_string := l_string ||'var tempText = document.DefaultFormName.dim4[end-1].text;';
1123   l_string := l_string ||'var tempValue = document.DefaultFormName.dim4.options[end-1].value;';
1124   --l_string := l_string ||'// 2309961 add to the poplist only when it is not already available';
1125   l_string := l_string ||'var found = "false";';
1126   l_string := l_string ||'var ind = 0;';
1127   l_string := l_string ||'for (var i = 0; i < document.DefaultFormName.dim4.length; i++) {';
1128   l_string := l_string ||'if (document.DefaultFormName.dim4[i].text == name ){';
1129   l_string := l_string ||'found = "true";';
1130   l_string := l_string ||'ind = i;';
1131   l_string := l_string ||'}';
1132   l_string := l_string ||'}';
1133   l_string := l_string ||'if (found == "false"){';
1134   l_string := l_string ||'document.DefaultFormName.dim4[end-1].text = name;';
1135   l_string := l_string ||'document.DefaultFormName.dim4.options[end-1].value = id;';
1136   l_string := l_string ||'document.DefaultFormName.dim4.options[end] = new Option(tempText,tempValue);';
1137   l_string := l_string ||'document.DefaultFormName.dim4.selectedIndex = end-1;';
1138   l_string := l_string ||'}';
1139   l_string := l_string ||'else ';
1140   l_string := l_string ||'document.DefaultFormName.dim4.selectedIndex = ind;';
1141   --l_string := l_string ||'// 2309961 add to the poplist only when it is not already available';
1142   l_string := l_string ||'}';
1143 
1144   l_string := l_string ||'function getdim5(name,id) {';
1145   l_string := l_string ||'var end = document.DefaultFormName.dim5.length;';
1146   l_string := l_string ||'var tempText = document.DefaultFormName.dim5[end-1].text;';
1147   l_string := l_string ||'var tempValue = document.DefaultFormName.dim5.options[end-1].value;';
1148   --l_string := l_string ||'// 2309961 add to the poplist only when it is not already available';
1149   l_string := l_string ||'var found = "false";';
1150   l_string := l_string ||'var ind = 0;';
1151   l_string := l_string ||'for (var i = 0; i < document.DefaultFormName.dim5.length; i++) {';
1152   l_string := l_string ||'if (document.DefaultFormName.dim5[i].text == name ){';
1153   l_string := l_string ||'found = "true";';
1154   l_string := l_string ||'ind = i;';
1155   l_string := l_string ||'}';
1156   l_string := l_string ||'}';
1157   l_string := l_string ||'if (found == "false"){';
1158   l_string := l_string ||'document.DefaultFormName.dim5[end-1].text = name;';
1159   l_string := l_string ||'document.DefaultFormName.dim5.options[end-1].value = id;';
1160   l_string := l_string ||'document.DefaultFormName.dim5.options[end] = new Option(tempText,tempValue);';
1161   l_string := l_string ||'document.DefaultFormName.dim5.selectedIndex = end-1;';
1162   l_string := l_string ||'}';
1163   l_string := l_string ||'else ';
1164   l_string := l_string ||'document.DefaultFormName.dim5.selectedIndex = ind;';
1165   --l_string := l_string ||'// 2309961 add to the poplist only when it is not already available';
1166   l_string := l_string ||'}';
1167 
1168   l_string := l_string ||'function getdim6(name,id) {';
1169   l_string := l_string ||'var end = document.DefaultFormName.dim6.length;';
1170   l_string := l_string ||'var tempText = document.DefaultFormName.dim6[end-1].text;';
1171   l_string := l_string ||'var tempValue = document.DefaultFormName.dim6.options[end-1].value;';
1172   --l_string := l_string ||'// 2309961 add to the poplist only when it is not already available';
1173   l_string := l_string ||'var found = "false";';
1174   l_string := l_string ||'var ind = 0;';
1175   l_string := l_string ||'for (var i = 0; i < document.DefaultFormName.dim6.length; i++) {';
1176   l_string := l_string ||'if (document.DefaultFormName.dim6[i].text == name ){';
1177   l_string := l_string ||'found = "true";';
1178   l_string := l_string ||'ind = i;';
1179   l_string := l_string ||'}';
1180   l_string := l_string ||'}';
1181   l_string := l_string ||'if (found == "false"){';
1182   l_string := l_string ||'document.DefaultFormName.dim6[end-1].text = name;';
1183   l_string := l_string ||'document.DefaultFormName.dim6.options[end-1].value = id;';
1184   l_string := l_string ||'document.DefaultFormName.dim6.options[end] = new Option(tempText,tempValue);';
1185   l_string := l_string ||'document.DefaultFormName.dim6.selectedIndex = end-1;';
1186   l_string := l_string ||'}';
1187   l_string := l_string ||'else ';
1188   l_string := l_string ||'document.DefaultFormName.dim6.selectedIndex = ind;';
1189   --l_string := l_string ||'// 2309961 add to the poplist only when it is not already available';
1190   l_string := l_string ||'}';
1191 
1192   l_string := l_string ||'function getdim7(name,id) {';
1193   l_string := l_string ||'var end = document.DefaultFormName.dim7.length;';
1194   l_string := l_string ||'var tempText = document.DefaultFormName.dim7[end-1].text;';
1195   l_string := l_string ||'var tempValue = document.DefaultFormName.dim7.options[end-1].value;';
1196   --l_string := l_string ||' // 2309961 add to the poplist only when it is not already available';
1197   l_string := l_string ||'var found = "false";';
1198   l_string := l_string ||'var ind = 0;';
1199   l_string := l_string ||'for (var i = 0; i < document.DefaultFormName.dim7.length; i++) {';
1200   l_string := l_string ||'if (document.DefaultFormName.dim7[i].text == name ){';
1201   l_string := l_string ||'found = "true";';
1202   l_string := l_string ||'ind = i;';
1203   l_string := l_string ||'}';
1204   l_string := l_string ||'}';
1205   l_string := l_string ||'if (found == "false"){';
1206   l_string := l_string ||'document.DefaultFormName.dim7[end-1].text = name;';
1207   l_string := l_string ||'document.DefaultFormName.dim7.options[end-1].value = id;';
1208   l_string := l_string ||'document.DefaultFormName.dim7.options[end] = new Option(tempText,tempValue);';
1209   l_string := l_string ||'document.DefaultFormName.dim7.selectedIndex = end-1;';
1210   l_string := l_string ||'}';
1211   l_string := l_string ||'else ';
1212   l_string := l_string ||'document.DefaultFormName.dim7.selectedIndex = ind;';
1213   --l_string := l_string ||'// 2309961 add to the poplist only when it is not already available';
1214   l_string := l_string ||'}';
1215 
1216 
1217 
1218   -- **************************
1219     --   END MODAL DIALOG CODE
1220   -- **************************
1221   l_string := l_string ||'</SCRIPT>';
1222 --end if; --icx_sec.validateSession
1223 
1224 x_string := l_string;
1225 end lovjscript;
1226 
1227 -- mdamle 01/15/2001 - Added the same lovjscript for the edit page
1228 procedure editlovjscript
1229 ( x_string out nocopy varchar2
1230 )
1231 is
1232 l_string VARCHAR2(32000);
1233 begin
1234 --if icx_sec.validateSession then
1235   l_string := l_string ||'<SCRIPT LANGUAGE="JavaScript">';
1236       -- **************************
1237       --   BEGIN MODAL DIALOG CODE
1238       -- **************************
1239    -- Global for type of browser
1240    l_string := l_string || 'var Nav4 = ((navigator.appName == "Netscape") '||c_amp|| c_amp||' (parseInt(navigator.appVersion) == 4));';
1241 
1242    -- one object tracks the current modal dialog spawned from this window
1243    l_string := l_string || 'var modalWin = new Object();';
1244 
1245    -- Generate a modal window from any frame of the parent window
1246    -- Parameters:
1247    --  js_procname : plsql procedure that creates the sql query
1248    --  js_qrycnd   : query condition
1249    --  js_jsfuncname : name of the javascript function that will
1250    --  receive the returning value
1251    l_string := l_string || ' function getLOV(js_procname,js_qrycnd,js_jsfuncname,Z) {';
1252    --l_string := l_string || '// load up properties of the modal window object';
1253    l_string := l_string || 'modalWin.url = js_procname + "p_qrycnd=" + js_qrycnd + "'||c_amp||'p_jsfuncname=" + js_jsfuncname + "'||c_amp||'Z=" + Z;';
1254    l_string := l_string ||'modalWin.url = "/OA_HTML/OA.jsp?page=/oracle/apps/bis/pmf/pmportlet/pages/BISPMFLOV'||c_amp||'p_qrycnd=" + js_qrycnd + "'||c_amp||'p_jsfuncname=" + js_jsfuncname + "'||c_amp||'Z=" + Z;'; --+ "'||c_amp||'p_dim1_lbl=" + temp;';
1255 
1256    --l_string := l_string ||' //alert("Window URL: "+modalWin.url);';
1257 
1258    l_string := l_string ||'modalWin.width = 400;';
1259    l_string := l_string ||'modalWin.height = 460;';
1260    --l_string := l_string ||'// keep name unique so Navigator does not overwrite an existing dialog';
1261    l_string := l_string ||'modalWin.name = (new Date()).getSeconds().toString();';
1262    l_string := l_string ||'if (Nav4) {';
1263    --l_string := l_string ||'// center on the main window';
1264    l_string := l_string ||'modalWin.left = window.screenX + ((window.outerWidth - modalWin.width) / 2);';
1265    l_string := l_string ||'modalWin.top = window.screenY + ((window.outerHeight - modalWin.height) / 2);';
1266    l_string := l_string ||'var attr = "screenX=" + modalWin.left + ",screenY=" + modalWin.top + ",resizable=no,dependent=yes,width=" + modalWin.width + ",height=" + modalWin.height;';
1267    l_string := l_string ||'} else {';
1268    --l_string := l_string ||'// best we can do is center in screen';
1269    l_string := l_string ||'modalWin.left = (screen.width - modalWin.width) / 2;';
1270    l_string := l_string ||'modalWin.top = (screen.height - modalWin.height) / 2;';
1271    l_string := l_string ||'var attr = "left=" + modalWin.left + ",top=" + modalWin.top+ ",resizable=no,width=" + modalWin.width + ",height=" + modalWin.height;';
1272    l_string := l_string ||'}';
1273    --l_string := l_string ||'// generate the window and make sure it has focus';
1274    l_string := l_string ||'modalWin.win=window.open(modalWin.url, modalWin.name, attr);';
1275    l_string := l_string ||'modalWin.win.focus();';
1276    l_string := l_string ||'}';
1277 
1278   -- event handler to prevent any Navigator widget action when modal is active
1279    l_string := l_string ||'function deadend() {';
1280    l_string := l_string ||'if (modalWin.win '||c_amp || c_amp||' !modalWin.win.closed) {';
1281    l_string := l_string ||'modalWin.win.focus();';
1282    l_string := l_string ||'return false;';
1283    l_string := l_string ||'}';
1284    l_string := l_string ||'}';
1285 
1286    -- preserve IE link onclick event handlers while they are disabled;
1287    -- restore when reenabling the main window
1288    l_string := l_string ||'var IELinkClicks;';
1289 
1290    -- disable form elements and links in all frames for IE
1291    l_string := l_string ||'function disableForms() {';
1292    l_string := l_string ||'  IELinkClicks = new Array();';
1293    l_string := l_string ||'  for (var h = 0; h < frames.length; h++) {';
1294    l_string := l_string ||'     for (var i = 0; i < frames[h].document.forms.length; i++) {';
1295    l_string := l_string ||'for (var j=0; j<frames[h].document.forms[i].elements.length; j++) {';
1296    l_string := l_string ||'frames[h].document.forms[i].elements[j].disabled = true;';
1297    l_string := l_string ||'}';
1298    l_string := l_string ||'}';
1299    l_string := l_string ||'IELinkClicks[h] = new Array();';
1300    l_string := l_string ||'for (i = 0; i < frames[h].document.links.length; i++) {';
1301    l_string := l_string ||'IELinkClicks[h][i] = frames[h].document.links[i].onclick;';
1302    l_string := l_string ||'frames[h].document.links[i].onclick = deadend;';
1303    l_string := l_string ||'}';
1304    l_string := l_string ||'}';
1305    l_string := l_string ||'}';
1306 
1307    -- restore IE form elements and links to normal behavior
1308    l_string := l_string ||'function enableForms() {';
1309    l_string := l_string ||'for (var h = 0; h < frames.length; h++) {';
1310    l_string := l_string ||'for (var i = 0; i < frames[h].document.forms.length; i++) {';
1311    l_string := l_string ||'for (var j=0; j<frames[h].document.forms[i].elements.length; j++) {';
1312    l_string := l_string ||'frames[h].document.forms[i].elements[j].disabled = false;';
1313    l_string := l_string ||'}';
1314    l_string := l_string ||'}';
1315    l_string := l_string ||'for (i = 0; i < frames[h].document.links.length; i++) {';
1316    l_string := l_string ||'frames[h].document.links[i].onclick = IELinkClicks[h][i];';
1317    l_string := l_string ||'}';
1318    l_string := l_string ||'}';
1319    l_string := l_string ||'}';
1320 
1321     -- extra work for Navigator
1322    l_string := l_string ||'function blockEvents() {';
1323    l_string := l_string ||'if (Nav4) {';
1324    l_string := l_string ||'window.captureEvents(Event.CLICK | Event.MOUSEDOWN | Event.MOUSEUP | Event.FOCUS);';
1325    l_string := l_string ||'window.onclick = deadend;';
1326    l_string := l_string ||'window.onfocus = checkModal;';
1327    l_string := l_string ||'} else {';
1328    l_string := l_string ||'disableForms();';
1329    l_string := l_string ||'}';
1330    l_string := l_string ||'}';
1331 
1332    l_string := l_string ||'function unblockEvents() {';
1333    l_string := l_string ||'if (Nav4) {';
1334    l_string := l_string ||'window.releaseEvents(Event.CLICK | Event.MOUSEDOWN | Event.MOUSEUP | Event.FOCUS);';
1335    l_string := l_string ||'window.onclick = null;';
1336    l_string := l_string ||'window.onfocus = null;';
1337    l_string := l_string ||'} else {';
1338    l_string := l_string ||'enableForms();';
1339    l_string := l_string ||'}';
1340    l_string := l_string ||'}';
1341 
1342    -- invoked by onFocus event handler of EVERY frame document
1343    l_string := l_string ||'function checkModal() {';
1344    l_string := l_string ||'if (modalWin.win '||c_amp || c_amp||' !modalWin.win.closed) {';
1345    l_string := l_string ||'modalWin.win.focus();';
1346    l_string := l_string ||'}';
1347    l_string := l_string ||'}';
1348 
1349     -- clear opener reference in a modal if dialog is showing;
1350     -- takes care of case when user closes main window while dialog is showing
1351    l_string := l_string ||'function cancelModal() {';
1352    l_string := l_string ||'if (modalWin.win '||c_amp || c_amp||' !modalWin.win.closed) {';
1353    l_string := l_string ||'modalWin.win.opener = null;';
1354    l_string := l_string ||'}';
1355    l_string := l_string ||'}';
1356 
1357 
1358    l_string := l_string ||'function getdim0(name,id) {';
1359    l_string := l_string ||'var end = document.editDimensions.dim0.length;';
1360    l_string := l_string ||'var tempText = document.editDimensions.dim0[end-1].text;';
1361    l_string := l_string ||'var tempValue = document.editDimensions.dim0.options[end-1].value;';
1362    l_string := l_string ||'document.editDimensions.dim0[end-1].text = name;';
1363    l_string := l_string ||'document.editDimensions.dim0.options[end-1].value = id;';
1364    l_string := l_string ||'document.editDimensions.dim0.options[end] = new Option(tempText,tempValue);';
1365    l_string := l_string ||'document.editDimensions.dim0.selectedIndex = end-1;';
1366    l_string := l_string ||'}';
1367 
1368    l_string := l_string ||'function getdim1(name,id) {';
1369    l_string := l_string ||'var end = document.editDimensions.dim1.length;';
1370    l_string := l_string ||'var tempText = document.editDimensions.dim1[end-1].text;';
1371    l_string := l_string ||'var tempValue = document.editDimensions.dim1.options[end-1].value;';
1372    l_string := l_string ||'document.editDimensions.dim1[end-1].text = name;';
1373    l_string := l_string ||'document.editDimensions.dim1.options[end-1].value = id;';
1374    l_string := l_string ||'document.editDimensions.dim1.options[end] = new Option(tempText,tempValue);';
1375    l_string := l_string ||'document.editDimensions.dim1.selectedIndex = end-1;';
1376    l_string := l_string ||'}';
1377 
1378    l_string := l_string ||'function getdim2(name,id) {';
1379    l_string := l_string ||'var end = document.editDimensions.dim2.length;';
1380    l_string := l_string ||'var tempText = document.editDimensions.dim2[end-1].text;';
1381    l_string := l_string ||'var tempValue = document.editDimensions.dim2.options[end-1].value;';
1382    l_string := l_string ||'document.editDimensions.dim2[end-1].text = name;';
1383    l_string := l_string ||'document.editDimensions.dim2.options[end-1].value = id;';
1384    l_string := l_string ||'document.editDimensions.dim2.options[end] = new Option(tempText,tempValue);';
1385    l_string := l_string ||'document.editDimensions.dim2.selectedIndex = end-1;';
1386    l_string := l_string ||'}';
1387 
1388    l_string := l_string ||'function getdim3(name,id) {';
1389    l_string := l_string ||'var end = document.editDimensions.dim3.length;';
1390    l_string := l_string ||'var tempText = document.editDimensions.dim3[end-1].text;';
1391    l_string := l_string ||'var tempValue = document.editDimensions.dim3.options[end-1].value;';
1392    l_string := l_string ||'document.editDimensions.dim3[end-1].text = name;';
1393    l_string := l_string ||'document.editDimensions.dim3.options[end-1].value = id;';
1394    l_string := l_string ||'document.editDimensions.dim3.options[end] = new Option(tempText,tempValue);';
1395    l_string := l_string ||'document.editDimensions.dim3.selectedIndex = end-1;';
1396    l_string := l_string ||'}';
1397 
1398    l_string := l_string ||'function getdim4(name,id) {';
1399    l_string := l_string ||'var end = document.editDimensions.dim4.length;';
1400    l_string := l_string ||'var tempText = document.editDimensions.dim4[end-1].text;';
1401    l_string := l_string ||'var tempValue = document.editDimensions.dim4.options[end-1].value;';
1402    l_string := l_string ||'document.editDimensions.dim4[end-1].text = name;';
1403    l_string := l_string ||'document.editDimensions.dim4.options[end-1].value = id;';
1404    l_string := l_string ||'document.editDimensions.dim4.options[end] = new Option(tempText,tempValue);';
1405    l_string := l_string ||'document.editDimensions.dim4.selectedIndex = end-1;';
1406    l_string := l_string ||'}';
1407 
1408    l_string := l_string ||'function getdim5(name,id) {';
1409    l_string := l_string ||'var end = document.editDimensions.dim5.length;';
1410    l_string := l_string ||'var tempText = document.editDimensions.dim5[end-1].text;';
1411    l_string := l_string ||'var tempValue = document.editDimensions.dim5.options[end-1].value;';
1412    l_string := l_string ||'document.editDimensions.dim5[end-1].text = name;';
1413    l_string := l_string ||'document.editDimensions.dim5.options[end-1].value = id;';
1414    l_string := l_string ||'document.editDimensions.dim5.options[end] = new Option(tempText,tempValue);';
1415    l_string := l_string ||'document.editDimensions.dim5.selectedIndex = end-1;';
1416    l_string := l_string ||'}';
1417 
1418    l_string := l_string ||'function getdim6(name,id) {';
1419    l_string := l_string ||'var end = document.editDimensions.dim6.length;';
1420    l_string := l_string ||'var tempText = document.editDimensions.dim6[end-1].text;';
1421    l_string := l_string ||'var tempValue = document.editDimensions.dim6.options[end-1].value;';
1422    l_string := l_string ||'document.editDimensions.dim6[end-1].text = name;';
1423    l_string := l_string ||'document.editDimensions.dim6.options[end-1].value = id;';
1424    l_string := l_string ||'document.editDimensions.dim6.options[end] = new Option(tempText,tempValue);';
1425    l_string := l_string ||'document.editDimensions.dim6.selectedIndex = end-1;';
1426    l_string := l_string ||'}';
1427 
1428    l_string := l_string ||'function getdim7(name,id) {';
1429    l_string := l_string ||'var end = document.editDimensions.dim7.length;';
1430    l_string := l_string ||'var tempText = document.editDimensions.dim7[end-1].text;';
1431    l_string := l_string ||'var tempValue = document.editDimensions.dim7.options[end-1].value;';
1432    l_string := l_string ||'document.editDimensions.dim7[end-1].text = name;';
1433    l_string := l_string ||'document.editDimensions.dim7.options[end-1].value = id;';
1434    l_string := l_string ||'document.editDimensions.dim7.options[end] = new Option(tempText,tempValue);';
1435    l_string := l_string ||'document.editDimensions.dim7.selectedIndex = end-1;';
1436    l_string := l_string ||'}';
1437 
1438 
1439   -- **************************
1440     --   END MODAL DIALOG CODE
1441   -- **************************
1442    l_string := l_string ||'</SCRIPT>';
1443 --end if; --icx_sec.validateSession
1444    x_string := l_string ;
1445 end editlovjscript;
1446 
1447 PROCEDURE setGlobalVar
1448 ( p_dim_lev_id     in VARCHAR2
1449 , p_dim_lev_val_id in VARCHAR2
1450 , p_dim_lev_g_var  in VARCHAR2
1451 , x_return_status  out NOCOPY VARCHAR2
1452 )
1453 IS
1454 BEGIN
1455 
1456   x_return_status := FND_API.G_RET_STS_SUCCESS;
1457 
1458   BIS_TARGET_PVT.G_SET_OF_BOOK_ID := TO_NUMBER(p_dim_lev_val_id);
1459 
1460 END setGlobalVar;
1461 
1462 -- *******************************************************
1463 end bis_lov_pub;