[Home] [Help]
PACKAGE BODY: APPS.JTF_TERR_CHANGES_REPORT_PVT
Source
1 PACKAGE BODY JTF_TERR_CHANGES_REPORT_PVT AS
2 /* $Header: jtftrrcb.pls 120.0 2005/06/02 18:21:47 appldev ship $ */
3
4 PROCEDURE report_wrapper
5 ( p_response IN varchar2,
6 --p_manager in varchar2,
7 p_sd_date IN varchar2,
8 p_sm_date IN varchar2,
9 p_sy_date IN varchar2,
10 p_ed_date IN varchar2,
11 p_em_date IN varchar2,
12 p_ey_date IN varchar2)
13 IS
14
15 --g_image_prefix varchar2(250) := '/OA_MEDIA/'||icx_sec.getid(icx_sec.pv_language_code)||'/';
16 l_response varchar2(2000);
17 l_agent varchar2(2000);
18 p_orderby varchar2(2000);
19 cid INTEGER;
20 v_sql_st varchar2(2000);
21
22 v_date date;
23 v_cost_center varchar2(10);
24 v_name varchar2(2000);
25 v_email varchar2(2000);
26 v_count varchar2(2000);
27 -- DBMS_
28 rows_processed number;
29 l_from_date date;
30 l_to_date date;
31 v_temp varchar2(2000);
32 p_select varchar2(2000);
33 p_from varchar2(2000);
34 p_where varchar2(2000);
35 p_groupby varchar2(2000);
36 p_count number := 0;
37 l_rec_count number;
38
39
40 l_display_type varchar2(100);
41 l_convert_to_id_flag varchar2(1);
42
43
44 -- cursor to get territory records
45 cursor cur_territory(c_from_date date, c_to_date date) is
46 select terr_id, wf_notification.substitutespecialchars(name) name,
47 wf_notification.substitutespecialchars(terr_type_name) terr_type_name, rank,
48 trunc(creation_date) creation_date, trunc(last_update_date) last_update_date
49 from jtf_terr_overview_v
50 where last_update_date >= c_from_date --'01-OCT-2001'
51 and last_update_date <= c_to_date; --'11-JUN-1997'
52 /* -- cursor to get salesreps DEVELOPMENT
53 CURSOR c_get_salesrep(ci_terr_id NUMBER) IS
54 select resource_id, resource_id || ': Rsc Name Not Available' resource_name
55 from jtf_terr_rsc where terr_id = ci_terr_id;
56 */
57 -- cursor to get salesreps DELIVERY
58 CURSOR c_get_salesrep(ci_terr_id NUMBER) IS
59 select distinct resource_id, wf_notification.substitutespecialchars(resource_name) resource_name
60 from jtf_terr_resources_v jtrv
61 where jtrv.terr_id = ci_terr_id
62 order by resource_name;
63
64 -- cursor to get dynamic qualifiers
65 CURSOR c_get_terr_qual (p_template_terr_id NUMBER) IS
66 SELECT distinct TERR_QUAL_ID,
67 TERR_ID,
68 QUAL_USG_ID,
69 ORG_ID,
70 wf_notification.substitutespecialchars(qualifier_name) qualifier_name
71 FROM jtf_terr_qualifiers_v
72 WHERE terr_id = p_template_terr_id;
73 -- cursor to get values for dynamic qualifier values
74 CURSOR c_get_terr_values (p_terr_qual_id NUMBER) IS
75 SELECT j1.TERR_VALUE_ID
76 , wf_notification.substitutespecialchars(j1.COMPARISON_OPERATOR) COMPARISON_OPERATOR
77 , wf_notification.substitutespecialchars(j1.LOW_VALUE_CHAR_DESC) LOW_VALUE_CHAR_DESC
78 , wf_notification.substitutespecialchars(j1.HIGH_VALUE_CHAR_DESC) HIGH_VALUE_CHAR_DESC
79 , j1.LOW_VALUE_NUMBER
80 , j1.HIGH_VALUE_NUMBER
81 , wf_notification.substitutespecialchars(j1.INTEREST_TYPE) INTEREST_TYPE
82 , wf_notification.substitutespecialchars(j1.PRIMARY_INTEREST_CODE) PRIMARY_INTEREST_CODE
83 , wf_notification.substitutespecialchars(j1.SECONDARY_INTEREST_CODE) SECONDARY_INTEREST_CODE
84 , wf_notification.substitutespecialchars(j1.CURRENCY_CODE) CURRENCY_CODE
85 , j1.LOW_VALUE_CHAR_ID
86 , wf_notification.substitutespecialchars(DISPLAY_TYPE) DISPLAY_TYPE
87 , wf_notification.substitutespecialchars(CONVERT_TO_ID_FLAG) CONVERT_TO_ID_FLAG
88 FROM jtf_terr_values_desc_v j1
89 WHERE j1.terr_qual_id = p_terr_qual_id
90 ORDER BY j1.value_set;
91
92 BEGIN
93 fnd_client_info.set_org_context(fnd_profile.value('ORG_ID'));
94 l_response := p_response;
95
96 select trunc(to_date(p_sd_date||'-'||p_sm_date||'-'||p_sy_date,'DD/MM/YYYY'))
97 into l_from_date
98 from dual;
99 select trunc(to_date(p_ed_date||'-'||p_em_date||'-'||p_ey_date,'DD/MM/YYYY'))
100 into l_to_date
101 from dual;
102
103 /*
104 htp.p(l_from_date);
105 htp.br;
106 htp.p(l_to_date);
107 htp.br;
108 */
109
110 if (icx_sec.validateSession(c_function_code => 'JTF_TERR_CHGS_RPT', c_validate_only => 'Y')) then
111 if l_response = 'Excel' then
112 xls(l_from_date,l_to_date);
113 else
114 --dbms_session.set_sql_trace(TRUE);
115 l_agent := owa_util.get_cgi_env('SCRIPT_NAME');
116 htp.htmlopen;
117 htp.headOpen;
118 htp.title('Territory Changes Report');
119 htp.headClose;
120 htp.bodyopen(cattributes=>'bgcolor="#CCCCCC"');
121 /*htp.formOpen( curl => l_agent||'/'||'as_ofl_terr_changes_report.xls', cmethod => 'POST', cattributes => ' name="excel"');
122 --htp.formHidden( cname => 'p_manager', cvalue => p_manager);
123 htp.formHidden( cname => 'l_from_date', cvalue => l_from_date);
124 htp.formHidden( cname => 'l_to_date', cvalue => l_to_date);
125 htp.formClose;
126 */
127 htp.p('<CENTER>');
128 htp.tableOpen('border="0" ');
129 htp.tableRowOpen( calign => 'TOP' );
130 --htp.tableData( htf.img(curl=>g_image_prefix||'oppty.gif'));
131 htp.tableData( '<FONT size=+1 face="times new roman">' || 'Territory Changes Report', cnowrap => 'TRUE');
132 --htp.tabledata(htf.anchor('JavaScript:document.excel.submit();',htf.img(curl=>g_image_prefix||'up_excel.gif')),calign=>'Right',cattributes=>'width="100%"');
133 htp.tableRowClose;
134 htp.tableClose;
135 htp.br;
136
137
138 htp.tableOpen (cattributes => 'COLS=4 border="1" width="100%"');
139 fnd_client_info.set_org_context(fnd_profile.value_wnps('ORG_ID'));
140 -- display territories
141 l_rec_count := 0;
142 FOR rec_terr in cur_territory(l_from_date, l_to_date) loop
143 htp.tableRowOpen;
144 htp.p('<TR NOWRAP bgcolor="#999999" >');
145 htp.p('<th colspan="1" width="30%" align="center">');
146 htp.p(rec_terr.name);
147 htp.p('</th>');
148 htp.p('<th colspan="1" width="20%" align="center">');
149 htp.p('Rank: ' ||rec_terr.rank);
150 htp.p('</th>');
151 htp.p('<th colspan="1" width="20%" align="center">');
152 htp.p('Type: ' ||rec_terr.terr_type_name);
153 htp.p('</th>');
154 htp.p('<th colspan="1" width="20%" align="center">');
155 htp.p('Created: ' ||rec_terr.creation_date);
156 htp.p('Updated: ' ||rec_terr.last_update_date);
157 htp.p('</th>');
158 htp.tableRowClose;
159 l_rec_count := l_rec_count + 1;
160
161 -- display sales reps
162 FOR rec_get_salesrep in c_get_salesrep(rec_terr.terr_id) loop
163 htp.tableRowOpen;
164 htp.p('<td colspan="2" width="50%" align="left"><bold>');
165 htp.p(rec_get_salesrep.resource_name);
166 htp.p('</bold></td>');
167 --htp.p('<td colspan="2" width="50%" align="left">');
168 --htp.p(rec_get_salesrep.resource_id);
169 --htp.p('</td>');
170 --htp.tableRowClose;
171 END LOOP;
172 -- display qualifiers
173 FOR rec_get_terr_qual in c_get_terr_qual(rec_terr.terr_id) loop
174 htp.tableRowOpen;
175 htp.p('<TR NOWRAP bgcolor="#999999" >');
176 htp.p('<td colspan="2" align="center" width="50%">');
177 htp.p(rec_get_terr_qual.qualifier_name);
178 htp.p('</td>');
179 --htp.p('<td colspan="2" align="center" width="50%">');
180 --htp.p('Terr_qual_id: ' ||rec_get_terr_qual.terr_qual_id);
181 --htp.p('</td>');
182 htp.tableRowClose;
183 -- display qualifier values
184 FOR rec_get_terr_values in c_get_terr_values(rec_get_terr_qual.terr_qual_id) loop
185 -- output qualifier values according to display_type and convert_to_id_flag
186 l_display_type := rec_get_terr_values.display_type;
187 l_convert_to_id_flag := rec_get_terr_values.convert_to_id_flag;
188
189 If (l_display_type = 'CHAR') then
190 If (l_convert_to_id_flag = 'Y') then
191 htp.tableRowOpen;
192 htp.p('<td align="left"><bold>');
193 htp.p(rec_get_terr_values.comparison_operator);
194 htp.p('</bold></td>');
195 htp.p('<td align="left"><bold>');
196 htp.p(rec_get_terr_values.low_value_char_desc);
197 htp.p('</bold></td>');
198 htp.p('<td align="left">');
199 htp.p(rec_get_terr_values.low_value_char_id);
200 htp.p('</td>');
201 htp.p('<td align="left"><bold>');
202 htp.p('');
203 htp.p('</bold></td>');
204 htp.tableRowClose;
205 else -- (l_convert_to_id_flag = 'N')
206 htp.tableRowOpen;
207 htp.p('<td align="left"><bold>');
208 htp.p(rec_get_terr_values.comparison_operator);
209 htp.p('</bold></td>');
210 htp.p('<td align="left"><bold>');
211 htp.p(rec_get_terr_values.low_value_char_desc);
212 htp.p('</bold></td>');
213 htp.p('<td align="left">');
214 htp.p(rec_get_terr_values.high_value_char_desc);
215 htp.p('</td>');
216 htp.p('<td align="left"><bold>');
217 htp.p('');
218 htp.p('</bold></td>');
219 htp.tableRowClose;
220 End if;
221 elsif (l_display_type = 'INTEREST_TYPE') then
222 htp.tableRowOpen;
223 htp.p('<td align="left"><bold>');
224 htp.p(rec_get_terr_values.comparison_operator);
225 htp.p('</bold></td>');
226 htp.p('<td align="left"><bold>');
227 htp.p(rec_get_terr_values.interest_type);
228 htp.p('</bold></td>');
229 htp.p('<td align="left">');
230 htp.p(rec_get_terr_values.primary_interest_code);
231 htp.p('</td>');
232 htp.p('<td align="left"><bold>');
233 htp.p(rec_get_terr_values.secondary_interest_code);
234 htp.p('</bold></td>');
235 htp.tableRowClose;
236 elsif (l_display_type = 'NUMBER') then
237 htp.tableRowOpen;
238 htp.p('<td align="left"><bold>');
239 htp.p(rec_get_terr_values.comparison_operator);
240 htp.p('</bold></td>');
241 htp.p('<td align="left"><bold>');
242 htp.p(rec_get_terr_values.low_value_number);
243 htp.p('</bold></td>');
244 htp.p('<td align="left">');
245 htp.p(rec_get_terr_values.high_value_number);
246 htp.p('</td>');
247 htp.p('<td align="left"><bold>');
248 htp.p('');
249 htp.p('</bold></td>');
250 htp.tableRowClose;
251 elsif (l_display_type = 'CURRENCY') then
252 htp.tableRowOpen;
253 htp.p('<td align="left"><bold>');
254 htp.p(rec_get_terr_values.comparison_operator);
255 htp.p('</bold></td>');
256 htp.p('<td align="left"><bold>');
257 htp.p(rec_get_terr_values.low_value_number);
258 htp.p('</bold></td>');
259 htp.p('<td align="left">');
260 htp.p(rec_get_terr_values.high_value_number);
261 htp.p('</td>');
262 htp.p('<td align="left"><bold>');
263 htp.p(rec_get_terr_values.currency_code);
264 htp.p('</bold></td>');
265 htp.tableRowClose;
266 else
267 htp.tableRowOpen;
268 htp.p('<td colspan="4" align="left"><bold>');
269 htp.p('NO DATA DISPLAYED');
270 htp.p('</bold></td>');
271 htp.tableRowClose;
272 end if;
273 END LOOP;
274 END LOOP;
275 END LOOP;
276 If l_rec_count = 0 then
277 htp.p('No territories meet search criteria.');
278 End if;
279
280 htp.tableClose;
281
282 /*
283 htp.tableOpen (cattributes => 'border="1" width="100%"');
284 htp.tableRowOpen;
285 htp.p('<TR NOWRAP bgcolor="#999999" >');
286 htp.p('<th NOWRAP align="CENTER" width="30%" valign="top">Territory Name</th>');
287 htp.p('<th NOWRAP align="CENTER" width="15%" valign="top">SalesRep</th>');
288 --htp.p('<th NOWRAP align="CENTER" width="10%" valign="top">Group Name</th>');
289 htp.p('<th NOWRAP align="CENTER" width="5%" valign="top">Territory Type</th>');
290 htp.p('<th NOWRAP align="CENTER" width="10%" valign="top">Qualifier Name</th>');
291 htp.p('<th NOWRAP align="CENTER" width="10%" valign="top">Value1</th>');
292 htp.p('<th NOWRAP align="CENTER" width="10%" valign="top">Value2</th>');
293 htp.p('<th NOWRAP align="CENTER" width="10%" valign="top">Created/Updates</th>');
294 htp.tableRowClose;
295 -- display territories
296 for rec_territory in cur_territory(l_from_date, l_to_date) loop
297 htp.tableRowOpen;
298 htp.p('<td align="center">');
299 htp.p(rec_territory.name||'/' ||rec_territory.terr_id || ' - ' || rec_territory.last_update_date);
300 htp.p('</td>');
301 htp.br;
302 htp.tableRowClose;
303 end loop;
304
305 -- DBMS_SQL.CLOSE_CURSOR(cid);
306 htp.tableClose;
307 */
308 htp.Br;
309 -- htp.p(p_count - 1||' records found');
310 htp.bodyClose;
311 htp.htmlClose;
312 end if;
313 else
314 htp.p('Invalid session');
315 end if;
316 -- dbms_session.set_sql_trace(FALSE);
317
318 EXCEPTION
319 when no_data_found then
320 htp.print('Territory Changes Report: No Data Found!!!');
321 when others then
322 htp.print('report_wrapper: ' || substr(SQLERRM, 1,200));
323 END;
324
325 ----------------------------------------------------------------------------------------------------------------------
326 PROCEDURE XLS (
327 l_from_date date,
328 l_to_date date)
329
330 IS
331
332 v_tab varchar2(1);
333 v_tabrow varchar2(32747);
334
335 l_display_type varchar2(100);
336 l_convert_to_id_flag varchar2(1);
337 h1_divider varchar2(100) := '****************************************';
338 h2_divider varchar2(100) := '===================';
339 h3_divider varchar2(100) := '-------------------';
340 l_counter number;
341 l_counter2 number;
342 l_rec_count number;
343
344
345
346 -- cursor to get territory records
347 cursor cur_territory(c_from_date date, c_to_date date) is
348 select terr_id, wf_notification.substitutespecialchars(name) name,
349 wf_notification.substitutespecialchars(terr_type_name) terr_type_name, rank,
350 trunc(creation_date) creation_date, trunc(last_update_date) last_update_date
351 from jtf_terr_overview_v
352 where last_update_date >= c_from_date --'01-OCT-2001'
353 and last_update_date <= c_to_date; --'11-JUN-1997'
354
355 -- cursor to get salesreps DELIVERY
356 CURSOR c_get_salesrep(ci_terr_id NUMBER) IS
357 select distinct resource_id, wf_notification.substitutespecialchars(resource_name) resource_name
358 from jtf_terr_resources_v jtrv
359 where jtrv.terr_id = ci_terr_id
360 order by resource_name;
361 -- cursor to get dynamic qualifiers
362 CURSOR c_get_terr_qual (p_template_terr_id NUMBER) IS
363 SELECT distinct TERR_QUAL_ID,
364 TERR_ID,
365 QUAL_USG_ID,
366 ORG_ID,
367 wf_notification.substitutespecialchars(qualifier_name) qualifier_name
368 FROM jtf_terr_qualifiers_v
369 WHERE terr_id = p_template_terr_id;
370 -- cursor to get values for dynamic qualifier values
371 CURSOR c_get_terr_values (p_terr_qual_id NUMBER) IS
372 SELECT j1.TERR_VALUE_ID
373 , wf_notification.substitutespecialchars(j1.COMPARISON_OPERATOR) COMPARISON_OPERATOR
374 , wf_notification.substitutespecialchars(j1.LOW_VALUE_CHAR_DESC) LOW_VALUE_CHAR_DESC
375 , wf_notification.substitutespecialchars(j1.HIGH_VALUE_CHAR_DESC) HIGH_VALUE_CHAR_DESC
376 , j1.LOW_VALUE_NUMBER
377 , j1.HIGH_VALUE_NUMBER
378 , wf_notification.substitutespecialchars(j1.INTEREST_TYPE) INTEREST_TYPE
379 , wf_notification.substitutespecialchars(j1.PRIMARY_INTEREST_CODE) PRIMARY_INTEREST_CODE
380 , wf_notification.substitutespecialchars(j1.SECONDARY_INTEREST_CODE) SECONDARY_INTEREST_CODE
381 , wf_notification.substitutespecialchars(j1.CURRENCY_CODE) CURRENCY_CODE
382 , j1.LOW_VALUE_CHAR_ID
383 , wf_notification.substitutespecialchars(DISPLAY_TYPE) DISPLAY_TYPE
384 , wf_notification.substitutespecialchars(CONVERT_TO_ID_FLAG) CONVERT_TO_ID_FLAG
385 FROM jtf_terr_values_desc_v j1
386 WHERE j1.terr_qual_id = p_terr_qual_id
387 ORDER BY j1.value_set;
388
389 BEGIN
390 owa_util.mime_header('application/excel');
391 fnd_client_info.set_org_context(fnd_profile.value('ORG_ID'));
392
393 -- fnd_client_info.set_org_context(fnd_profile.value_wnps('ORG_ID'));
394 SELECT FND_GLOBAL.TAB
395 INTO v_tab
396 from dual;
397
398 --htp.p(v_tabrow);
399 v_tabrow := null;
400 -- display territories
401 l_rec_count := 0;
402
403 FOR rec_terr in cur_territory(l_from_date, l_to_date) loop
404 /*
405 if cur_territory%rowcount > 1 then
406 v_tabrow := v_tabrow||' '||v_tab;
407 htp.p(v_tabrow);
408 htp.p(v_tabrow);
409 v_tabrow := null;
410 end if;
411 */
412 v_tabrow := null;
413 htp.p(v_tabrow); -- add a blank before each territory
414 v_tabrow := null;
415 v_tabrow := v_tabrow||rec_terr.name||v_tab;
416 v_tabrow := v_tabrow||'Rank: '||rec_terr.rank||v_tab;
417 v_tabrow := v_tabrow||'Type: '||rec_terr.terr_type_name||v_tab;
418 v_tabrow := v_tabrow||'Created: '||rec_terr.creation_date||' Updated: '||rec_terr.last_update_date||v_tab;
419 htp.p(v_tabrow); -- print out prepared line
420 v_tabrow := null;
421 v_tabrow := v_tabrow||h1_divider||v_tab;
422 v_tabrow := v_tabrow||h1_divider||v_tab;
423 v_tabrow := v_tabrow||h1_divider||v_tab;
424 v_tabrow := v_tabrow||h1_divider||v_tab;
425 htp.p(v_tabrow); -- divider since we dont' know how to format rows in XLS
426 -- display sales reps
427 l_counter2 := 0;
428 FOR rec_get_salesrep in c_get_salesrep(rec_terr.terr_id) loop
429 l_counter2 := l_counter2 + 1;
430 v_tabrow := null;
431 v_tabrow := v_tabrow||rec_get_salesrep.resource_name||v_tab;
432 --v_tabrow := v_tabrow||rec_get_salesrep.resource_name||'l_counter2: '||l_counter2||v_tab;
433 --v_tabrow := v_tabrow||rec_get_salesrep.resource_id||v_tab;
434 htp.p(v_tabrow);
435 END LOOP;
436 v_tabrow := null;
437 v_tabrow := v_tabrow||h2_divider||v_tab;
438 htp.p(v_tabrow);
439 -- display qualifiers
440 FOR rec_get_terr_qual in c_get_terr_qual(rec_terr.terr_id) loop
441 v_tabrow := null;
442 htp.p(v_tabrow); -- put in a CR before each qualifier
443 v_tabrow := null;
444 v_tabrow := v_tabrow||rec_get_terr_qual.qualifier_name||v_tab;
445 --v_tabrow := v_tabrow||rec_get_terr_qual.terr_qual_id||v_tab;
446 htp.p(v_tabrow);
447 v_tabrow := null;
448 v_tabrow := v_tabrow||h3_divider||v_tab;
449 htp.p(v_tabrow);
450
451 -- display qualifier values
452 l_counter := 0;
453 FOR rec_get_terr_values in c_get_terr_values(rec_get_terr_qual.terr_qual_id) loop
454 -- output qualifier values according to display_type and convert_to_id_flag
455 l_display_type := rec_get_terr_values.display_type;
456 l_convert_to_id_flag := rec_get_terr_values.convert_to_id_flag;
457 l_counter := l_counter + 1;
458 If (l_display_type = 'CHAR') then
459 If (l_convert_to_id_flag = 'Y') then
460 v_tabrow := null;
461 v_tabrow := v_tabrow||rec_get_terr_values.comparison_operator||v_tab;
462 v_tabrow := v_tabrow||rec_get_terr_values.low_value_char_desc||v_tab;
463 --v_tabrow := v_tabrow||rec_get_terr_values.low_value_char_id|| 'CHAR_Y l_counter:'||l_counter|| v_tab;
464 v_tabrow := v_tabrow||rec_get_terr_values.low_value_char_id||v_tab;
465 htp.p(v_tabrow);
466 else -- (l_convert_to_id_flag = 'N')
467 v_tabrow := null;
468 v_tabrow := v_tabrow||rec_get_terr_values.comparison_operator||v_tab;
469 v_tabrow := v_tabrow||rec_get_terr_values.low_value_char_desc||v_tab;
470 --v_tabrow := v_tabrow||rec_get_terr_values.high_value_char_desc|| 'CHAR_N l_counter:'||l_counter|| v_tab;
471 v_tabrow := v_tabrow||rec_get_terr_values.high_value_char_desc||v_tab;
472 htp.p(v_tabrow);
473 End if;
474 elsif (l_display_type = 'INTEREST_TYPE') then
475 v_tabrow := null;
476 v_tabrow := v_tabrow||rec_get_terr_values.comparison_operator||v_tab;
477 v_tabrow := v_tabrow||rec_get_terr_values.interest_type||v_tab;
478 v_tabrow := v_tabrow||rec_get_terr_values.primary_interest_code||v_tab;
479 --v_tabrow := v_tabrow||rec_get_terr_values.secondary_interest_code|| 'INT_T l_counter:'||l_counter|| v_tab;
480 v_tabrow := v_tabrow||rec_get_terr_values.secondary_interest_code||v_tab;
481 htp.p(v_tabrow);
482 elsif (l_display_type = 'NUMBER') then
483 v_tabrow := null;
484 v_tabrow := v_tabrow||rec_get_terr_values.comparison_operator||v_tab;
485 v_tabrow := v_tabrow||rec_get_terr_values.low_value_number||v_tab;
486 --v_tabrow := v_tabrow||rec_get_terr_values.high_value_number|| 'NUM l_counter:'||l_counter|| v_tab;
487 v_tabrow := v_tabrow||rec_get_terr_values.high_value_number||v_tab;
488 htp.p(v_tabrow);
489 elsif (l_display_type = 'CURRENCY') then
490 v_tabrow := null;
491 v_tabrow := v_tabrow||rec_get_terr_values.comparison_operator||v_tab;
492 v_tabrow := v_tabrow||rec_get_terr_values.low_value_number||v_tab;
493 v_tabrow := v_tabrow||rec_get_terr_values.high_value_number||v_tab;
494 --v_tabrow := v_tabrow||rec_get_terr_values.currency_code|| 'CUR l_counter:'||l_counter|| v_tab;
495 v_tabrow := v_tabrow||rec_get_terr_values.currency_code||v_tab;
496 htp.p(v_tabrow);
497 else
498 v_tabrow := null;
499 v_tabrow := v_tabrow||'NO DATA DISPLAYED'||v_tab;
500 htp.p(v_tabrow);
501 end if;
502 END LOOP;
503 END LOOP;
504 END LOOP;
505 If l_rec_count = 0 then
506 v_tabrow := null;
507 v_tabrow := v_tabrow||'No territories meet search criteria.'||v_tab;
508 htp.p(v_tabrow);
509 End if;
510
511
512 exception
513 when no_data_found then
514 htp.print('Territory Changes excel: No Data Found!!!');
515 when others then
516 htp.print('Territory Changes excel: '||substr(SQLERRM, 1,200));
517 END XLS;
518
519
520 END;