We help IT Professionals succeed at work.
Get Started

How to query based on a parameter?

923 Views
Last Modified: 2013-11-19
I have a .jsp pages that returns an Oracle query, works great.

I want the page to load by querying everything, then the user clicks a button and this filters the query.

So I need a variable, sourcesToQuery, on startup will be ('PRD','CLI','MEM',CLM',PCLM',PRV')

so the query will say

where subject_area in <%= sourcesToQuery%>

When they click the Claims button, then
sourcesToQuery = ('CLM','PCLM')

so something like

onLoad: set sourcesToQuery =  ('PRD','CLI','MEM',CLM',PCLM',PRV')

then when they click on the Claims button, it filters by sourcesToQuery in ('CLM','PCLM')

I know what I want to do but no idea how to do it. I am looking at other .jsp files that use parameters but can't get it working.

Below is the entire page, it works great if I don't try to filter
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 
 
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %>
 
<sql:query var="load_status" dataSource="jdbc/EDW">
  select case s1.subj_area_cd
             when 'PRD' then 'a' when 'CLI' then 'b' when 'MEM' then case s1.srce_sys_cd when '141' then 'j' else'c' end when 'IDM' then 'd' 
	     when 'CLM' then 'e' when 'PCLM' then case s1.srce_sys_cd when '140' then 'j' else 'f' end when 'PRV' then 'g' else 'i' end   
       	      ||'-'||lower(substr(s1.srce_sys_nm,1,2)) as Logical_Sort
  ,s1.subj_area_cd as Subj, s1.srce_sys_nm ||' - '||s1.srce_sys_cd as Source_Nm,  initcap(s1.freq) as Freq
        ,case s1.last_step_run_nm 
                          when 'init'                        then 'Ready'
                          when 'transfer'                    then 'Loading'
                          when 'cleaned'                     then 'Loading'
                          when 'cleaned failed'              then 'Load failed - data errors'
                          when 'stage2'                      then 'Loaded (to Stage 2)'
                          when 'stage2 failed'               then 'Load failed (to Stage 2)'
                          when 'stage2 approved'             then 'Load Approved (from Stage 2)'
                          when 'stage3i'                     then 'Loaded (to Stage 3i)'
                          when 'stage3i failed'              then 'Load failed (to Stage 3i)'
                          when 'stage3i approved'            then 'Load Approved (from Stage 3i)'
                          when 'ods'                         then 'Loading'
                          when 'ods failed'                  then 'Load failed'
                          when 'ods unlinked'                then 'ODS loadedthen'
                          when 'ods approved'                then 'Load Approved'
                          when 'ods mailed'                  then 'ODS mailed'
                          when 'ods failed mailed'           then 'ODS failed'
                          when 'intgn failed'                then 'Integration(s) failed'
                          when 'intgn'   		     then 'Integrations running'
                          when 'intgn approved'		     then 'Integrations approved'
                          when 'intgn mailed'   	     then 'Integrations mailed'
                          when 'intgn failed mailed'   	     then 'Integrations failed' 
                          when 'intgn ready'   		     then 'ODS approved'
                          when 'intgn running'		     then 'Integrations running'
                          when 'cdr'   			     then 'Loading to CDR'
                          when 'cdr failed'   		     then 'CDR load failed'
                          when 'cdr approved'   	     then 'CDR approved'
                          when 'cdr mailed'   		     then 'CDR loaded'
                          when 'cdr failed mailed'	     then 'CDR load failed'
                          when 'cdr analysis'   	     then 'Analysis running'
                          when 'cdr analysis failed'   	     then 'Analysis failed'
                          when 'cdr analysis completed'	     then 'Ready for reporting'
                          else s1.ods_last_step_run_nm                   
                          end as CDR_Step
  ,' ' /* replace(to_char(to_date(ops$imedw.loader_stats(s1.srce_sys_cd,'ODS_CDR_LOAD_DATE',s1.mth_last_load_dt,s1.subj_area_cd, ''),'yyyymmdd'),'Mon dd'),' 0',' ') ||
  ops$imedw.loader_stats(s1.srce_sys_cd,'ODS_CDR_LOAD_HOURS',s1.mth_last_load_dt,s1.subj_area_cd, '') */ as CDR_Dt_Hrs
  ,s1.cdr_rpt_mth as CDR_Month
    ,nvl(replace(to_char(s1.mth_last_load_dt,'Mon dd'),' 0',' '),'n/a') as Exp_Last_Load
  ,decode(ops$imedw.loader_stats(s1.srce_sys_cd,'ODS_LOAD',trunc(s1.mth_last_load_dt),s1.subj_area_cd, ''),'Green','Yes','&nbspNo ') as Received
  ,ops$imedw.loader_stats(s1.srce_sys_cd,'ODS_LOAD',trunc(s1.mth_last_load_dt),s1.subj_area_cd,'') as ReceivedColor
  ,ops$imedw.loader_stats(s1.srce_sys_cd,'INTEGRATION',sysdate,s1.subj_area_cd, s1.cdr_rpt_mth) as Intgn_Status
  ,ops$imedw.loader_stats(s1.srce_sys_cd,'CDR APPROVAL',sysdate,s1.subj_area_cd, s1.cdr_rpt_mth) as CDR_Approved
  ,ops$imedw.loader_stats(s1.srce_sys_cd,'ANALYZE',sysdate,s1.subj_area_cd, s1.cdr_rpt_mth) as CDR_Analyzed
  ,case s1.srce_sys_cd
	when '035' then '<a href="http://xpc-114400/edw/ods_reports.jsp?SUBJ=CLM&SRCE=035&CYCLE=200901">ODS Totals - Old</a>'
	else ops$imedw.loader_stats(s1.srce_sys_cd,'ODS APPROVAL',s1.mth_last_load_dt,s1.subj_area_cd,s1.cdr_rpt_mth)
   end||case s1.srce_sys_cd
           when '035' then '<br/><a href="http://xpc-114400/bill/ods_totals.jsp">Please Approve - New</a>'
           else ' ' 
        end as ODS_Approval
  ,s1.subj_area_cd as Subj_Cd, s1.srce_sys_cd as Source_Cd
from ods.subj_area_srce_load_stus s1 
where s1.stus_nm = 'active' 
 and  s1.subj_area_cd in <%= sourcesToQuery %>
order by 1
</sql:query>
 
<c:set var="Srce" value="" scope="session"  />
<c:set var="Subj" value="" scope="session"  />
<c:set var="Month" value="" scope="session"  />
<c:set var="sourcesToQuery" value = "('PRD','CLI','MEM','IDM','CLM','PCLM','PRV')" scope="session" />
 
 
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
 
	<title>EDW: CDR Load Status</title>
	
	<link rel="stylesheet" href="jquery/tablesorter/themes/blue/style.css" type="text/css" id="" media="print, projection, screen" />
 
	<script type="text/javascript" src="jquery/tablesorter/jquery-latest.js"></script> 
	<script type="text/javascript" src="jquery/tablesorter/jquery.tablesorter.js"></script> 
	
	<script type="text/javascript" id="js">
	$(document).ready(function() 
    		{         
		$("#statusEDW").tablesorter();     
    		} 
	); 
	</script>
 
    <script type="text/javascript">
        function underConstMsg() {
          message = "Under Construction . . .";
        alert(message);
      }
    </script>
 
    <script type="text/javascript">
        function clmPclmFilter() {
          sourcesToQuery = "('CLM','PCLM')";
	  message ("Claim / P-Claim filter under construction . . .");
      }
    </script>
 
 
 
	<script type="text/javascript">
	function setODS_ApprovalColor(userStatus) {
	    switch (userStatus) {
 
              case "Under Review":
                 document.getElementById("ODS_Approval").className = "Yellow";
 
              case "Not Loaded":
                 document.getElementById("ODS_Approval").className = "Normal";
 
              default:
                 document.getElementById("ODS_Approval").className = "Normal";
	    }
	}	
	</script>
 
</head>
<body>
<c:set var="sourcesToQuery" value = "('PRD','CLI','MEM','IDM','CLM','PCLM','PRV')" scope="session" />
 
<h1>EDW: CDR Load Status<br/>January 2009</h1>
    <form id="EDW_submit" action="http://xpc-114400/bill/cdr_status.jsp">
      <table>
          <tr>
	    <th></th>
            <td>
              <input type="submit" value="All" onclick="underConstMsg()"/>
	      <input type="submit" value="Client / Product" onclick="underConstMsg()" />
	      <input type="submit" value="Member / X-Walk IDM" onclick="underConstMsg()" />
	      <input type="submit" value="Claim / P-Claim" onclick="clmPclmFilter()" />
	      <input type="submit" value="Provider" onclick="underConstMsg()" />
	      <a href="ods_status.jsp" alt="ODS Status">(Link to ODS Status)</a>
            </td>
          </tr>
        </table>
      </form>
 
<table class="tablesorter" id="statusEDW" align="center" cellpadding="5">
 
<thead>
<tr>
	<th>Logical<br/>Sort</th>
	<th>Subject<br/> Area</th>
	<th>Source</th>
	<th>Freq.</th>
	<th>Expected <br/> Last File</th>
	<th>Last File<br/>Received?</th>
	<th>ODS Approval</th>
	<th>Intgn Status</th>
	<th>CDR Step</th>
	<th>CDR Approval</th>
	<th>CDR Analyzed</th>
</tr>
</thead>
 
 
<tbody>
<c:forEach var="ls" items="${load_status.rows}">
  <c:set var="Srce" value="${ls.Source_Cd}"  scope="session"  />
  <c:set var="Subj" value="${ls.Subj_Cd}" scope="session"  />
  <c:set var="Month" value="${ls.CDR_MTH}"      scope="session"  />
 
  <c:set var="LSubj" value="${stg.lower_subj}"  scope="session"  />
  <c:set var="Cyc"  value="${stg.load_cyc}"     scope="session"  />
  <c:set var="Stg"  value="${stg.load_stg}"     scope="session"  />
  <c:set var="DCyc"  value="${stg.disp_cyc}"    scope="session"  />
<tr>
	<td>${ls.Logical_Sort}</td>
	<td>${ls.Subj}</td>
	<td>${ls.Source_Nm}</td>
	<td>${ls.Freq}</td>
	<td>${ls.Exp_Last_Load}</td>
	<td><span class="${ls.ReceivedColor}"> ${ls.Received}</span></td>
	<td id="ODS_Approval"><span class="Normal"> ${ls.ODS_Approval}</span></td>
	<td>${ls.Intgn_Status}</td>
	<td>${ls.CDR_Step}</td>
	<td>${ls.CDR_Approved}</td>
	<td>${ls.CDR_Analyzed}</td>
</tr>
</c:forEach>
 
</tbody>
</table>
 
</body>
</html>

Open in new window

Comment
Watch Question
This problem has been solved!
Unlock 1 Answer and 3 Comments.
See Answer
Why Experts Exchange?

Experts Exchange always has the answer, or at the least points me in the correct direction! It is like having another employee that is extremely experienced.

Jim Murphy
Programmer at Smart IT Solutions

When asked, what has been your best career decision?

Deciding to stick with EE.

Mohamed Asif
Technical Department Head

Being involved with EE helped me to grow personally and professionally.

Carl Webster
CTP, Sr Infrastructure Consultant
Ask ANY Question

Connect with Certified Experts to gain insight and support on specific technology challenges including:

  • Troubleshooting
  • Research
  • Professional Opinions
Did You Know?

We've partnered with two important charities to provide clean water and computer science education to those who need it most. READ MORE