Subversion Repositories DevTools

Rev

Rev 6612 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

<%
'=====================================================
'|                                                   |
'|                 REPORTS DEFINITION                |
'|                                                   |
'=====================================================
' Good idea to set when using redirect
Response.Expires = 0   ' always load the page, dont store

'To enable the script timeout to 10 mins
Server.ScriptTimeout=600
%>

<%
'------------ ACCESS CONTROL ------------------
%>

<%
'------------ Variable Definition -------------
Dim rsQry
Dim rsTemp
Dim parPv_id, parExt
Dim objReleaseContent
Dim aReleaseContent
Dim objPackageDetails
Dim outobjDetails
Dim pvIdList
Dim dpv_id
Dim BldStd
'------------ Constants Declaration -----------
'------------ Variable Init -------------------

parExt = Request("ext")
Set objReleaseContent = CreateObject("Scripting.Dictionary")
Set objPackageDetails = CreateObject("Scripting.Dictionary")
Set outobjDetails = CreateObject("Scripting.Dictionary")
'----------------------------------------------------------------------------------------------------------------------------------------
Sub GetPackageInformation ( nPv_id, ByRef oPackageDetails )
   Dim rsQry, query
   query = _
   " SELECT pkg.pkg_name, pv.* "&_
   "  FROM PACKAGES pkg,"&_
   "       PACKAGE_VERSIONS pv"&_
   " WHERE pv.pv_id = "& nPv_id &_
   "   AND pv.pkg_id = pkg.pkg_id   "

   Set rsQry = OraDatabase.DbCreateDynaset( query, 0)

   oPackageDetails.RemoveAll

   If (NOT rsQry.BOF) AND (NOT rsQry.EOF) Then
      oPackageDetails("pkg_name") = rsQry("pkg_name")
      oPackageDetails("pkg_version") = rsQry("pkg_version")
      oPackageDetails("v_ext") = rsQry("v_ext")
      oPackageDetails("pv_description") = rsQry("pv_description")
      oPackageDetails("pv_overview") = rsQry("pv_overview")
      oPackageDetails("src_path") = rsQry("src_path")
      oPackageDetails("pkg_label") = rsQry("pkg_label")
      oPackageDetails("is_build_env_required") = rsQry("is_build_env_required")

   End If

   rsQry.Close()
   Set rsQry = Nothing
End Sub
'----------------------------------------------------------------------------------------------------------------------------------------
Function SQL_Build_Std ( nPv_id )
   SQL_Build_Std = _
   " SELECT bs.bs_name"&_
   "  FROM RELEASE_MANAGER.PACKAGE_VERSIONS pv,"&_
   "       RELEASE_MANAGER.BUILD_STANDARDS bs"&_
   " WHERE pv.PV_ID = "& nPv_id &_
   "   AND pv.BS_ID = bs.BS_ID "
End Function
'----------------------------------------------------------------------------------------------------------------------------------------
Function SQL_Build_Env ( nPv_id )
   SQL_Build_Env = _
   " SELECT bm.bm_name"&_
   "  FROM  RELEASE_MANAGER.PACKAGE_BUILD_INFO pbi,"&_
   "        RELEASE_MANAGER.BUILD_MACHINES bm"&_
   " WHERE pbi.PV_ID = "& nPv_id &_
   "   AND pbi.BM_ID = bm.BM_ID "&_
   " ORDER BY UPPER(bm.BM_NAME) "
End Function
'----------------------------------------------------------------------------------------------------------------------------------------
Function SQL_Modules (nPv_idList)
   SQL_Modules   = _
   "SELECT DISTINCT"&_
    "   qry.DPV_ID "&_
    " FROM ("&_
    "      SELECT dep.*,"&_
    "            LEVEL AS LEVEL_NUM"&_
    "        FROM PACKAGE_DEPENDENCIES dep"&_
    "      START WITH dep.PV_ID IN ( "& nPv_idList &" ) "&_
    "      CONNECT BY PRIOR dep.DPV_ID = dep.PV_ID"&_
    "   ) qry,"&_
    "   PACKAGES pkg,"&_
   "   PACKAGE_VERSIONS pv"&_
    " WHERE qry.PV_ID = pv.PV_ID AND pv.PKG_ID = pkg.PKG_ID"
End   Function
'----------------------------------------------------------------------------------------------------------------------------------------
Function SQL_Build_Dependencies ( nPv_id )
   SQL_Build_Dependencies = _
   " SELECT dpkg.pkg_name, dpv.pkg_version"&_
   "     FROM PACKAGE_DEPENDENCIES dep,"&_
   "           PACKAGES dpkg,"&_
   "         PACKAGE_VERSIONS dpv"&_
   "    WHERE dep.pv_id = "& nPv_id &_
   "      AND dep.DPV_ID = dpv.pv_id"&_
   "      AND dpv.pkg_id = dpkg.pkg_id   "&_
   "   ORDER BY UPPER(dpkg.pkg_name) "
End Function
'----------------------------------------------------------------------------------------------------------------------------------------
Sub GetReleaseContent ( nBom_id, ByRef oReleaseContent )
   Dim rsQry, query

   query = _
   " SELECT qry.prod_id"&_
   "  FROM ("&_
   "         SELECT DISTINCT"&_
   "          osc.PROD_ID,"&_
   "            pkg.pkg_name,"&_
   "         pv.pkg_version,"&_
   "         1   as   seq_num"&_
   "         FROM DEPLOYMENT_MANAGER.bom_contents bc,"&_
   "         DEPLOYMENT_MANAGER.operating_systems os, "&_
   "         DEPLOYMENT_MANAGER.os_contents osc,"&_
   "         PACKAGES pkg,"&_
   "         PACKAGE_VERSIONS pv,"&_
   "         DEPLOYMENT_MANAGER.PRODUCT_DETAILS pd"&_
   "          WHERE osc.os_id = os.os_id "&_
   "         AND os.node_id = bc.node_id"&_
   "         AND bc.bom_id =   "&   nBom_id &_
   "         AND pd.PROD_ID (+) = osc.PROD_ID"&_
   "         AND pv.pkg_id = pkg.pkg_id"&_
   "         AND osc.prod_id = pv.pv_id "&_
   "         AND (pd.is_rejected IS NULL or pd.IS_REJECTED != 'Y')  "&_
   "      UNION   "&_
   "      SELECT DISTINCT bec.prod_id,  pkg.pkg_name, pkg_version, 2   as   seq_num"&_
   "       FROM DEPLOYMENT_MANAGER.boms bm,"&_
   "            DEPLOYMENT_MANAGER.bom_contents bc,"&_
   "            DEPLOYMENT_MANAGER.network_nodes nn,"&_
   "            DEPLOYMENT_MANAGER.operating_systems os,"&_
   "            DEPLOYMENT_MANAGER.os_base_env obe,"&_
   "            DEPLOYMENT_MANAGER.base_env_contents bec,"&_
   "            PACKAGES pkg,"&_
   "            package_versions pv,"&_
   "            DEPLOYMENT_MANAGER.base_env be,"&_
   "            DEPLOYMENT_MANAGER.bos_types bt,"&_
   "            DEPLOYMENT_MANAGER.PRODUCT_DETAILS pd"&_
   "      WHERE bm.bom_id =   "&   nBom_id   &_
   "        AND bm.bom_id = bc.bom_id"&_
   "        AND nn.node_id = bc.node_id"&_
   "        AND os.node_id = nn.node_id"&_
   "        AND obe.os_id = os.os_id"&_
   "      AND pd.PROD_ID (+) = bec.PROD_ID"&_
   "      AND (pd.is_rejected IS NULL or pd.IS_REJECTED != 'Y')  "&_
   "        AND bec.base_env_id = obe.base_env_id"&_
   "        AND bec.prod_id = pv.pv_id"&_
   "        AND pkg.pkg_id = pv.pkg_id"&_
   "        AND be.base_env_id = obe.base_env_id"&_
   "       AND bt.bos_id = be.bos_id"&_
   "      ) qry  "&_
   " ORDER BY  qry.seq_num, UPPER(qry.pkg_name), UPPER(qry.pkg_version)"

   Set rsQry = OraDatabase.DbCreateDynaset( query, 0)
   While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
      oReleaseContent( CStr( rsQry("prod_id")) ) = ""
      rsQry.MoveNext()
   WEnd

   rsQry.Close()
   Set rsQry = Nothing
End Sub
'----------------------------------------------------------------------------------------------------------------------------------------
Function PatchIcon ( cIsPatch, cIsPatchObsolete )
   If IsNull(cIsPatch) Then
      PatchIcon = "<img src='images/rex_images/ext_blank.gif' width='16' height='16' border='0' align='absmiddle'>"
   Else
      If IsNull(cIsPatchObsolete) Then
         PatchIcon = "<img src='images/i_patch_small.gif' width='16' height='16' border='0' align='absmiddle' >"
      Else
         PatchIcon = "<img src='images/i_patch_small_obsolete.gif' width='16' height='16' border='0' align='absmiddle' title='Patch is obsolete'>"
      End If
   End If
End Function
%>

<%
Sub Reports_List ( SSgroup )
   Dim repNum
%>  <!-- REPORTS LIST -------------------------------------------------------->
   <%Select Case SSgroup%>
   <%Case "Advanced_Search"%>
      <%repNum = 1%>
      <strong>Find Jira / ClearQuest Bugs / Issues Location</strong><br>
      Use this advance search to locate bugs / issues imported to Release Manager from Jira or ClearQuest.<br>
      <a href="rep_where_are_bugs_located.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
      <%repNum = 2%>
      <strong>Find Packages Using "Ignore Warnings" feature</strong><br>
      Lists packages which use "Ignore Warning" feature on their dependencies.<br>
      <a href="rep_packages_using_ignore_feature.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
      <%repNum = 4%>
      <strong>Find A Package</strong><br>
      Use this advanced search to find a package in Release Manager<br>
      <a href="rep_find_package.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
      <%repNum = 5%>
      <strong>Find Package Version History</strong><br>
      Find all package versions and their current locations.<br>
      <a href="rep_package_version_history.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
      <%repNum = 14%>
      <strong>Find File with a Package</strong><br>
      Find all files within a named package.<br>
      <a href="rep_package_version_history.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
   <%Case "Release_Status"%>
      <%repNum = 3%>
      <strong>Current Status of Release</strong><br>
      Shows all packages in a selected release with their current state, owner and last modifier.<br>
      <a href="rep_current_state_of_release.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
      <%repNum = 8%>
      <strong>Deployable Software Modules</strong><br>
      This report shows new and current deployable software modules. Use this report to find which modules will be deployed to the customer.<br>
      Also, use this report to find if there are new modules flaged as 'deployable'.<br>
      <a href="rep_depoyable_software_modules.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
      <%repNum = 7%>
      <strong>Unit Tests per Package</strong><br>
      Use this report to check the unit tests performed on packages in a project.<br>
      <a href="rep_unit_tests_per_package.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
      <%repNum = 12%>
      <strong>Release AutoBuildable Status</strong><br>
      Use this report to check the package versions that are autobuildable/not autobuildable in a given release.<br>
      <a href="rep_autobuildable_package.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
      <%repNum = 13%>
      <strong>Release DEVI Status</strong><br>
      Use this report to obtain a list of DEVIs for all packages in a given release.<br>
      <a href="rep_devi_status_for_release.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">

<!--    <strong>All Packages With out-of-sync Dependencies</strong><br>
   List of all packages with dependencies out-of-sync with the release environment.<br>
   In escence, these are the packages which has versions in "latest" column of their dependencies.<br>
   Not available yet.<br><br><hr size="1" noshade color="#DAD7C8">
 -->

   <%Case "Release_History"%>
      <%repNum = 10%>
      <strong>Build History</strong><br>
      Use this report to find which packages have been officially released within specified date range.<br>
      <a href="rep_build_history.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
   <%Case "Admin_Reports"%>
      <strong>All Packages by Project by Version Tree by Release</strong><br>
      CSV output of all packages used in Release Manager per Project.<br>
      <a href="rep_all_packages_by_project_by_vtree_by_release.asp" target="_blank" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
      <strong>All Runtime Dependencies by Project by Version Tree by Release</strong><br>
      CSV output of all runtime dependencies used in Release Manager per Project.<br>
      <a href="rep_all_runtime_dependencies_by_project_by_vtree_by_release.asp" target="_blank" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
      <%repNum = 6%>
      <strong>Unused Packages</strong><br>
      All packages (Not Products) with no entries in "Used By" tab.<br>
      Use this report to help you clean up a release and remove all potentially unused packages.<br>
      <a href="rep_obsolete_packages.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
   <%Case "Escrow"%>
      <%repNum = 9%>
      <strong>Bill of Materials (BOM)</strong><br>
      List of all ERG Products per network node for a particular
      project. Use this report to integrate a particular project.<br>
      <a href="rep_bill_of_materials.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
      <%repNum = 11%>
      <strong>Escrow Report</strong><br>
      List of all Products/Patches for the BOM including modules. Use this report to provide a build roadmap.<br>
      <a href="escrow_report.asp?repnum=<%=repNum%>&group=<%=SSgroup%>" class="txt_linked">more...</a><br><br><hr size="1" noshade color="#DAD7C8">
      <strong>Build Dependencies per Package</strong><br>
      Use this report to build package from source code. The report
      include package repository location, label and build dependencies.<br>
      Not available yet.<br><br><hr size="1" noshade color="#DAD7C8">
      <strong>Build Order</strong><br>
      Use this reports to find the order in which packages should be built.<br>
      Not available yet.<br><br><hr size="1" noshade color="#DAD7C8">
   <%Case Else%>
      <b>&laquo; Select reporting category.</b>
   <%End Select%>
   <!-- REPORTS LIST END-------------------------------------------------------->

<%End Sub%>

<%
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Sub Get_Projects ( NNproj_id, BBallow_all )
   Dim rsTemp, Query_String

   Query_String = _
   "SELECT * FROM projects ORDER BY proj_name ASC"
   Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))

   Response.write "<select name='FRproj_id' onChange=""Cascaded_Menu('parent','"& scriptName &"?FRvtree_id=&FRrtag_id=&group="& Request("group") &"&repnum="& Request("repnum") &"&FRproj_id=',this,0)"" class='form_item'>"
      If BBallow_all Then
         Response.write "<option value='-1'>ALL</option>"
      Else
         Response.write "<option></option>"
      End If

      While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))
         If CDbl(NNproj_id) = CDbl(rsTemp.Fields("proj_id")) Then
              Response.write "<option value='"& rsTemp.Fields("proj_id") &"' selected>"& UCase(rsTemp.Fields("proj_name")) &"</option>"
           Else
            Response.write "<option value='"& rsTemp.Fields("proj_id") &"'>"& UCase(rsTemp.Fields("proj_name")) &"</option>"
         End If
         rsTemp.MoveNext
      WEnd
   Response.write "</select>"

   rsTemp.Close
   Set rsTemp = nothing
End Sub
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Sub Get_Version_Trees ( NNproj_id, NNvtree_id, BBallow_all )
   Dim rsTemp, Query_String

   Query_String = _
   "SELECT vtree_id, vtree_name FROM vtrees WHERE hide = 'N' AND proj_id = "& NNproj_id &" ORDER BY vtree_id ASC"
   Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))

   Response.write "<select name='FRvtree_id' onChange=""Cascaded_Menu('parent','"& scriptName &"?FRproj_id="& NNproj_id &"&FRrtag_id=&group="& Request("group") &"&repnum="& Request("repnum") &"&FRvtree_id=',this,0)"" class='form_item'>"
      If BBallow_all Then
         Response.write "<option value='-1'>ALL</option>"
      Else
         Response.write "<option></option>"
      End If

      If NNproj_id <> -1 Then
         While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))
            If CDbl(NNvtree_id) = CDbl(rsTemp.Fields("vtree_id")) Then
                 Response.write "<option value='"& rsTemp.Fields("vtree_id") &"' selected>"& (rsTemp.Fields("vtree_name")) &"</option>"
              Else
               Response.write "<option value='"& rsTemp.Fields("vtree_id") &"'>"& (rsTemp.Fields("vtree_name")) &"</option>"
            End If
            rsTemp.MoveNext
         WEnd
      End If
   Response.write "</select>"

   rsTemp.Close
   Set rsTemp = nothing
End Sub
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Sub Get_Open_Release_Labels ( NNproj_id, NNrtag_id, BBallow_all )
   Dim rsTemp, Query_String

   Query_String = _
   "SELECT rtag_id, rtag_name FROM release_tags WHERE proj_id = "& NNproj_id &"AND official in ('N','C','R')  ORDER BY rtag_name ASC"
   Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))

   Response.write "<select name='FRrtag_id' onChange=""Cascaded_Menu('parent','"& scriptName &"?FRproj_id="& NNproj_id &"&group="& Request("group") &"&repnum="& Request("repnum") &"&FRrtag_id=',this,0)"" class='form_item'>"
   If BBallow_all Then
      Response.write "<option value='-1'>ALL</option>"
   Else
      Response.write "<option></option>"
   End If

      If NNproj_id <> -1 Then
         While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))
            If CDbl(NNrtag_id) = CDbl(rsTemp.Fields("rtag_id")) Then
                 Response.write "<option value='"& rsTemp.Fields("rtag_id") &"' selected>"& (rsTemp.Fields("rtag_name")) &"</option>"
              Else
               Response.write "<option value='"& rsTemp.Fields("rtag_id") &"'>"& (rsTemp.Fields("rtag_name")) &"</option>"
            End If
            rsTemp.MoveNext
         WEnd
      End If
   Response.write "</select>"

   rsTemp.Close
   Set rsTemp = nothing
End Sub

Sub Get_Release_Labels ( NNproj_id, NNrtag_id, BBallow_all )
   Dim rsTemp, Query_String

   Query_String = _
   "SELECT rtag_id, rtag_name FROM release_tags WHERE proj_id = "& NNproj_id &" ORDER BY rtag_id ASC"
   Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))

   Response.write "<select name='FRrtag_id' onChange=""Cascaded_Menu('parent','"& scriptName &"?FRproj_id="& NNproj_id &"&group="& Request("group") &"&repnum="& Request("repnum") &"&FRrtag_id=',this,0)"" class='form_item'>"
   If BBallow_all Then
      Response.write "<option value='-1'>ALL</option>"
   Else
      Response.write "<option></option>"
   End If

      If NNproj_id <> -1 Then
         While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))
            If CDbl(NNrtag_id) = CDbl(rsTemp.Fields("rtag_id")) Then
                 Response.write "<option value='"& rsTemp.Fields("rtag_id") &"' selected>"& (rsTemp.Fields("rtag_name")) &"</option>"
              Else
               Response.write "<option value='"& rsTemp.Fields("rtag_id") &"'>"& (rsTemp.Fields("rtag_name")) &"</option>"
            End If
            rsTemp.MoveNext
         WEnd
      End If
   Response.write "</select>"

   rsTemp.Close
   Set rsTemp = nothing
End Sub
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Sub Get_SBOM_Version ( NNproj_id, NNrtag_id, BBallow_all, NNversion )
   Dim rsTemp, Query_String

   Query_String = _
   "SELECT BOM_ID, BRANCH_ID, BOM_VERSION ||'.'||BOM_LIFECYCLE AS VERSION FROM DEPLOYMENT_MANAGER.BOMS WHERE BRANCH_ID ="&NNrtag_id&" ORDER BY VERSION"


   Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))


   Response.write "<select name='FRversion' class='form_item'>"
   If BBallow_all Then
      Response.write "<option value='-1'>ALL</option>"
   Else
      Response.write "<option></option>"
   End If

      If NNrtag_id <> -1 Then
         While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))
            If CStr(NNversion) = CStr(rsTemp.Fields("version")) Then
                 Response.write "<option value='"& rsTemp.Fields("version") &"' selected>"& (rsTemp.Fields("version")) &"</option>"
              Else
               Response.write "<option value='"& rsTemp.Fields("version") &"'>"& (rsTemp.Fields("version")) &"</option>"
            End If
            rsTemp.MoveNext
         WEnd
      End If
   Response.write "</select>"
   rsTemp.Close
   Set rsTemp = nothing

End Sub
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Sub Get_Branches ( NNproj_id, NNrtag_id, BBallow_all )
   Dim rsTemp, Query_String

   Query_String = _
   "SELECT * FROM deployment_manager.branches WHERE proj_id = "& NNproj_id &" ORDER BY branch_id ASC"
   Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))
   Response.write "<select name='FRbranch_id' onChange=""Cascaded_Menu('parent','"& scriptName &"?FRproj_id="& NNproj_id &"&group="& Request("group") &"&repnum="& Request("repnum") &"&FRrtag_id=',this,0)"" class='form_item'>"
   If BBallow_all Then
      Response.write "<option value='-1'>ALL</option>"
   Else
      Response.write "<option></option>"
   End If

      If NNproj_id <> -1 Then
         While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))
            If CDbl(NNrtag_id) = CDbl(rsTemp.Fields("branch_id")) Then
                 Response.write "<option value='"& rsTemp.Fields("branch_id") &"' selected>"& (rsTemp.Fields("branch_name")) &"</option>"
              Else
               Response.write "<option value='"& rsTemp.Fields("branch_id") &"'>"& (rsTemp.Fields("branch_name")) &"</option>"
            End If
            rsTemp.MoveNext
         WEnd
      End If
   Response.write "</select>"

   rsTemp.Close
   Set rsTemp = nothing
End Sub
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------

Sub Get_Base_Views ( nRtag_id, nBase_view_id, BBallow_all )
   Dim rsTemp, Query_String

   Query_String = _
   "SELECT DISTINCT vi.view_id, vi.view_name"&_
   "  FROM VIEWS vi,"&_
   "         RELEASE_CONTENT rc"&_
   " WHERE rc.BASE_VIEW_ID = vi.VIEW_ID"&_
   "   AND rc.rtag_id = "& nRtag_id &_
   "ORDER BY UPPER( vi.view_name )"

   Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))

   Response.write "<select name='FRbase_view_id' class='form_item'>"
   If BBallow_all Then
      Response.write "<option value='-1'>ALL</option>"
   Else
      Response.write "<option></option>"
   End If

      If nRtag_id <> -1 Then
         While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))
            If CDbl(nBase_view_id) = CDbl(rsTemp.Fields("view_id")) Then
                 Response.write "<option value='"& rsTemp.Fields("view_id") &"' selected>"& (rsTemp.Fields("view_name")) &"</option>"
              Else
               Response.write "<option value='"& rsTemp.Fields("view_id") &"'>"& (rsTemp.Fields("view_name")) &"</option>"
            End If
            rsTemp.MoveNext
         WEnd
      End If
   Response.write "</select>"

   rsTemp.Close
   Set rsTemp = nothing
End Sub
%>
<%
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------
'==================================================================================
' Report Name      :    Packages Using Ignore Feature
' Description      :   Lists packages which use "Ignore Warning"
'                  feature on their dependencies.
' INPUT            :   Project, Vesion Tree, Release Label
'==================================================================================
Sub Packages_Using_Ignore_Feature ( SSsection, NNproj_id, NNrtag_id )
   Dim Query_String, rsRep
   Const Allow_All = TRUE

   If NNproj_id = "" Then NNproj_id = -1
   If NNrtag_id = "" Then NNrtag_id = -1

   If SSsection = "TITLE" Then
      Response.write "Packages Using 'Ignore Warnings' Feature"
      Exit Sub
   End If


   If SSsection = "FORM" Then
      %>
      <table width="100%" border="0" cellpadding="2" cellspacing="1">
         <form action="<%=scriptName%>" method="post" name="repform">
            <tr>
               <td width="1%" nowrap class="form_field"><img src="images/spacer.gif" width="30" height="8"></td>
               <td width="1%" align="right" nowrap class="form_field">Project</td>
               <td width="100%"><%Call Get_Projects( NNproj_id, Allow_All )%></td>
            </tr>
            <tr>
               <td nowrap class="form_field">&nbsp;</td>
               <td align="right" nowrap class="form_field">Release</td>
               <td><%Call Get_Release_Labels ( NNproj_id,  NNrtag_id, Allow_All )%></td>
            </tr>
            <tr>
               <td nowrap class="form_field">&nbsp;</td>
               <td align="right" nowrap class="form_field">&nbsp;</td>
               <td><br>
                  <input type="hidden" name="group" value="<%=parGroup%>">
                  <input type="hidden" name="repnum" value="<%=parRepNum%>">
                  <input type="hidden" name="action" value="true">
                  <input name="Submit" type="submit" class="form_btn" value="Submit">
               </td>
            </tr>
         </form>
      </table>
      <%   Exit Sub
   End If


   If SSsection = "BODY" Then
      If NOT CBool(Request("action")) Then Exit Sub

      Query_String = ReadFile( rootPath & "queries\rep_packages_using_ignore_feature.sql" )

      OraDatabase.Parameters.Add "PROJ_ID", NNproj_id, ORAPARM_INPUT, ORATYPE_NUMBER
      OraDatabase.Parameters.Add "RTAG_ID", NNrtag_id, ORAPARM_INPUT, ORATYPE_NUMBER
      %>
      <table width="100%" border="0" cellspacing="0" cellpadding="2">
         <tr>
            <td width="1%" nowrap class="body_colb">&nbsp;</td>
            <td width="1%" nowrap class="body_colb">Package Name&nbsp;&nbsp;&nbsp;</td>
            <td width="1%" nowrap class="body_colb">Version&nbsp;&nbsp;&nbsp;</td>
            <td width="100%" nowrap class="body_colb">&nbsp;</td>
         </tr>
         <tr>
         <td colspan="4" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
         </tr>
         <%
         Dim currRtag_id
         currRtag_id = -1
         Set rsRep = OraDatabase.DbCreateDynaset( Query_String, 0 )

         OraDatabase.Parameters.Remove "PROJ_ID"
         OraDatabase.Parameters.Remove "RTAG_ID"

         If rsRep.RecordCount = 0 Then
            With Response
               .write "<tr>"
               .write "<td colspan='4' class='body_row'>Found 0 records</td>"
               .write "</tr>"
            End With
         End If

         While ((NOT rsRep.BOF) AND (NOT rsRep.EOF))
            ' -------- GROUP BY RTAG_ID -----------------
            If CDbl(currRtag_id) <> CDbl(rsRep("rtag_id")) Then
               %>
               <tr>
                  <td colspan="3" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
               <td></td>
               </tr>
               <tr>
                  <td colspan="4" nowrap class="body_scol"><%=rsRep("proj_name")  &" &gt; "& rsRep("rtag_name")%></td>
               </tr>
               <%
               currRtag_id = CDbl(rsRep("rtag_id"))
            End If
            ' -------- END GROUP ------------------------
            %>
            <tr>
               <td class="body_row"></td>
               <td nowrap><a href="dependencies.asp?rtag_id=<%=rsRep("rtag_id")%>&pv_id=<%=rsRep("pv_id")%>" class="txt_linked"><%=rsRep("pkg_name")%></a></td>
               <td nowrap><a href="dependencies.asp?rtag_id=<%=rsRep("rtag_id")%>&pv_id=<%=rsRep("pv_id")%>" class="txt_linked"><%=rsRep("pkg_version")%></a></td>
               <td class="body_row"></td>
            </tr>
            <%  rsRep.MoveNext
         WEnd
         %>
         <tr>
            <td colspan="3" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td></td>
         </tr>
         <tr>
            <td colspan="4" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
         </tr>
      </table>
      <!-- PRINT, SAVE, ETC. ------------>
      <%If parPrint = "" Then%>
         <br>
         <br>
         <span onClick="window.print();" class="pointer txt_linked"><img src="images/btn_print.gif" width="23" height="24" hspace="4" border="0" align="absmiddle">Print this report</span><br>
         <br>
      <%End If%>
      <!-- PRINT, SAVE, ETC. END -------->
      <%
      rsRep.Close
      Set rsRep = nothing
   End If

End Sub
%>
<%
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------
'==================================================================================
' Report Name      :    Current State of Release
' Description      :   Show all packages in a release with their state, owner and modifier
' Form Input      :   Project, Vesion Tree, Release Label
' SQL INPUT         :   rtag_id
'==================================================================================
Sub Current_State_of_Release ( SSsection, NNproj_id, NNrtag_id, NNpkg_states )
   Dim Query_String, rsRep
   Const Disallow_All = FALSE

   If NNproj_id = "" Then NNproj_id = -1
   If NNrtag_id = "" Then NNrtag_id = -1
   If NNpkg_states = "" Then NNpkg_states = -1

   If SSsection = "TITLE" Then
      Response.write "Current State of Release"
      Exit Sub
   End If


   If SSsection = "FORM" Then
      %>
      <table width="100%" border="0" cellpadding="2" cellspacing="1">
         <form action="<%=scriptName%>" method="post" name="repform" onSubmit="MM_validateForm('FRproj_id','Project','R','FRvtree_id','Version Tree','R','FRrtag_id','Release','R');return document.MM_returnValue">
            <tr>
               <td width="1%" nowrap class="form_field"><img src="images/spacer.gif" width="30" height="8"></td>
               <td width="1%" align="right" nowrap class="form_field">Project</td>
               <td width="100%"><%Call Get_Projects( NNproj_id, Disallow_All )%></td>
            </tr>
            <tr>
               <td nowrap class="form_field">&nbsp;</td>
               <td align="right" nowrap class="form_field">Release</td>
               <td><%Call Get_Release_Labels ( NNproj_id, NNrtag_id, Disallow_All )%></td>
            </tr>
            <tr>
               <td nowrap class="form_field">&nbsp;</td>
               <td align="right" nowrap class="form_field">Package States</td>
               <td class="form_field" nowrap>
                  <span style="border: 1px solid #808080;">&nbsp;OK&nbsp;<input type="checkbox" name="FRpkg_state" value="<%=enumPKG_STATE_OK%>" <%If InStr( Request("FRpkg_state"), Cstr(enumPKG_STATE_OK) ) > 0 Then%>checked<%End If%>></span>&nbsp;&nbsp;
                  <span style="border: 1px solid #808080;"><%=enum_imgCritical%><input type="checkbox" name="FRpkg_state" value="<%=enumPKG_STATE_MAJOR%>" <%If InStr( Request("FRpkg_state"), Cstr(enumPKG_STATE_MAJOR) ) > 0 Then%>checked<%End If%>></span>&nbsp;&nbsp;
                  <span style="border: 1px solid #808080;"><%=enum_imgWarning%><input type="checkbox" name="FRpkg_state" value="<%=enumPKG_STATE_MINOR%>" <%If InStr( Request("FRpkg_state"), Cstr(enumPKG_STATE_MINOR) ) > 0 Then%>checked<%End If%>></span>&nbsp;&nbsp;
                  <span style="border: 1px solid #808080;"><%=enum_imgCReady%><input type="checkbox" name="FRpkg_state" value="<%=enumPKG_STATE_MAJOR_READY%>" <%If InStr( Request("FRpkg_state"), Cstr(enumPKG_STATE_MAJOR_READY) ) > 0 Then%>checked<%End If%>></span>&nbsp;&nbsp;
                  <span style="border: 1px solid #808080;"><%=enum_imgWReady%><input type="checkbox" name="FRpkg_state" value="<%=enumPKG_STATE_MINOR_READY%>" <%If InStr( Request("FRpkg_state"), Cstr(enumPKG_STATE_MINOR_READY) ) > 0 Then%>checked<%End If%>></span>&nbsp;&nbsp;
               </td>
            </tr>
            <tr>
               <td nowrap class="form_field">&nbsp;</td>
               <td align="right" nowrap class="form_field">&nbsp;</td>
               <td><br>
                  <input type="hidden" name="group" value="<%=parGroup%>">
                  <input type="hidden" name="repnum" value="<%=parRepNum%>">
                  <input type="hidden" name="action" value="true">
                  <input name="Submit" type="submit" class="form_btn" value="Submit">
               </td>
            </tr>
         </form>
      </table>
      <%   Exit Sub
   End If


   If SSsection = "BODY" Then
      If NOT CBool(Request("action")) Then Exit Sub

      Query_String = ReadFile( rootPath & "queries\rep_details_current_status_of_release.sql" )
      Query_String = Replace ( Query_String, "/*PKG_STATES*/", NNpkg_states )

      OraDatabase.Parameters.Add "RTAG_ID", NNrtag_id, ORAPARM_INPUT, ORATYPE_NUMBER
      %>
      <table width="100%" border="0" cellspacing="0" cellpadding="2">
         <tr>
            <td width="1%" nowrap class="body_colb">&nbsp;</td>
            <td width="1%" nowrap class="body_colb">&nbsp;</td>
            <td width="1%" nowrap class="body_colb">&nbsp;</td>
            <td width="1%" nowrap class="body_colb">Package Name and Version&nbsp;&nbsp;&nbsp;</td>
            <td width="1%" nowrap class="body_colb">Owner&nbsp;&nbsp;&nbsp;</td>
            <td width="1%" nowrap class="body_colb">Last Modifier&nbsp;&nbsp;&nbsp;</td>
            <td width="1%" nowrap class="body_colb">Added to Release&nbsp;&nbsp;&nbsp;</td>
            <td width="100%" nowrap class="body_colb">&nbsp;</td>
         </tr>
         <tr>
         <td colspan="8" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
         </tr>
         <%
         Dim currView_id
         currView_id = -1
         Set rsRep = OraDatabase.DbCreateDynaset( Query_String, 0 )
         OraDatabase.Parameters.Remove "RTAG_ID"

         If rsRep.RecordCount = 0 Then
            With Response
               .write "<tr>"
               .write "<td colspan='8' class='body_row'>Found 0 records</td>"
               .write "</tr>"
            End With
         End If

         While ((NOT rsRep.BOF) AND (NOT rsRep.EOF))
            ' -------- GROUP BY RTAG_ID -----------------
            If CDbl(currView_id) <> CDbl(rsRep("view_id")) Then
               %>
               <tr>
                  <td colspan="7" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
                  <td></td>
               </tr>
               <tr>
                  <td colspan="8" nowrap class="body_scol"><%=rsRep("view_name")%></td>
               </tr>
               <%
               currView_id = CDbl(rsRep("view_id"))
            End If
            ' -------- END GROUP ------------------------
            %>
            <tr>
               <td class="body_row"></td>
               <td><%=DefineStateIcon ( rsRep("pkg_state"), rsRep("dlocked"), NULL, NULL, NULL, NULL )%></td>
               <%If rsRep("dlocked") = "Y" Then%>
                  <td align="center" class="form_item"><img src='images/i_locked.gif' width='7' height='10' hspace='6'></td>
               <%Else%>
                  <td align="center" class="form_item"><img src='images/spacer.gif' width='7' height='10' hspace='6'></td>
               <%End If%>
               <td nowrap class="body_row"><%=rsRep("pkg_name") &" "& rsRep("pkg_version")%></td>
               <td nowrap><%=emailField(rsRep("owner"),rsRep("owner_email"))%>&nbsp;&nbsp;&nbsp;</td>
               <td nowrap><%=emailField(rsRep("modifier"),rsRep("modifier_email"))%>&nbsp;&nbsp;&nbsp;</td>
               <td class="body_row"><%=DisplayDate( rsRep("insert_stamp") )%></td>
               <td class="body_row"></td>
            </tr>
            <%  rsRep.MoveNext
         WEnd
         %>
         <tr>
            <td colspan="8" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
         </tr>
      </table>
      <!-- PRINT, SAVE, ETC. ------------>
      <%If parPrint = "" Then%>
         <br>
         <br>
         <span onClick="window.print();" class="pointer txt_linked"><img src="images/btn_print.gif" width="23" height="24" hspace="4" border="0" align="absmiddle">Print this report</span><br>
         <br>
      <%End If%>
      <!-- PRINT, SAVE, ETC. END -------->
      <%
      rsRep.Close
      Set rsRep = nothing
   End If

End Sub
%>
<%
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------
'==================================================================================
' Report Name      :    Find ClearQuest Bugs / Issues Location
' Description      :   Locates bugs / issues imported from ClearQuest
' Form Input      :   CQ issue Database, CQ issue number list space separated
'==================================================================================
Sub Where_Are_Bugs_Located ( SSsection, NNiss_db, SSiss_num_list )

   If SSsection = "TITLE" Then
      Response.write "Find Jira or ClearQuest Bugs / Issues Location"
      Exit Sub
   End If

   If SSsection = "FORM" Then
      %>
      <table width="100%" border="0" cellpadding="2" cellspacing="1">
         <form action="<%=scriptName%>" method="post" name="repform" onSubmit="MM_validateForm('FRiss_num_list','Issue Number','R');return document.MM_returnValue">
            <tr>
               <td width="1%" nowrap class="form_field"><img src="images/spacer.gif" width="30" height="8"></td>
               <td width="1%" align="right" nowrap class="form_field" valign="top">Issue System</td>
               <td width="100%">
                  <select name="FRiss_db" class="form_item">
                     <option value="<%=enumJIRA_DEVI_ID%>" <%If CDbl(NNiss_db) = enumJIRA_DEVI_ID Then%>selected<%End If%>>Jira</option>
                     <option value="<%=enumCLEARQUEST_DEVI_ID%>" <%If CDbl(NNiss_db) = enumCLEARQUEST_DEVI_ID Then%>selected<%End If%>>ClearQuest DEVI</option>
                  </select>
               </td>
            </tr>
            <tr>
               <td nowrap class="form_field">&nbsp;</td>
               <td align="right" nowrap class="form_field" valign="top">Issue Numbers</td>
               <td class="form_txt"><input type="text" name="FRiss_num_list" size="50" class="form_item" value="<%=SSiss_num_list%>"><br>
               HINTS:<br>
               - You can use * wildcard. e.g. *0123 or 0123* or *0123*<br>
               - Use space separated issue numbers for multiple search.</td>
            </tr>
            <tr>
               <td nowrap class="form_field">&nbsp;</td>
               <td align="right" nowrap class="form_field">&nbsp;</td>
               <td><br>
                  <input type="hidden" name="group" value="<%=parGroup%>">
                  <input type="hidden" name="repnum" value="<%=parRepNum%>">
                  <input type="hidden" name="action" value="true">
                  <input name="Submit" type="submit" class="form_btn" value="Submit">
               </td>
            </tr>
         </form>
      </table>
      <%   Exit Sub
   End If


   If SSsection = "BODY" Then
      If NOT CBool(Request("action")) Then Exit Sub

     If CDbl(NNiss_db) = enumCLEARQUEST_DEVI_ID Then
        Call Where_Are_Bugs_Located_ClearQuest( SSsection, NNiss_db, SSiss_num_list)
     ElseIf CDbl(NNiss_db) = enumJIRA_DEVI_ID Then
        Call Where_Are_Bugs_Located_Jira (SSsection, NNiss_db, SSiss_num_list)
     End If
     %>
      <!-- PRINT, SAVE, ETC. ------------>
      <%If parPrint = "" Then%>
         <br>
         <br>
         <span onClick="window.print();" class="pointer txt_linked"><img src="images/btn_print.gif" width="23" height="24" hspace="4" border="0" align="absmiddle">Print this report</span><br>
         <br>
      <%End If%>
      <!-- PRINT, SAVE, ETC. END -------->
      <%
   End If

End Sub
'-------------------------------------------------
' Function:     Where_Are_Bugs_Located_Jira    
' Description:  Body of the report for Jira Issues
'
Sub Where_Are_Bugs_Located_Jira ( SSsection, NNiss_db, SSiss_num_list )
    Dim Query_String, rsRep
    Dim SSsql, issARR, num_item, issNumDict, rsCQ, recCount, maxRecCount
    Set issNumDict = CreateObject("Scripting.Dictionary")

    '---- Find Issue numbers in JIRA  ----
     SSsql = _
     " select distinct ISS_KEY"&_
     " FROM release_manager.JIRA_ISSUES"&_
     " WHERE "

    '---- Split multiple search ----
    SSiss_num_list = Trim(SSiss_num_list)
    If InStr( SSiss_num_list, " " ) > 0 Then
     ' space separator found
     issARR = Split ( SSiss_num_list, " ")

     For Each num_item In issARR
        If num_item <> "" Then
           SSsql = SSsql & " ISS_KEY LIKE ('%"& Replace( SQLstring(num_item), "*", "%" ) & "') OR"
        End If
     Next

     SSsql = Left ( SSsql, Len(SSsql) - 2 )      ' Removes last OR

    Else
     SSsql = SSsql & " ISS_KEY LIKE ('%"& Replace( SQLstring(SSiss_num_list), "*", "%") &"')"

    End If

    Set rsCQ = OraDatabase.DbCreateDynaset( SSsql, cint(0))

    ' Get find results from CQ
    recCount = 1
    maxRecCount = 1000
    issNumDict.ADD "'-1'", "-1"      ' take care of no results
    While ((NOT rsCQ.BOF) AND (NOT rsCQ.EOF) AND (recCount < maxRecCount))
     issNumDict.ADD "'" & Cstr(rsCQ("ISS_KEY")) & "'", "1"
     recCount = recCount + 1
     rsCQ.MoveNext
    WEnd

    rsCQ.Close
    Set rsCQ = nothing

    Query_String = ReadFile( rootPath & "queries\rep_where_are_jirabugs_located.sql" )
    Query_String = Replace ( Query_String, "/*ISS_ID_LIST*/", Join( issNumDict.Keys, ",") )

    %>
    <table width="100%" border="0" cellspacing="0" cellpadding="2">
     <tr>
        <td width="1%" nowrap class="body_colb">Issue Number&nbsp;&nbsp;&nbsp;</td>
        <td width="1%" nowrap class="body_colb">&nbsp;&nbsp;&nbsp;</td>
        <td width="1%" nowrap class="body_colb">Package Name and Version&nbsp;&nbsp;&nbsp;</td>
        <td width="1%" nowrap class="body_colb">Currently used Release&nbsp;&nbsp;&nbsp;</td>
        <td width="100%" nowrap class="body_colb">&nbsp;</td>
     </tr>
     <tr>
     <td colspan="5" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
     </tr>
     <%
     Dim currIss_id
     currIss_id = -1

     Set rsRep = OraDatabase.DbCreateDynaset( Query_String, 0 )
     If rsRep.RecordCount = 0 Then
        With Response
           .write "<tr>"
           .write "<td colspan='5' class='body_row'>Found 0 records</td>"
           .write "</tr>"
        End With
     End If

     While ((NOT rsRep.BOF) AND (NOT rsRep.EOF))
        ' -------- GROUP BY ISS_KEY -----------------
        If Cstr(currIss_id) <> Cstr(rsRep("iss_key")) Then
           %>
           <% ' -- line between issues %>
           <tr>
              <td colspan="5" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
              <td></td>
           </tr>
           <% ' -- Start of a new issue %>
           <tr>
              <td nowrap valign="top">
                    <a href="<%=Application("JIRA_URL") & "/browse/" & rsRep("iss_key")%>" class="txt_linked"  target="_blank" title="Browse Jira Issue">
                        <img src="images/i_drill_down.gif" width="12" height="14" hspace="3" border="0" align="absmiddle">
                    <%=rsRep("iss_key")%></a>
              </td>
           <%
           currIss_id = Cstr(rsRep("iss_key"))
        Else %>
           <td nowrap class="body_row" valign="top"></td>
        <% End If
        ' -------- END GROUP ------------------------
        %>
           <td align="left"><img src='images/spacer.gif' width='7' height='7' hspace='6'></td>
           <td nowrap align="left" class="body_row" valign="top">
              <a href="fixed_issues.asp?pv_id=<%=rsRep("pv_id")%>#ISSUES" class="txt_linked" target="_blank"  title="Open version in new window">
                <%=rsRep("pkg_name") &" "& rsRep("pkg_version")%>
              </a>
           </td>
           <td>
           <%
           Query_String = "select * from release_content rc, release_tags rt" &_
                          " where rc.rtag_id = rt.rtag_id and pv_id = "&rsRep("pv_id")
           Set rsQry = OraDatabase.DbCreateDynaset( Query_String , 0 )
           If rsQry.RecordCount <> 0 Then
               %>
               <table width="100%" border="0" cellspacing="0" cellpadding="2">
               <%
               While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))
                  %>
                  <tr>
                     <td nowrap align="left" class="body_row" valign="top">
                        <a href="fixed_issues.asp?rtag_id=<%=rsQry("rtag_id")%>&pv_id=<%=rsQry("pv_id")%>#ISSUES" class="txt_linked" target="_blank">
                            <%=rsQry("rtag_name")%>
                        </a>
                     </td>
                  </tr>
                  <%
                  rsQry.MoveNext()
               WEnd
                %>
                </table>
                <%
           End If
           rsQry.Close()
           Set rsQry = Nothing
           %>
           </td>
           <td nowrap align="left" class="body_row" valign="top"></td>
        </tr>
        <%  rsRep.MoveNext
     WEnd
     %>
     <tr>
        <td colspan="5" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
     </tr>
    </table>
    <%
    rsRep.Close
    Set rsRep = nothing
End Sub

'-------------------------------------------------
' Function:     Where_Are_Bugs_Located_ClearQuest    
' Description:  Body of the report for ClearQuest Issues
'
Sub Where_Are_Bugs_Located_ClearQuest ( SSsection, NNiss_db, SSiss_num_list )
    Dim Query_String, rsRep
    Dim SSsql, issARR, num_item, iss_num_col, issNumDict, rsCQ, recCount, maxRecCount
    Set issNumDict = CreateObject("Scripting.Dictionary")

    '---- Find Issue numbers in ClearQuest ----
     iss_num_col = "new_num"
     SSsql = _
     " SELECT si.dbid AS iss_id, si."& iss_num_col &" AS iss_num"&_
     " FROM release_manager.cq_software_issue si"&_
     " WHERE "

    '---- Split multiple search ----
    SSiss_num_list = Trim(SSiss_num_list)
    If InStr( SSiss_num_list, " " ) > 0 Then
     ' space separator found
     issARR = Split ( SSiss_num_list, " ")

     For Each num_item In issARR
        If num_item <> "" Then
           SSsql = SSsql & " (si."& iss_num_col &" LIKE '%"& Replace( SQLstring(num_item), "*", "%" ) &"%') OR"
        End If
     Next

     SSsql = Left ( SSsql, Len(SSsql) - 2 )      ' Removes last OR

    Else
     SSsql = SSsql & " (si."& iss_num_col &" LIKE '%"& Replace( SQLstring(SSiss_num_list), "*", "%") &"%')"

    End If
    Set rsCQ = OraDatabase.DbCreateDynaset( SSsql, cint(0))

    ' Get find results from CQ
    recCount = 1
    maxRecCount = 1000
    issNumDict.ADD "-1", "-1"      ' take care of no results
    While ((NOT rsCQ.BOF) AND (NOT rsCQ.EOF) AND (recCount < maxRecCount))
     issNumDict.ADD Cstr(rsCQ("iss_id")), Cstr(rsCQ("iss_num"))
     recCount = recCount + 1
     rsCQ.MoveNext
    WEnd

    rsCQ.Close
    Set rsCQ = nothing

    Query_String = ReadFile( rootPath & "queries\rep_where_are_bugs_located.sql" )
    Query_String = Replace ( Query_String, "/*ISS_DB*/", NNiss_db )
    Query_String = Replace ( Query_String, "/*ISS_ID_LIST*/", Join( issNumDict.Keys, ",") )

    %>
    <table width="100%" border="0" cellspacing="0" cellpadding="2">
     <tr>
        <td width="1%" nowrap class="body_colb">Issue Number&nbsp;&nbsp;&nbsp;</td>
        <td width="1%" nowrap class="body_colb">Fixed</td>
        <td width="1%" nowrap class="body_colb">Package Name and Version&nbsp;&nbsp;&nbsp;</td>
        <td width="1%" nowrap class="body_colb">Notes&nbsp;&nbsp;&nbsp;</td>
        <td width="100%" nowrap class="body_colb">&nbsp;</td>
     </tr>
     <tr>
     <td colspan="5" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
     </tr>
     <%
     Dim currIss_id
     currIss_id = -1
     Set rsRep = OraDatabase.DbCreateDynaset( Query_String, 0 )

     If rsRep.RecordCount = 0 Then
        With Response
           .write "<tr>"
           .write "<td colspan='5' class='body_row'>Found 0 records</td>"
           .write "</tr>"
        End With
     End If

     While ((NOT rsRep.BOF) AND (NOT rsRep.EOF))
        ' -------- GROUP BY ISS_ID -----------------
        If Cstr(currIss_id) <> Cstr(rsRep("iss_id")) Then
           %>
           <tr>
              <td colspan="5" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
              <td></td>
           </tr>
           <tr>
              <td nowrap>
                    <span onClick="MM_openVixIFrame('_wform_issues_details.asp?iss_db=<%=NNiss_db%>&iss_id=<%= rsRep("iss_id")%>','Issue Details','resizable=yes,width=580,height=500')" class="txt_linked pointer">
                        <img src="images/i_drill_down.gif" width="12" height="14" hspace="3" border="0" align="absmiddle" title="See issue details.">
                    <%=issNumDict.Item ( Cstr ( rsRep("iss_id") ) )%></span>
              </td>

              <td colspan='5' class="body_scol"></td>
           </tr>
           <%
           currIss_id = Cstr(rsRep("iss_id"))
        End If
        ' -------- END GROUP ------------------------
        %>
        <tr>
           <td nowrap class="body_row" valign="top"></td>
           <%If CDbl(rsRep("iss_state")) = enumISSUES_STATE_FIXED Then%>
              <td align="left"><img src="images/i_tick.gif" width="7" height="7" hspace="6"></td>
           <%Else%>
              <td align="left"><img src='images/spacer.gif' width='7' height='7' hspace='6'></td>
           <%End If%>
           <td nowrap align="left" class="body_row" valign="top"><%=rsRep("pkg_name") &" "& rsRep("pkg_version")%><img src="images/i_drill_down.gif" width="12" height="14" hspace="3" border="0" align="absmiddle" title="Find this package."></td>
           <%
           Set rsQry = OraDatabase.DbCreateDynaset( "select * from release_content rc, release_tags rt where rc.rtag_id = rt.rtag_id and "&_
                                      " pv_id ="&rsRep("pv_id"), 0 )

           While ((NOT rsQry.BOF) AND (NOT rsQry.EOF))
              %>
              <tr>
                 <td nowrap align="left" class="body_row" valign="top"></td>
                 <td nowrap align="left" class="body_row" valign="top"></td>
                 <td nowrap align="left" class="body_row" valign="top"><a href="fixed_issues.asp?rtag_id=<%=rsQry("rtag_id")%>&pv_id=<%=rsQry("pv_id")%>" class="txt_linked" target="_blank"><%=rsQry("rtag_name")%></a></td>
              </tr>
              <%
              rsQry.MoveNext()
           WEnd
           rsQry.Close()
           Set rsQry = Nothing
           %>
           <td nowrap align="left" class="body_row" valign="top"><%=rsRep("notes")%></td>
           <td nowrap align="left" class="body_row" valign="top"></td>
        </tr>
        <%  rsRep.MoveNext
     WEnd
     %>
     <tr>
        <td colspan="5" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
     </tr>
    </table>
    <%
    rsRep.Close
    Set rsRep = nothing
End Sub

%>
<%
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------
'==================================================================================
' Report Name      :   Find a Package
' Description      :   Locate a package in Release Manager
' Form Input       :   Package Name, version extension
'==================================================================================
Sub Find_Package ( SSsection, SSpkg_name, SSv_ext )
   Dim Query_String, rsRep, oRegExp


   If SSsection = "TITLE" Then
      Response.write "Find a Package"
      Exit Sub
   End If


   If SSsection = "FORM" Then
      %>
      <table width="100%" border="0" cellpadding="2" cellspacing="1">
         <form action="<%=scriptName%>" method="post" name="repform" onSubmit="MM_validateForm('FRpkg_name','Package Name','R');return document.MM_returnValue">
            <tr>
               <td width="1%" nowrap class="form_field"><img src="images/spacer.gif" width="1" height="8"></td>
               <td width="1%" align="right" nowrap class="form_field" valign="top">Package Name</td>
               <td class="form_txt"><input type="text" name="FRpkg_name" size="30" class="form_item" value="<%=SSpkg_name%>"><br>
               HINTS:<br>
               - You can use * wildcard. e.g. *0123 or 0123* or *0123*<br><br></td>
            </tr>
            <tr>
               <td nowrap class="form_field">&nbsp;</td>
               <td align="right" nowrap class="form_field" valign="top">Version Extension (optional)</td>
               <td class="form_txt"><input type="text" name="FRv_ext" size="10" class="form_item" value="<%=SSv_ext%>"><br>
               e.g. .mas or .cr or blank etc.</td>
            </tr>
            <tr>
               <td nowrap class="form_field">&nbsp;</td>
               <td align="right" nowrap class="form_field">&nbsp;</td>
               <td><br>
                  <input type="hidden" name="group" value="<%=parGroup%>">
                  <input type="hidden" name="repnum" value="<%=parRepNum%>">
                  <input type="hidden" name="action" value="true">
                  <input name="Submit" type="submit" class="form_btn" value="Submit">
               </td>
            </tr>
         </form>
      </table>
      <%   Exit Sub
   End If


   If SSsection = "BODY" Then
      If NOT CBool(Request("action")) Then Exit Sub

      If SSpkg_name = "" Then SSpkg_name = "%"
      If SSv_ext = "" Then SSv_ext = "%"
      If Request("withwcard") <> "" Then SSpkg_name = "%"& Replace( SQLstring(SSpkg_name), "*", "") &"%"      'Place wild card automatically



      ' -- Check if this is PV_ID
      Set oRegExp = New RegExp

      oRegExp.Global = False   'Find only first match
      oRegExp.Pattern = "\D" 'Match number only


      If NOT oRegExp.Test(Request("FRpkg_name")) Then
         Query_String = ReadFile( rootPath & "queries\rep_find_package_by_pv_id.sql" )
         Query_String = Replace ( Query_String, "/*PV_ID*/", SQLstring(Request("FRpkg_name") )  )

      Else
         Query_String = ReadFile( rootPath & "queries\rep_find_package.sql" )
         Query_String = Replace ( Query_String, "/*PKG_NAME*/", Replace( SQLstring(SSpkg_name), "*", "%") )
         Query_String = Replace ( Query_String, "/*V_EXT*/", Replace( SQLstring(SSv_ext), "*", "%") )
      End If
      %>
      <table width="100%" border="0" cellspacing="0" cellpadding="2">
         <tr>
            <td width="1%" nowrap class="body_colb">Package Name and Version&nbsp;&nbsp;&nbsp;</td>
            <td width="1%" nowrap class="body_colb">Location</td>
            <td width="100%" nowrap class="body_colb">&nbsp;</td>
         </tr>
         <tr>
            <td colspan="3" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
         </tr>
         <%
         Dim currPv_id, currVext
         currPv_id = -2
         currVext = ""
         Set rsRep = OraDatabase.DbCreateDynaset( Query_String, 0 )

         If rsRep.RecordCount = 0 Then
            With Response
               .write "<tr>"
               .write "<td colspan='3' class='body_row'>Found 0 records</td>"
               .write "</tr>"
            End With
         End If

         While ((NOT rsRep.BOF) AND (NOT rsRep.EOF))
            ' -------- GROUP BY Package Version -----------------
            If (Cstr(currPv_id) <> Cstr(rsRep("pv_id"))) OR (currVext <> rsRep("V_EXT"))  Then
               %>
               <tr>
                  <td colspan="2" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
               <td></td>
               </tr>
               <tr>
                  <%If Request("withwcard") <> "" Then%>
                     <%' Highlight results for package search from index page%>
                     <td nowrap class="body_scol"><%=Highlight_Substring ( rsRep("pkg_name"), Replace( SQLstring(SSpkg_name), "%", "") )  &" "& rsRep("pkg_version")%></td>
                  <%Else%>
                     <td nowrap class="body_scol"><%=rsRep("pkg_name") &" "& rsRep("pkg_version")%></td>
                  <%End If%>
                  <td colspan='2' class="body_scol"></td>
               </tr>
               <%
               currPv_id = Cstr(rsRep("pv_id"))
               currVext = rsRep("V_EXT")
            End If
            ' -------- END GROUP ------------------------
            %>
            <%If NOT IsNull(rsRep("proj_name")) Then%>
               <tr>
                  <td class="body_row"></td>
                  <td nowrap class="body_row" valign="top"><%=rsRep("proj_name") &" &gt; "& rsRep("vtree_name") &" &gt; "& rsRep("rtag_name") &" &gt; <a href='dependencies.asp?pv_id="& rsRep("pv_id") &"&rtag_id="& rsRep("rtag_id") &"' class='txt_linked'>"& rsRep("pkg_name") &" "& rsRep("pkg_version") &"</a>"%></td>
                  <td class="body_row"></td>
               </tr>
            <%Else%>
               <tr>
                  <td class="body_row"></td>
                  <td class="body_row"></td>
                  <td class="body_row"></td>
               </tr>
            <%End If%>
            <%  rsRep.MoveNext
         WEnd
         %>
         <tr>
            <td colspan="3" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
         </tr>
      </table>
      <!-- PRINT, SAVE, ETC. ------------>
      <%If parPrint = "" Then%>
         <br>
         <br>
         <span onClick="window.print();" class="pointer txt_linked"><img src="images/btn_print.gif" width="23" height="24" hspace="4" border="0" align="absmiddle">Print this report</span><br>
         <br>
      <%End If%>
      <!-- PRINT, SAVE, ETC. END -------->
      <%
      rsRep.Close
      Set rsRep = nothing
   End If

End Sub
%>
<%
'==================================================================================
' Report Name      :    Find Package Version History
' Description      :   Locate all package versions and their current location
' Form Input      :   Package Name, version extension
'==================================================================================
Sub Find_Package_Version_History ( SSsection, SSpkg_name, SSv_ext )
   Dim Query_String, rsRep


   If SSsection = "TITLE" Then
      Response.write "Find Package Version History"
      Exit Sub
   End If


   If SSsection = "FORM" Then
      %>
      <table width="100%" border="0" cellpadding="2" cellspacing="1">
         <form action="<%=scriptName%>" method="post" name="repform" onSubmit="MM_validateForm('FRpkg_name','Package Name','R');return document.MM_returnValue">
            <tr>
               <td width="1%" nowrap class="form_field"><img src="images/spacer.gif" width="1" height="8"></td>
               <td width="1%" align="right" nowrap class="form_field" valign="top">Package Name</td>
               <td class="form_txt"><input type="text" name="FRpkg_name" size="30" class="form_item" value="<%=SSpkg_name%>"><br>
               HINTS:<br>
               - You can use * wildcard. e.g. *0123 or 0123* or *0123*<br><br></td>
            </tr>
            <tr>
               <td nowrap class="form_field">&nbsp;</td>
               <td align="right" nowrap class="form_field" valign="top">Version Extension (optional)</td>
               <td class="form_txt"><input type="text" name="FRv_ext" size="10" class="form_item" value="<%=SSv_ext%>"><br>
               e.g. .mas or .lvs or .oso or blank etc.</td>
            </tr>
            <tr>
               <td nowrap class="form_field">&nbsp;</td>
               <td align="right" nowrap class="form_field">&nbsp;</td>
               <td><br>
                  <input type="hidden" name="group" value="<%=parGroup%>">
                  <input type="hidden" name="repnum" value="<%=parRepNum%>">
                  <input type="hidden" name="action" value="true">
                  <input name="Submit" type="submit" class="form_btn" value="Submit">
               </td>
            </tr>
         </form>
      </table>
      <%   Exit Sub
   End If


   If SSsection = "BODY" Then
      Const img_Official = "<img src='images/i_locked.gif' width='7' height='10' hspace='3' align='absmiddle'>"
      If NOT CBool(Request("action")) Then Exit Sub

      If SSpkg_name = "" Then SSpkg_name = "%"
      If SSv_ext = "" Then SSv_ext = "%"

      Query_String = ReadFile( rootPath & "queries\rep_package_version_history.sql" )
      Query_String = Replace ( Query_String, "/*PKG_NAME*/", Replace( SQLstring(SSpkg_name), "*", "%") )
      Query_String = Replace ( Query_String, "/*V_EXT*/", Replace( SQLstring(SSv_ext), "*", "%") )
      %>
      <table width="100%" border="0" cellspacing="0" cellpadding="2">
         <tr>
            <td width="1%" nowrap class="body_colb" align="right">Official<%=img_Official%></td>
            <td width="1%" nowrap class="body_colb">Package Name and Version&nbsp;&nbsp;&nbsp;</td>
            <td width="1%" nowrap class="body_colb">Location</td>
            <td width="100%" nowrap class="body_colb">&nbsp;</td>
         </tr>
         <tr>
            <td colspan="4" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
         </tr>
         <%
         Dim currPv_id
         currPv_id = -1
         Set rsRep = OraDatabase.DbCreateDynaset( Query_String, 0 )

         If rsRep.RecordCount = 0 Then
            With Response
               .write "<tr>"
               .write "<td colspan='4' class='body_row'>Found 0 records</td>"
               .write "</tr>"
            End With
         End If

         While ((NOT rsRep.BOF) AND (NOT rsRep.EOF))
            ' -------- GROUP BY Package Version -----------------
            If Cstr(currPv_id) <> Cstr(rsRep("pv_id")) Then
            %>
               <tr>
               <td colspan="3" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
               <td></td>
               </tr>
            <tr>
               <td align="right"><%If rsRep("dlocked") = "Y" Then%><%=img_Official%><%End If%></td>
               <td nowrap class="body_scol"><%=rsRep("pkg_name") &" "& rsRep("pkg_version")%></td>
               <td colspan='2' class="body_scol"></td>
               </tr>
            <%
               currPv_id = Cstr(rsRep("pv_id"))
            End If
            ' -------- END GROUP ------------------------
            %>
               <tr>
               <td class="body_row"></td>
               <td class="body_row"></td>
               <%If IsNull(rsRep("rtag_id")) Then%>
                  <td nowrap class="body_txt_gray" valign="top">Not Used!</td>
               <%Else%>
                  <td nowrap class="body_row" valign="top"><%=rsRep("proj_name") &" &gt; "& rsRep("vtree_name") &" &gt; "& rsRep("rtag_name") &" &gt; <a href='dependencies.asp?pv_id="& rsRep("pv_id") &"&rtag_id="& rsRep("rtag_id") &"' class='txt_linked'>"& rsRep("pkg_name") &" "& rsRep("pkg_version") &"</a>"%></td>
               <%End If%>
               <td class="body_row"></td>
               </tr>
         <%  rsRep.MoveNext
         WEnd
         %>
         <tr>
            <td colspan="4" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
         </tr>
      </table>
      <!-- PRINT, SAVE, ETC. ------------>
      <%If parPrint = "" Then%>
         <br>
         <br>
         <span onClick="window.print();" class="pointer txt_linked"><img src="images/btn_print.gif" width="23" height="24" hspace="4" border="0" align="absmiddle">Print this report</span><br>
         <br>
      <%End If%>
      <!-- PRINT, SAVE, ETC. END -------->
      <%
      rsRep.Close
      Set rsRep = nothing
   End If

End Sub
%>
<%
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------
'==================================================================================
' Report Name      :    Obsolete Packages
' Description      :   List packages that are not used (exclude products)
' INPUT            :   Project, Vesion Tree, Release Label
'==================================================================================
Sub Obsolete_Packages ( SSsection, NNproj_id, NNrtag_id )
   Dim Query_String, rsRep
   Const Allow_All = TRUE
   Const Disallow_All = FALSE

   If NNproj_id = "" Then NNproj_id = -1
   If NNrtag_id = "" Then NNrtag_id = -1

   If SSsection = "TITLE" Then
      Response.write "Unused Packages"
      Exit Sub
   End If


   If SSsection = "FORM" Then
      %>
      <table width="100%" border="0" cellpadding="2" cellspacing="1">
         <form action="<%=scriptName%>" method="post" name="repform" onSubmit="MM_validateForm('FRproj_id','Project','R','FRvtree_id','Version Tree','R','FRrtag_id','Release','R');return document.MM_returnValue">
            <tr>
               <td width="1%" nowrap class="form_field"><img src="images/spacer.gif" width="30" height="8"></td>
               <td width="1%" align="right" nowrap class="form_field">Project</td>
               <td width="100%"><%Call Get_Projects( NNproj_id, Disallow_All )%></td>
            </tr>
            <tr>
               <td nowrap class="form_field">&nbsp;</td>
               <td align="right" nowrap class="form_field">Release</td>
               <td><%Call Get_Release_Labels ( NNproj_id, NNrtag_id, Disallow_All )%></td>
            </tr>
            <tr>
               <td nowrap class="form_field">&nbsp;</td>
               <td align="right" nowrap class="form_field">&nbsp;</td>
               <td><br>
                  <input type="hidden" name="group" value="<%=parGroup%>">
                  <input type="hidden" name="repnum" value="<%=parRepNum%>">
                  <input type="hidden" name="action" value="true">
                  <input name="Submit" type="submit" class="form_btn" value="Submit">
               </td>
            </tr>
         </form>
      </table>
      <%   Exit Sub
   End If


   If SSsection = "BODY" Then
      If NOT CBool(Request("action")) Then Exit Sub

      Query_String = ReadFile( rootPath & "queries\rep_obsolete_packages.sql" )

      OraDatabase.Parameters.Add "RTAG_ID", NNrtag_id, ORAPARM_INPUT, ORATYPE_NUMBER
          OraDatabase.Parameters.Add "SMODE", 1, ORAPARM_INPUT, ORATYPE_NUMBER
      %>
      <table width="100%" border="0" cellspacing="0" cellpadding="2">
         <tr>
            <td width="1%" nowrap class="body_colb">&nbsp;</td>
            <td width="1%" nowrap class="body_colb">Package Name and Version&nbsp;&nbsp;&nbsp;</td>
            <td width="1%" nowrap class="body_colb">Released&nbsp;&nbsp;&nbsp;</td>
            <td width="1%" nowrap class="body_colb">Added to Release&nbsp;&nbsp;&nbsp;</td>
            <td width="100%" nowrap class="body_colb">&nbsp;</td>
         </tr>
         <tr>
            <td colspan="5" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
         </tr>
         <%
         Dim currView_id
         currView_id = -1
         Set rsRep = OraDatabase.DbCreateDynaset( Query_String, 0 )
         OraDatabase.Parameters.Remove "RTAG_ID"
         OraDatabase.Parameters.Remove "SMODE"

         If rsRep.RecordCount = 0 Then
            With Response
               .write "<tr>"
               .write "<td colspan='5' class='body_row'>Found 0 records</td>"
               .write "</tr>"
            End With
         End If

         While ((NOT rsRep.BOF) AND (NOT rsRep.EOF))
            ' -------- GROUP BY BASE VIEW  -----------------
            If CDbl(currView_id) <> CDbl(rsRep("view_id")) Then
               %>
               <tr>
                  <td colspan="4" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
                  <td></td>
               </tr>
               <tr>
                  <td nowrap class="body_scol"><%=rsRep("view_name")%></td>
                  <td class="body_scol"></td>
                  <td class="body_scol"></td>
                  <td class="body_scol"></td>
                  <td class="body_scol"></td>
               </tr>
               <%
               currView_id = CDbl(rsRep("view_id"))
            End If
            ' -------- END GROUP ------------------------
            %>
            <tr>
               <td class="body_row"></td>
               <td nowrap class="body_row"><a href="used_by.asp?pv_id=<%=rsRep("pv_id")%>&rtag_id=<%=NNrtag_id%>" class="txt_linked"><%=rsRep("pkg_name") &" "& rsRep("pkg_version")%></a></td>
               <td nowrap class="body_row"><%=DisplayDate( rsRep("modified_stamp") )%> by <%=emailField(rsRep("modifier"),rsRep("modifier_email"))%>&nbsp;&nbsp;&nbsp;</td>
               <td nowrap class="body_row"><%=DisplayDate( rsRep("insert_stamp") )%> by <%=emailField(rsRep("insertor"),rsRep("insertor_email"))%>&nbsp;&nbsp;&nbsp;</td>
               <td class="body_row"></td>
            </tr>
            <%  rsRep.MoveNext
         WEnd
         %>
         <tr>
            <td colspan="5" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
         </tr>
      </table>
      <!-- PRINT, SAVE, ETC. ------------>
      <%If parPrint = "" Then%>
         <br>
         <br>
         <span onClick="window.print();" class="pointer txt_linked"><img src="images/btn_print.gif" width="23" height="24" hspace="4" border="0" align="absmiddle">Print this report</span><br>
         <br>
      <%End If%>
      <!-- PRINT, SAVE, ETC. END -------->
      <%
      rsRep.Close
      Set rsRep = nothing
   End If

End Sub
%>
<%
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------
'==================================================================================
' Report Name      :    Deployable Software Modules
' Description      :   Shows packages that are deployed to the customers and shows new packages marked as deployable.
' INPUT            :   Project, Vesion Tree, Release Label, Base View (hard-coded to PRODUCTS)
'==================================================================================
Sub Deployable_Software_Modules ( sSection, nProj_id,  nRtag_id, nBase_view_id )
   Dim Query_String, rsRep
   Const Allow_All = TRUE
   Const Disallow_All = FALSE

   If nProj_id = "" Then nProj_id = -1
   If nRtag_id = "" Then nRtag_id = -1

   If sSection = "TITLE" Then
      Response.write "Deployable Software Modules"
      Exit Sub
   End If


   If sSection = "FORM" Then
      %>
      <table width="100%" border="0" cellpadding="2" cellspacing="1">
         <form action="<%=scriptName%>" method="post" name="repform" onSubmit="MM_validateForm('FRproj_id','Project','R','FRvtree_id','Version Tree','R','FRrtag_id','Release','R');return document.MM_returnValue">
            <tr>
               <td width="1%" nowrap class="form_field"><img src="images/spacer.gif" width="30" height="8"></td>
               <td width="1%" align="right" nowrap class="form_field">Project</td>
               <td width="100%"><%Call Get_Projects( nProj_id, Disallow_All )%></td>
            </tr>
            <tr>
               <td nowrap class="form_field">&nbsp;</td>
               <td align="right" nowrap class="form_field">Release</td>
               <td><%Call Get_Release_Labels ( nProj_id, nRtag_id, Disallow_All )%></td>
            </tr>
         <tr>
            <td nowrap class="form_field">&nbsp;</td>
            <td align="right" nowrap class="form_field">Base View</td>
            <td><select name="noname" class='form_item' disabled>
                  <option>PRODUCTS</option>
               </select></td>
            </tr>
            <tr>
               <td nowrap class="form_field">&nbsp;</td>
               <td align="right" nowrap class="form_field">&nbsp;</td>
               <td><br>
                  <input type="hidden" name="group" value="<%=parGroup%>">
                  <input type="hidden" name="repnum" value="<%=parRepNum%>">
                  <input type="hidden" name="FRbase_view_id" value="<%=enumBASE_VIEW_PRODUCTS%>">
                  <input type="hidden" name="action" value="true">
                  <input name="Submit" type="submit" class="form_btn" value="Submit">
               </td>
            </tr>
         </form>
      </table>
      <%   Exit Sub
   End If


   If sSection = "BODY" Then
      If NOT CBool(Request("action")) Then Exit Sub
      '--- New Deployable Modules ---
      Query_String = ReadFile( rootPath & "queries\rep_new_deployable_packages.sql" )

      OraDatabase.Parameters.Add "RTAG_ID",       nRtag_id,       ORAPARM_INPUT, ORATYPE_NUMBER
      OraDatabase.Parameters.Add "BASE_VIEW_ID",    nBase_view_id,    ORAPARM_INPUT, ORATYPE_NUMBER
      %>
      <table width="100%"  border="0" cellspacing="0" cellpadding="2">
         <tr>
            <td nowrap class="body_colb" colspan="3" background="images/bg_bage.gif">&nbsp;New Deployable Package</td>
         </tr>
         <tr>
            <td background="images/bg_rep_line.gif" colspan="3"><img src="images/spacer.gif" width="1" height="1"></td>
         </tr>
         <tr>
            <td width="1%" class="body_txt">Package Name</td>
            <td width="1%" class="body_txt">Version</td>
            <td width="100%" class="body_txt">Last Modifier</td>
         </tr>
         <tr>
            <td background="images/bg_rep_line.gif" colspan="3"><img src="images/spacer.gif" width="1" height="1"></td>
         </tr>
         <%
         Set rsRep = OraDatabase.DbCreateDynaset( Query_String, 0 )
         OraDatabase.Parameters.Remove "RTAG_ID"
         OraDatabase.Parameters.Remove "BASE_VIEW_ID"
         %>
         <%If rsRep.RecordCount = 0 Then%>
            <tr>
               <td nowrap class="body_row" colspan="3">Found 0 records! </td>
            </tr>
         <%End If%>
         <%While ((NOT rsRep.BOF) AND (NOT rsRep.EOF))%>
            <tr>
               <td nowrap><a href="dependencies.asp?pv_id=<%=rsRep("pv_id")%>&rtag_id=<%=nRtag_id%>" class="txt_linked"><img src="images/i_go2url.gif" width="14" height="14" hspace="3" border="0" align="absmiddle"><%=rsRep("pkg_name")%></a></td>
               <td nowrap class="body_row"><%=rsRep("pkg_version")%></td>
               <td nowrap class="body_row"><%=rsRep("full_name")%></td>
            </tr>
            <%rsRep.MoveNext
         WEnd
         rsRep.Close
         Set rsRep = Nothing%>
         <tr>
            <td background="images/bg_rep_line.gif" colspan="3"><img src="images/spacer.gif" width="1" height="1"></td>
         </tr>
         <%
         ' Go To Release link...
         Query_String = _
         " SELECT proj.PROJ_NAME, rt.RTAG_NAME"&_
         "   FROM PROJECTS proj,"&_
         "         RELEASE_TAGS rt"&_
         "    WHERE rt.PROJ_ID = proj.proj_id"&_
         "      AND rt.rtag_id = :RTAG_ID"
         OraDatabase.Parameters.Add "RTAG_ID",       nRtag_id,       ORAPARM_INPUT, ORATYPE_NUMBER
         Set rsRep = OraDatabase.DbCreateDynaset( Query_String, 0 )
         OraDatabase.Parameters.Remove "RTAG_ID"
         %>
         <tr>
            <td nowrap class="body_row" colspan="3"><a href="dependencies.asp?rtag_id=<%=nRtag_id%>"><img src="images/i_go2url.gif" width="14" height="14" hspace="3" border="0" align="absmiddle"></a>Go to <a href="dependencies.asp?rtag_id=<%=nRtag_id%>" class="txt_linked"><%=rsRep("proj_name")%> &gt; <%=rsRep("rtag_name")%></a> </td>
         </tr>
         <%
         rsRep.Close
         Set rsRep = Nothing%>
      </table>
      <br><br>
      <%
      '--- Current Deployable Modules ---
      Query_String = ReadFile( rootPath & "queries\rep_current_deployable_packages.sql" )
      %>
      <table width="100%"  border="0" cellspacing="0" cellpadding="2">
         <tr>
            <td colspan="4" nowrap class="body_colb" background="images/bg_bage.gif">&nbsp;Current Deployable Packages </td>
         </tr>
         <tr>
            <td colspan="4" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
         </tr>
         <%
         Dim currPv_id
         currPv_id = -1
         OraDatabase.Parameters.Add "RTAG_ID",       nRtag_id,       ORAPARM_INPUT, ORATYPE_NUMBER
         OraDatabase.Parameters.Add "BASE_VIEW_ID",    nBase_view_id,    ORAPARM_INPUT, ORATYPE_NUMBER
         Set rsRep = OraDatabase.DbCreateDynaset( Query_String, 0 )
         OraDatabase.Parameters.Remove "RTAG_ID"
         OraDatabase.Parameters.Remove "BASE_VIEW_ID"

         If rsRep.RecordCount = 0 Then
            With Response
               .write "<tr>"
               .write "<td colspan='4' class='body_row'>Found 0 records</td>"
               .write "</tr>"
            End With
         End If

         While ((NOT rsRep.BOF) AND (NOT rsRep.EOF))
            ' -------- GROUP BY PRODUCT NAME  -----------------
            If CDbl(currPv_id) <> CDbl(rsRep("pv_id")) Then
               %>
               <tr>
                  <td width="1%" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
                  <td width="1%" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
                  <td width="1%" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
                  <td width="100%"><img src="images/spacer.gif" width="1" height="1"></td>
               </tr>
               <tr>
                  <td nowrap><a href="dependencies.asp?pv_id=<%=rsRep("pv_id")%>&rtag_id=<%=nRtag_id%>" class="body_scol"><%=rsRep("pkg_name") &" "& rsRep("pkg_version")%></a></td>
                  <td>&nbsp;</td>
                  <td>&nbsp;</td>
                  <td>&nbsp;</td>
               </tr>
               <%
               currPv_id = CDbl(rsRep("pv_id"))
            End If
            ' -------- END GROUP ------------------------
            %>
            <tr>
               <td>&nbsp;</td>
               <td nowrap><a href="dependencies.asp?pv_id=<%=rsRep("dpv_id")%>&rtag_id=<%=nRtag_id%>" class="txt_linked"><%=rsRep("dpkg_name")%></a></td>
               <td nowrap class="body_row"><%=rsRep("dpkg_version")%></td>
               <td nowrap class="err_alert"><%=rsRep("is_dep_deployable")%></td>
            </tr>
            <%  rsRep.MoveNext
         WEnd
         %>
         <tr>
            <td colspan="4" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
         </tr>
      </table>
      <!-- PRINT, SAVE, ETC. ------------>
      <%If parPrint = "" Then%>
         <br>
         <br>
         <span onClick="window.print();" class="pointer txt_linked"><img src="images/btn_print.gif" width="23" height="24" hspace="4" border="0" align="absmiddle">Print this report</span><br>
         <br>
      <%End If%>
      <!-- PRINT, SAVE, ETC. END -------->
      <%
      rsRep.Close
      Set rsRep = nothing
   End If

End Sub
%>

<%
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------
'==================================================================================
' Report Name      :    Bill Of Materials
' Description      :   List products for a BOM
' INPUT            :
'==================================================================================
Sub Bill_of_Materials ( SSsection, NNproj_id, NNrtag_id, NNbom_id, NNversion )
   Dim Query_String, rsRep, rsQry
   Const Allow_All = TRUE
   Const Disallow_All = FALSE

   If NNproj_id = "" Then NNproj_id = -1
   If NNrtag_id = "" Then NNrtag_id = -1
   If NNversion = "" Then NNversion = -1

   If SSsection = "TITLE" Then
      Response.write "Software Bill Of Materials (SBOM) products"
      Exit Sub
   End If


   If SSsection = "FORM" Then
      %>
      <table width="100%" border="0" cellpadding="2" cellspacing="1">
         <form action="<%=scriptName%>" method="post" name="repform" onSubmit="MM_validateForm('FRproj_id','Project','R','FRvtree_id','Version Tree','R','FRrtag_id','Release','R');return document.MM_returnValue">
            <tr>
               <td width="1%" nowrap class="form_field"><img src="images/spacer.gif" width="30" height="8"></td>
               <td width="1%" align="right" nowrap class="form_field">Project</td>
               <td width="100%"><%Call Get_Projects( NNproj_id, Disallow_All )%></td>
            </tr>
            <tr>
               <td nowrap class="form_field">&nbsp;</td>
               <td align="right" nowrap class="form_field">Release</td>
               <td><%Call Get_Branches ( NNproj_id, NNrtag_id, Disallow_All )%></td>
            </tr>
            <tr>
               <td nowrap class="form_field">&nbsp;</td>
               <td align="right" nowrap class="form_field">SBOM Version</td>
               <td><%Call Get_SBOM_Version ( NNproj_id, NNrtag_id, Disallow_All, NNversion )%></td>
            </tr>
            <tr>
               <td nowrap class="form_field">&nbsp;</td>
               <td align="right" nowrap class="form_field">&nbsp;</td>
               <td><br>
                  <input type="hidden" name="group" value="<%=parGroup%>">
                  <input type="hidden" name="repnum" value="<%=parRepNum%>">
                  <input type="hidden" name="FRrtag_id" value="<%=NNrtag_id%>">
                  <input type="hidden" name="action" value="true">
                  <input name="Submit" type="submit" class="form_btn" value="Submit">
               </td>
            </tr>
         </form>
      </table>
      <p>
      <%   Exit Sub
   End If



   OraDatabase.Parameters.Add "BRANCH_ID", NNrtag_id, ORAPARM_INPUT, ORATYPE_NUMBER
   OraDatabase.Parameters.Add "BOM_VERSION", Request("FRVersion"), ORAPARM_INPUT, ORATYPE_STRING
   Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("rep_SBOM.sql"), cint(0))
   OraDatabase.Parameters.Remove "BRANCH_ID"
   OraDatabase.Parameters.Remove "BOM_VERSION"
   Dim bomId
   bomId = rsQry("bom_id")
   rsQry.close
   Set rsQry = nothing


   If SSsection = "BODY" Then
      If NOT CBool(Request("action")) Then Exit Sub

      Query_String = ReadFile( rootPath & "queries\AllProducts.sql" )

      OraDatabase.Parameters.Add "BOM_ID", bomId, ORAPARM_INPUT, ORATYPE_NUMBER
      %>
      </p>
      <table width="100%" border="0" cellspacing="0" cellpadding="2">
         <tr>
            <td nowrap class="body_colb">Node Name</td>
            <td nowrap class="body_colb">Operating System</td>
            <td nowrap class="body_colb">Product</td>
            <td nowrap class="body_colb">Version</td>
         </tr>
         <tr>
            <td colspan="4" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
         </tr>
         <%
         Dim currNode_id, currOs_id
         currNode_id = -1
         currOs_id = -1
         Set rsRep = OraDatabase.DbCreateDynaset( Query_String, 0 )
         OraDatabase.Parameters.Remove "BOM_ID"

         If rsRep.RecordCount = 0 Then
            With Response
               .write "<tr>"
               .write "<td colspan='5' class='body_row'>Found 0 records</td>"
               .write "</tr>"
            End With
         End If

         While ((NOT rsRep.BOF) AND (NOT rsRep.EOF))
            ' -------- GROUP BY BASE VIEW  -----------------
            If CDbl(currNode_id) <> CDbl(rsRep("node_id")) Then
               %>
               <tr>
                  <td colspan="4" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
               </tr>
               <tr>
                  <td nowrap class="body_scol"><%=rsRep("node_name")%></td>
                  <td nowrap class="body_scol"></td>
                  <td nowrap class="body_scol"></td>
                  <td nowrap class="body_scol"></td>
               </tr>
               <%
               currNode_id = CDbl(rsRep("node_id"))
            End If
            ' -------- END GROUP ------------------------
            If CDbl(currOs_id) <> CDbl(rsRep("os_id")) Then
               %>
               <tr>
                  <td nowrap class="body_row"></td>
                  <td nowrap class="body_scol"><%=rsRep("os_name")%></td>
                  <td nowrap class="body_scol"></td>
                  <td nowrap class="body_scol"></td>
               </tr>
               <%
               currOs_id = CDbl(rsRep("Os_id"))
            End If
            %>
            <tr>
               <td nowrap class="body_row"></td>
               <td nowrap class="body_row"></td>
               <td nowrap class="body_row"><%=PatchIcon ( rsRep("is_patch"), rsRep("is_obsolete") )%><%=rsRep("pkg_name")%></td>
               <td nowrap class="body_row"><%=rsRep("pkg_version")%></td>
            </tr>
            <%  rsRep.MoveNext
         WEnd
         %>
         <tr>
            <td colspan="4" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
         </tr>
      </table>
      <p>&nbsp;     </p>
      <p>        <!-- PRINT, SAVE, ETC. ------------>
      <%If parPrint = "" Then%>
         <br>
         <br>
         <span onClick="window.print();" class="pointer txt_linked"><img src="images/btn_print.gif" width="23" height="24" hspace="4" border="0" align="absmiddle">Print this report</span><br>
         <br>
      <%End If%>
      <!-- PRINT, SAVE, ETC. END -------->
      <%
      rsRep.Close
      Set rsRep = nothing
   End If

End Sub
%>

<%
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------
'==================================================================================
' Report Name      :    Build History
' Description      :   List packages which were build between certain dates.
' INPUT            :
'==================================================================================
Sub Build_History ( SSsection, NNproj_id, NNrtag_id)
   Dim Query_String, rsRep, rsQry
   Const Allow_All = TRUE
   Const Disallow_All = FALSE

   If NNproj_id = "" Then NNproj_id = -1
   If NNrtag_id = "" Then NNrtag_id = -1

   If SSsection = "TITLE" Then
      Response.write "Build History"
      Exit Sub
   End If


   If SSsection = "FORM" Then
      %>
      <script>
        $(document).ready(function(){
            var startDateTextBox = $('#FRinitdate');
            var endDateTextBox = $('#FRduedate');

            $.timepicker.dateRange(
                startDateTextBox,
                endDateTextBox,
                {
                    constrainInput: true,
                    showOn: 'both',
                    buttonImageOnly : true,
                    buttonImage: "images/i_calendar.gif",
                    buttonText: "Select Date",
                    dateFormat : "D dd-M-yy",
                    maxDate : 0,
                    yearRange : "1970:2099",
                    changeYear : true, 
                    changeMonth: true,
                        start: {             // start picker options
                        onClose : function(p1,p2){
                            checkForm();
                                        }
                    },
                        end: {               // end picker options
                        onClose : function(p1,p2){
                            checkForm();
                                        }
                    }
                }
            );

            // Setup the submit button
            checkForm();
        })

        // Update the Submit(Add) button based on the number of chars in the TextArea
        function checkForm()
        {
            var f1 = $("select[name=FRproj_id]").val().length > 0;
            var f2 = $("select[name=FRrtag_id]").val().length > 0;
            var f3 = $("input[name=FRinitdate]").val().length > 0;
            var f4 = $("input[name=FRduedate]").val().length > 0;

           var ok=f1 && f2 && f3 && f4;
           var but = $("#formSubmit");
           but.toggleClass("form_btn_comp", ok);
           but.toggleClass("form_btn_comp_disabled", !ok);
           but.prop("disabled", !ok );
        }
      </script>
      <table width="100%" border="0" cellpadding="2" cellspacing="1">
         <form action="<%=scriptName%>" method="post" name="repform">
            <tr>
               <td width="1%" nowrap class="form_field"><img src="images/spacer.gif" width="30" height="8"></td>
               <td width="1%" align="right" nowrap class="form_field">Project</td>
               <td width="100%"><%Call Get_Projects( NNproj_id, Disallow_All )%></td>
            </tr>
            <tr>
               <td nowrap class="form_field">&nbsp;</td>
               <td align="right" nowrap class="form_field">Release</td>
               <td><%Call Get_Release_Labels ( NNproj_id,  NNrtag_id, Disallow_All )%></td>
            </tr>
            <tr>
               <td colspan="3" nowrap class="form_field">Between
               <input class="form_item" type="text" name="FRinitdate" maxlength="15" size="15" value="<%=Request.Form("FRinitdate")%>" id="FRinitdate">
               And
               <input class="form_item" type="text" name="FRduedate" maxlength="15" size="15" value="<%=Request.Form("FRduedate")%>" id="FRduedate">
            </tr>
            <tr>
               <td nowrap class="form_field">&nbsp;</td>
               <td align="right" nowrap class="form_field">&nbsp;</td>
               <td><br>
                  <input type="hidden" name="group" value="<%=parGroup%>">
                  <input type="hidden" name="repnum" value="<%=parRepNum%>">
                  <input type="hidden" name="action" value="true">
                  <input id="formSubmit" name="Submit" type="submit" class="form_btn" value="Submit">
               </td>
            </tr>
         </form>
      </table>
      <p>
      <%   Exit Sub
   End If


   If SSsection = "BODY" Then
      If NOT CBool(Request("action")) Then Exit Sub
      %>
      </p>
      <table width="20%" border="0" cellspacing="0" cellpadding="2">
         <tr>
            <td width="1%" nowrap class="body_colb">&nbsp;</td>
            <td width="5%" nowrap class="body_colb">Package</td>
            <td width="95%" nowrap class="body_colb">Version</td>
         </tr>
         <tr>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
         </tr>
         <%
         Dim currView_id
         currView_id = -1

         OraDatabase.Parameters.Add "RTAG_ID", NNrtag_id, ORAPARM_INPUT, ORATYPE_NUMBER
         OraDatabase.Parameters.Add "INITDATE", Request.Form("FRinitdate"), ORAPARM_INPUT, ORATYPE_STRING
         OraDatabase.Parameters.Add "DUEDATE", Request.Form("FRduedate"), ORAPARM_INPUT, ORATYPE_STRING

         Set rsRep = OraDatabase.DbCreateDynaset( GetQuery("rep_build_history.sql"), cint(0) )

         OraDatabase.Parameters.Remove "RTAG_ID"
         OraDatabase.Parameters.Remove "INITDATE"
         OraDatabase.Parameters.Remove "DUEDATE"

         If rsRep.RecordCount = 0 Then
            With Response
               .write "<tr>"
               .write "<td colspan='5' class='body_row'>Found 0 records</td>"
               .write "</tr>"
            End With
         End If

         While ((NOT rsRep.BOF) AND (NOT rsRep.EOF))
            ' -------- GROUP BY BASE VIEW  -----------------
            If CDbl(currView_id) <> CDbl(rsRep("view_id")) Then
               %>
               <tr>
                  <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
                  <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
                  <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
               </tr>

               <tr>
                  <td valign="top" nowrap class="body_scol"><%=rsRep("view_name")%></td>
                  <td>&nbsp;</td>
                  <td>&nbsp;</td>
               </tr>

               <%
               currView_id = CDbl(rsRep("view_id"))
            End If
            ' -------- END GROUP ------------------------
            %>
            <tr>
               <td width="1%" nowrap class="body_colb">&nbsp;</td>
               <td nowrap class="body_row"><a href="fixed_issues.asp?pv_id=<%=rsRep("pv_id")%>&rtag_id=<%=NNRtag_id%>" class="body_txt"><strong><%=rsRep("pkg_name")%></strong></a></td>
               <td nowrap class="body_row"><a href="fixed_issues.asp?pv_id=<%=rsRep("pv_id")%>&rtag_id=<%=NNRtag_id%>" class="body_txt"><strong><%=rsRep("pkg_version")%></strong></a></td>
            </tr>
            <%  rsRep.MoveNext
         WEnd
         %>
         <tr>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
         </tr>
      </table>
      <p>&nbsp;     </p>
      <p>        <!-- PRINT, SAVE, ETC. ------------>
      <%If parPrint = "" Then%>
         <br>
         <br>
         <span onClick="window.print();" class="pointer txt_linked"><img src="images/btn_print.gif" width="23" height="24" hspace="4" border="0" align="absmiddle">Print this report</span><br>
         <br>
      <%End If%>
      <!-- PRINT, SAVE, ETC. END -------->
      <%
      rsRep.Close
      Set rsRep = nothing
   End If

End Sub
%>
<%
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------
'==================================================================================
' Report Name      :    Escrow Report
' Description      :   Report to extract Products/Patches for Building A RoadMap
' INPUT            :
'==================================================================================
Sub Escrow_Report (SSsection, NNproj_id, NNrtag_id, NNbom_id, NNversion)
   Dim Query_String, rsRep, rsQry
   Const Allow_All = TRUE
   Const Disallow_All = FALSE

   If NNproj_id = "" Then NNproj_id = -1
   If NNrtag_id = "" Then NNrtag_id = -1
   If NNversion = "" Then NNversion = -1

   If SSsection = "TITLE" Then
      Response.write "Generation of ESCROW REPORT"
      Exit Sub
   End If


   If SSsection = "FORM" Then
      %>
      <table width="100%" border="0" cellpadding="2" cellspacing="1">
         <form action="<%=scriptName%>" method="post" name="repform" onSubmit="MM_validateForm('FRproj_id','Project','R','FRvtree_id','Version Tree','R','FRrtag_id','Release','R');return document.MM_returnValue">
            <tr>
               <td width="1%" nowrap class="form_field"><img src="images/spacer.gif" width="30" height="8"></td>
               <td width="1%" align="right" nowrap class="form_field">Project</td>
               <td width="100%"><%Call Get_Projects( NNproj_id, Disallow_All )%></td>
            </tr>
            <tr>
               <td nowrap class="form_field">&nbsp;</td>
               <td align="right" nowrap class="form_field">Release</td>
               <td><%Call Get_Branches ( NNproj_id, NNrtag_id, Disallow_All )%></td>
            </tr>
            <tr>
               <td nowrap class="form_field">&nbsp;</td>
               <td align="right" nowrap class="form_field">SBOM Version</td>
               <td><%Call Get_SBOM_Version ( NNproj_id, NNrtag_id, Disallow_All, NNversion )%></td>
            </tr>
            <tr>
               <td nowrap class="form_field">&nbsp;</td>
               <td align="right" nowrap class="form_field">&nbsp;</td>
               <td><br>
                  <input type="hidden" name="group" value="<%=parGroup%>">
                  <input type="hidden" name="repnum" value="<%=parRepNum%>">
                  <input type="hidden" name="FRrtag_id" value="<%=NNrtag_id%>">
                  <input type="hidden" name="action" value="true">
                  <input name="Submit" type="submit" class="form_btn" value="Submit">
               </td>
            </tr>
         </form>
      </table>
      <p>
      <%   Exit Sub
   End If

   OraDatabase.Parameters.Add "BRANCH_ID", NNrtag_id, ORAPARM_INPUT, ORATYPE_NUMBER
   OraDatabase.Parameters.Add "BOM_VERSION", Request("FRVersion"), ORAPARM_INPUT, ORATYPE_STRING
   Set rsQry = OraDatabase.DbCreateDynaset( GetQuery("rep_SBOM.sql"), cint(0))
   OraDatabase.Parameters.Remove "BRANCH_ID"
   OraDatabase.Parameters.Remove "BOM_VERSION"

   Dim bomId, ext
   bomId = rsQry("bom_id")
   Set rsQry = OraDatabase.DbCreateDynaset( "select * from release_manager.project_extentions where proj_id="&NNproj_id, cint(0))
   ext = rsQry("ext_name")
   rsQry.close
   Set rsQry = nothing

   If SSsection = "BODY" Then
      If NOT CBool(Request("action")) Then Exit Sub

      '---------------------- Run Before Page ---------------------------
      Call GetReleaseContent ( bomId, objReleaseContent )

      'Call   GetBomDetails   (bomId, outobjDetails)
      'outobjDetails.Item("bom_full_version") = outobjDetails.Item("bom_name")&"   "&   outobjDetails.Item("bom_version") &"."& outobjDetails.Item("bom_lifecycle")


      '------------------------------------------------------------------
      %>
      <html>
      <head>
      <title>Release Manager - Escrow Report</title>
      <meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
      </head>
      <body>
      <div align="center"><b><font col color="#FF0000" size="+3"><%=outobjDetails.Item("bom_full_version")%></font></b></div>
      <div align="center"><b><font col color="#FF0000" size="+3">Products</font></b></div>
      <%
      Set outobjDetails = Nothing

      aReleaseContent = objReleaseContent.Keys
      For Each parPv_id In aReleaseContent
         pvIdList = pvIdList +   parPv_id   +   ","
         Call GetPackageInformation ( parPv_id, objPackageDetails )
         Response.Flush
         %>
         <a name="<%=objPackageDetails.Item("pkg_name")%>"></a>
         <table width="100%" border="0" cellspacing="0" cellpadding="0">
            <tr>
               <td class="body_colb"><h3><%=objPackageDetails.Item("pkg_name")%></h3></td>
            </tr>
         </table>
         <table width="100%" border="0" cellspacing="0" cellpadding="0">
            <tr>
               <td nowrap bgcolor="#FFFFFF" class="sublbox_txt" valign="top"><strong>Version:</strong></td>
               <td bgcolor="#FFFFFF" class="sublbox_txt"><%=objPackageDetails.Item("pkg_version")%></td>
            </tr>
            <tr>
               <td nowrap bgcolor="#FFFFFF" class="sublbox_txt" valign="top"><strong>Source Path:</strong> </td>
               <td bgcolor="#FFFFFF" class="sublbox_txt"><%=objPackageDetails.Item("src_path")%></td>
            </tr>
            <tr>
               <td nowrap bgcolor="#FFFFFF" class="sublbox_txt" valign="top"><strong>Source Label:</strong></td>
               <td bgcolor="#FFFFFF" class="sublbox_txt"><%=objPackageDetails.Item("pkg_label")%></td>
            </tr>
            <tr>
               <td width="1%" nowrap bgcolor="#FFFFFF" class="sublbox_txt" valign="top"><strong>Short Description:</strong></td>
               <td witdh="100%" bgcolor="#FFFFFF" class="sublbox_txt"><%=NewLine_To_BR ( To_HTML( objPackageDetails.Item("pv_description") ) )%></td>
            </tr>
            <tr>
               <td nowrap bgcolor="#FFFFFF" class="sublbox_txt" valign="top"><strong>Package Overview:</strong> </td>
               <td bgcolor="#FFFFFF" class="sublbox_txt"><%=NewLine_To_BR ( To_HTML( objPackageDetails.Item("pv_overview") ) )%></td>
            </tr>
            <tr>
               <td nowrap bgcolor="#FFFFFF" class="sublbox_txt" valign="top"><strong>General Sublicense Material:</strong> </td>
               <td bgcolor="#FFFFFF" class="sublbox_txt"><%If objPackageDetails.Item("v_ext") = ext Then%>Yes<%Else%>No<%End If%></td>
            </tr>
            <tr>
               <td nowrap bgcolor="#FFFFFF" class="sublbox_txt" valign="top"><strong>Build Environment:</strong> </td>
               <td bgcolor="#FFFFFF" class="sublbox_txt"><%If objPackageDetails.Item("is_build_env_required") = enumDB_NO Then%>Not Required.<%End If%>
                  <%
                  '--- Get Build Env Details
                  Set rsQry = OraDatabase.DbCreateDynaset( SQL_Build_Std ( parPv_id ), cint(0))
                  If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then
                     BldStd = rsQry("bs_name")
                     rsQry.Close

                     Set rsQry = OraDatabase.DbCreateDynaset( SQL_Build_Env ( parPv_id ), cint(0))
                     %>
                     <ul>
                     <%
                     While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
                     %>
                        <li><%=BldStd%>, <%=rsQry("bm_name")%></li>
                        <%rsQry.MoveNext
                     WEnd
                     %>
                     </ul>
                  <%End If%>
               </td>
            </tr>
            <tr>
               <td nowrap bgcolor="#FFFFFF" class="sublbox_txt" valign="top"><strong>Build Dependencies:</strong> </td>
               <td bgcolor="#FFFFFF" class="sublbox_txt">
                  <%
                  '--- Get Build Dependencies Details

                  Set rsQry = OraDatabase.DbCreateDynaset( SQL_Build_Dependencies ( parPv_id ), cint(0))
                  %>
                  <table width="100%"  cellspacing="0" cellpadding="2" border="1">
                     <tr>
                        <td nowrap class="sublbox_txt" bgcolor="#FFFFFF" width="1%"><strong>Software Component</strong></td>
                        <td nowrap class="sublbox_txt" bgcolor="#FFFFFF" width="100%"><strong>Version</strong></td>
                     </tr>
                     <%If rsQry.RecordCount < 1 Then%>
                        <tr>
                           <td nowrap class="sublbox_txt">No Dependencies</td>
                           <td nowrap class="sublbox_txt"></td>
                        </tr>
                     <%End If%>
                     <%
                     While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
                        %>
                        <tr>
                           <td nowrap class="sublbox_txt"><a href="#<%=rsQry("pkg_name")%>"><%=rsQry("pkg_name")%></a></td>
                           <td nowrap class="sublbox_txt"><%=rsQry("pkg_version")%></td>
                        </tr>
                        <%rsQry.MoveNext
                     WEnd
                     %>
                  </table>
               </td>
            </tr>
         </table>
         <br><br>
         <%
      'Exit For
      Next

      pvIdList = Mid(pvIdList, 1, Len(pvIdList) - 1)
      Set   rsTemp   =   OraDatabase.DbCreateDynaset( SQL_Modules ( pvIdList ), cint(0))

      %>
      <div align="center"><b><font col color="#FF0000" size="+3">Modules</font></b></div>
      <%
      While (NOT rsTemp.BOF) AND (NOT rsTemp.EOF)
         Response.Flush

         dpv_id = rsTemp("dpv_id")
         Call GetPackageInformation ( dpv_id, objPackageDetails )
         %>
         <a name="<%=objPackageDetails.Item("pkg_name")%>"></a>
         <table width="100%" border="0" cellspacing="0" cellpadding="0">
            <tr>
               <td class="body_colb"><h3><%=objPackageDetails.Item("pkg_name")%></h3></td>
            </tr>
         </table>
         <table width="100%" border="0" cellspacing="0" cellpadding="0">
            <tr>
               <td nowrap bgcolor="#FFFFFF" class="sublbox_txt" valign="top"><strong>Version:</strong></td>
               <td bgcolor="#FFFFFF" class="sublbox_txt"><%=objPackageDetails.Item("pkg_version")%></td>
            </tr>
            <tr>
               <td nowrap bgcolor="#FFFFFF" class="sublbox_txt" valign="top"><strong>Source Path:</strong> </td>
               <td bgcolor="#FFFFFF" class="sublbox_txt"><%=objPackageDetails.Item("src_path")%></td>
            </tr>
            <tr>
               <td nowrap bgcolor="#FFFFFF" class="sublbox_txt" valign="top"><strong>Source Label:</strong></td>
               <td bgcolor="#FFFFFF" class="sublbox_txt"><%=objPackageDetails.Item("pkg_label")%></td>
            </tr>
            <tr>
               <td width="1%" nowrap bgcolor="#FFFFFF" class="sublbox_txt" valign="top"><strong>Short Description:</strong></td>
               <td witdh="100%" bgcolor="#FFFFFF" class="sublbox_txt"><%=NewLine_To_BR ( To_HTML( objPackageDetails.Item("pv_description") ) )%></td>
            </tr>
            <tr>
               <td nowrap bgcolor="#FFFFFF" class="sublbox_txt" valign="top"><strong>Package Overview:</strong> </td>
               <td bgcolor="#FFFFFF" class="sublbox_txt"><%=NewLine_To_BR ( To_HTML( objPackageDetails.Item("pv_overview") ) )%></td>
            </tr>
            <tr>
               <td nowrap bgcolor="#FFFFFF" class="sublbox_txt" valign="top"><strong>General Sublicense Material:</strong> </td>
               <td bgcolor="#FFFFFF" class="sublbox_txt"><%If objPackageDetails.Item("v_ext") = parExt Then%>Yes<%Else%>No<%End If%></td>
            </tr>
            <tr>
               <td nowrap bgcolor="#FFFFFF" class="sublbox_txt" valign="top"><strong>Build Environment:</strong> </td>
               <td bgcolor="#FFFFFF" class="sublbox_txt"><%If objPackageDetails.Item("is_build_env_required") = enumDB_NO Then%>Not Required.<%End If%>
                  <%
                  '--- Get Build Env Details
                  Set rsQry = OraDatabase.DbCreateDynaset( SQL_Build_Std ( dpv_id ), cint(0))
                  If ((NOT rsQry.BOF) AND (NOT rsQry.EOF)) Then
                     BldStd = rsQry("bs_name")
                     rsQry.Close

                     Set rsQry = OraDatabase.DbCreateDynaset( SQL_Build_Env ( dpv_id ), cint(0))
                     %>
                     <ul>
                        <%
                        While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
                           %>
                           <li><%=BldStd%>, <%=rsQry("bm_name")%></li>
                           <%rsQry.MoveNext
                        WEnd
                        %>
                     </ul>
                  <%End If%>
               </td>
            </tr>
            <tr>
               <td nowrap bgcolor="#FFFFFF" class="sublbox_txt" valign="top"><strong>Build Dependencies:</strong> </td>
               <td bgcolor="#FFFFFF" class="sublbox_txt">
                  <%
                  '--- Get Build Dependencies Details

                  Set rsQry = OraDatabase.DbCreateDynaset( SQL_Build_Dependencies ( dpv_id ), cint(0))
                  %>
                  <table width="100%"  cellspacing="0" cellpadding="2" border="1">
                     <tr>
                        <td nowrap class="sublbox_txt" bgcolor="#FFFFFF" width="1%"><strong>Software Component</strong></td>
                        <td nowrap class="sublbox_txt" bgcolor="#FFFFFF" width="100%"><strong>Version</strong></td>
                     </tr>
                     <%If rsQry.RecordCount < 1 Then%>
                        <tr>
                           <td nowrap class="sublbox_txt">No Dependencies</td>
                           <td nowrap class="sublbox_txt"></td>
                        </tr>
                     <%End If%>
                     <%
                     While (NOT rsQry.BOF) AND (NOT rsQry.EOF)
                        %>
                        <tr>
                           <td nowrap class="sublbox_txt"><a href="#<%=rsQry("pkg_name")%>"><%=rsQry("pkg_name")%></a></td>
                           <td nowrap class="sublbox_txt"><%=rsQry("pkg_version")%></td>
                        </tr>
                        <%rsQry.MoveNext
                     WEnd
                     %>
                  </table>
               </td>
            </tr>
         </table>
         <br><br>

         <%
         rsTemp.MoveNext
      WEnd

      rsTemp.Close()
      Set rsTemp = Nothing
   End If
End Sub
%>

<%
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------
'==================================================================================
' Report Name      :    AutoBuildable_Report
' Description      :   List packages which were build between certain dates.
' INPUT            :
'==================================================================================
Sub AutoBuildable_Report ( SSsection, NNproj_id, NNrtag_id)
   Dim Query_String, rsRep, rsQry
   Const Allow_All = TRUE
   Const Disallow_All = FALSE

   If NNproj_id = "" Then NNproj_id = -1
   If NNrtag_id = "" Then NNrtag_id = -1

   If SSsection = "TITLE" Then
      Response.write "Release AutoBuildable Status"
      Exit Sub
   End If


   If SSsection = "FORM" Then
      %>
      <table width="100%" border="0" cellpadding="2" cellspacing="1">
         <form action="<%=scriptName%>" method="post" name="repform" onSubmit="MM_validateForm('FRproj_id','Project','R','FRvtree_id','Version Tree','R','FRrtag_id','Release','R');return document.MM_returnValue">
            <tr>
               <td width="1%" nowrap class="form_field"><img src="images/spacer.gif" width="30" height="8"></td>
               <td width="1%" align="right" nowrap class="form_field">Project</td>
               <td width="100%"><%Call Get_Projects( NNproj_id, Disallow_All )%></td>
            </tr>
            <tr>
               <td nowrap class="form_field">&nbsp;</td>
               <td align="right" nowrap class="form_field">Release</td>
               <td><%Call Get_Release_Labels ( NNproj_id,  NNrtag_id, Disallow_All )%></td>
            </tr>
            <tr>
               <td nowrap class="form_field">&nbsp;</td>
               <td align="right" nowrap class="form_field">&nbsp;</td>
               <td><br>
                  <input type="hidden" name="group" value="<%=parGroup%>">
                  <input type="hidden" name="repnum" value="<%=parRepNum%>">
                  <input type="hidden" name="action" value="true">
                  <input name="Submit" type="submit" class="form_btn" value="Submit">
               </td>
            </tr>
      </table>
      <p>
      <%   Exit Sub
   End If


   If SSsection = "BODY" Then
      If NOT CBool(Request("action")) Then Exit Sub
      If Request("btn") = "Assign" Then
         OraDatabase.Parameters.Add "RTAG_ID",       NNrtag_id,   ORAPARM_INPUT, ORATYPE_NUMBER
         OraDatabase.Parameters.Add "PV_ID_LIST",   Request("prod_id_list"),   ORAPARM_INPUT, ORATYPE_VARCHAR2

         objEH.TryORA ( OraSession )
         On Error Resume Next

         OraDatabase.ExecuteSQL "BEGIN  SET_TO_AUTOBUILDABLE( :RTAG_ID, :PV_ID_LIST );  END;"

         objEH.CatchORA ( OraSession )

         OraDatabase.Parameters.Remove "PV_ID_LIST"
         OraDatabase.Parameters.Remove "RTAG_ID"

      End   If
      %>
      </p>
      <table width="20%" border="0" cellspacing="0" cellpadding="2">
         <tr>
            <td width="1%" nowrap class="body_colb">Base View</td>
            <td width="5%" nowrap class="body_colb">Package</td>
            <td width="95%" nowrap class="body_colb">Version</td>
            <td width="95%" nowrap class="body_colb">Autobuildable</td>
         </tr>
         <tr>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
         </tr>
         <%
         Dim currView_id
         currView_id = -1

         OraDatabase.Parameters.Add "RTAG_ID", NNrtag_id, ORAPARM_INPUT, ORATYPE_NUMBER

         Set rsRep = OraDatabase.DbCreateDynaset( "SELECT * FROM RELEASE_CONTENT rc, VIEWS vw, PACKAGES pkg, PACKAGE_VERSIONS pv "&_
            " WHERE pv.pv_id = rc.pv_id" &_
            "   and rc.base_view_id = vw.view_id" &_
            "   and pkg.pkg_id = pv.pkg_id" &_
            "   and rc.RTAG_ID = :RTAG_ID" &_
            " order by vw.view_name, pkg.pkg_name", cint(0) )
         OraDatabase.Parameters.Remove "RTAG_ID"

         If rsRep.RecordCount = 0 Then
            With Response
               .write "<tr>"
               .write "<td colspan='5' class='body_row'>Found 0 records</td>"
               .write "</tr>"
            End With
         End If

         While ((NOT rsRep.BOF) AND (NOT rsRep.EOF))
            ' -------- GROUP BY BASE VIEW  -----------------
            If CDbl(currView_id) <> CDbl(rsRep("view_id")) Then
               %>
               <tr>
                  <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
                  <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
                  <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
                  <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
               </tr>

               <tr>
                  <td valign="top" nowrap class="body_scol"><%=rsRep("view_name")%></td>
                  <td>&nbsp;</td>
                  <td>&nbsp;</td>
               </tr>

               <%
               currView_id = CDbl(rsRep("view_id"))
            End If
            ' -------- END GROUP ------------------------
            %>
            <%If rsRep("is_autobuildable") = "Y" Then%>
               <tr>
                  <td width="1%" nowrap class="body_colb">&nbsp;</td>
                  <td nowrap class="body_row"><a href="fixed_issues.asp?pv_id=<%=rsRep("pv_id")%>&rtag_id=<%=NNRtag_id%>" class="body_txt"><strong><%=rsRep("pkg_name")%></strong></a></td>
                  <td nowrap class="body_row"><a href="fixed_issues.asp?pv_id=<%=rsRep("pv_id")%>&rtag_id=<%=NNRtag_id%>" class="body_txt"><strong><%=rsRep("pkg_version")%></strong></a></td>
                  <%If canShowControlInProject( "SetToReproducible" ) Then%>
                     <td><input type="checkbox" name="prod_id_list" value="<%=rsRep("pv_id")%>" checked></td>
                  <%Else%>
                     <td><input type="checkbox" name="prod_id_list" value="<%=rsRep("pv_id")%>" checked disabled></td>
                  <%End If%>
               </tr>
            <%Else%>
               <tr>
                  <td width="1%" nowrap class="body_colb">&nbsp;</td>
                  <td nowrap class="body_row"><a href="fixed_issues.asp?pv_id=<%=rsRep("pv_id")%>&rtag_id=<%=NNRtag_id%>" class="body_txtr"><strong><%=rsRep("pkg_name")%></strong></a></td>
                  <td nowrap class="body_row"><a href="fixed_issues.asp?pv_id=<%=rsRep("pv_id")%>&rtag_id=<%=NNRtag_id%>" class="body_txtr"><strong><%=rsRep("pkg_version")%></strong></a></td>
                  <%If canShowControlInProject( "SetToReproducible" ) Then%>
                     <td><input type="checkbox" name="prod_id_list" value="<%=rsRep("pv_id")%>"></td>
                  <%Else%>
                     <td><input type="checkbox" name="prod_id_list" value="<%=rsRep("pv_id")%>" disabled></td>
                  <%End If%>
               </tr>
            <%End If%>


            <%  rsRep.MoveNext
         WEnd
         %>

         <tr>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <%If canShowControlInProject( "SetToReproducible" ) Then%>
               <td><input name="btn" type="submit" class="form_btn" value="Assign" onClick="clickedButton=true;MM_validateForm('FRduedate','Due Date','R','FRmsg','Message details','R');return document.MM_returnValue"></td>
            <%End If%>
         </tr>
      </table>
      </form>
      <p>&nbsp;     </p>
      <p>        <!-- PRINT, SAVE, ETC. ------------>
      <%If parPrint = "" Then%>
         <br>
         <br>
         <span onClick="window.print();" class="pointer txt_linked"><img src="images/btn_print.gif" width="23" height="24" hspace="4" border="0" align="absmiddle">Print this report</span><br>
         <br>

      <%End If%>
      <!-- PRINT, SAVE, ETC. END -------->
      <%
      rsRep.Close()
      Set rsRep = nothing
   End If

End Sub
%>

<%
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------
'==================================================================================
' Report Name      :    Unit Tests per Package
' Description      :   List unit tests per package showing the unit test completeness
' INPUT            :   Project, Vesion Tree, Release Label, Base View, Level of Completeness, Show/Hide Dependencies, PV_ID
'==================================================================================
Sub Unit_Tests_Per_Package ( sSection, nProj_id,  nRtag_id, nBase_view_id, nLevel_of_complete, nShow_dependencies, nPv_id )
   Dim Query_String, rsRep
   Const Allow_All = TRUE
   Const Disallow_All = FALSE

   If nProj_id = "" Then nProj_id = -1
   If nRtag_id = "" Then nRtag_id = -1
   If nShow_dependencies = "" Then nShow_dependencies = 0
   If nPv_id = "" Then nPv_id = -1

   If sSection = "TITLE" Then
      Response.write "Unit Tests per Package"
      Exit Sub
   End If


   If sSection = "FORM" Then
      %>

      <table width="100%" border="0" cellpadding="2" cellspacing="1">
         <form action="<%=scriptName%>" method="post" name="repform" onSubmit="MM_validateForm('FRproj_id','Project','R','FRvtree_id','Version Tree','R','FRrtag_id','Release','R');return document.MM_returnValue">
            <tr>
               <td width="1%" nowrap class="form_field"><img src="images/spacer.gif" width="30" height="8"></td>
               <td width="1%" align="right" nowrap class="form_field">Project</td>
               <td width="100%"><%Call Get_Projects( nProj_id, Disallow_All )%></td>
            </tr>
            <tr>
               <td nowrap class="form_field">&nbsp;</td>
               <td align="right" nowrap class="form_field">Release</td>
               <td><%Call Get_Release_Labels ( nProj_id,  nRtag_id, Disallow_All )%></td>
            </tr>
            <tr>
               <td nowrap class="form_field">&nbsp;</td>
               <td align="right" nowrap class="form_field">Base View</td>
               <td><%Call Get_Base_Views ( nRtag_id, nBase_view_id, Allow_All )%></td>
            </tr>
            <tr>
               <td nowrap class="form_field">&nbsp;</td>
               <td align="right" nowrap class="form_field">Show Dependencie's Unit Tests</td>
               <td><input type="checkbox" name="FRshow_deps" value="1" <%If nShow_dependencies <> 0 Then%>checked<%End If%>></td>
            </tr>
            <tr>
               <td nowrap class="form_field">&nbsp;</td>
               <td align="right" nowrap class="form_field">&nbsp;</td>
               <td><br>
                  <input type="hidden" name="group" value="<%=parGroup%>">
                  <input type="hidden" name="repnum" value="<%=parRepNum%>">
                  <input type="hidden" name="FRtest_complete" value="0">
                  <input type="hidden" name="action" value="true">
                  <input name="Submit" type="submit" class="form_btn" value="Submit">
               </td>
            </tr>
         </form>
      </table>
      <%   Exit Sub
   End If


   If sSection = "BODY" Then
      If NOT CBool(Request("action")) Then Exit Sub

      Query_String = ReadFile( rootPath & "queries\rep_unit_tests_per_package.sql" )

      OraDatabase.Parameters.Add "RTAG_ID",       nRtag_id,       ORAPARM_INPUT, ORATYPE_NUMBER
      OraDatabase.Parameters.Add "BASE_VIEW",    nBase_view_id,    ORAPARM_INPUT, ORATYPE_NUMBER
      OraDatabase.Parameters.Add "COMPLETENESS",    nLevel_of_complete, ORAPARM_INPUT, ORATYPE_NUMBER
      OraDatabase.Parameters.Add "SHOW_DEPS",    nShow_dependencies, ORAPARM_INPUT, ORATYPE_NUMBER
      OraDatabase.Parameters.Add "PV_ID",       nPv_id,       ORAPARM_INPUT, ORATYPE_NUMBER
      %>
      <table width="100%" border="0" cellspacing="0" cellpadding="1">
         <tr>
            <td width="1%" nowrap class="body_colb">&nbsp;</td>
            <td width="1%" nowrap class="body_colb">&nbsp;</td>
            <td width="1%" nowrap class="body_colb">Package Name&nbsp;&nbsp;&nbsp;</td>
            <td width="1%" nowrap class="body_colb">Version&nbsp;&nbsp;&nbsp;</td>
            <td width="1%" nowrap class="body_colb">Test Name&nbsp;&nbsp;&nbsp;</td>
            <td width="100%" nowrap class="body_colb">Test Summary&nbsp; </td>
            <td width="1%" nowrap class="body_colb"></td>
            <td width="1%" nowrap class="body_colb">Stamp</td>
            <td width="1%" nowrap class="body_colb">Test Completed &nbsp;&nbsp;&nbsp;</td>
         </tr>
         <tr>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
         </tr>
         <%
         Dim currBase_view_id, currPv_id, currDpv_id, showTests
         currBase_view_id = -1
         currPv_id = -1
         currDpv_id = -1

         Set rsRep = OraDatabase.DbCreateDynaset( Query_String, 0 )

         OraDatabase.Parameters.Remove "RTAG_ID"
         OraDatabase.Parameters.Remove "BASE_VIEW"
         OraDatabase.Parameters.Remove "COMPLETENESS"
         OraDatabase.Parameters.Remove "SHOW_DEPS"
         OraDatabase.Parameters.Remove "PV_ID"

         If rsRep.RecordCount = 0 Then
            With Response
               .write "<tr>"
               .write "<td colspan='9' class='body_row'>Found 0 records</td>"
               .write "</tr>"
            End With
         End If

         While ((NOT rsRep.BOF) AND (NOT rsRep.EOF))
            If nShow_dependencies <> 0 Then
               ' show dependency is ON
               If rsRep("dpkg_name") = "------" Then
                  showTests = FALSE
               Else
                  showTests = TRUE
               End If
            Else
               showTests = TRUE
            End If

            ' -------- GROUP BY BASE VIEW  -----------------
            If CDbl(currBase_view_id) <> CDbl(rsRep("base_view_id")) Then
               %>
               <tr>
                  <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
                  <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
                  <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
                  <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
                  <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
                  <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
                  <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
                  <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
                  <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
               </tr>
               <tr>
                  <td valign="top" nowrap class="body_scol"><%=rsRep("view_name")%></td>
                  <td>&nbsp;</td>
                  <td>&nbsp;</td>
                  <td>&nbsp;</td>
                  <td>&nbsp;</td>
                  <td>&nbsp;</td>
                  <td>&nbsp;</td>
                  <td>&nbsp;</td>
                  <td>&nbsp;</td>
               </tr>
               <%
               currBase_view_id = CDbl(rsRep("base_view_id"))
            End If
            ' -------- END GROUP BASE VIEW ------------------------
            %>
            <%
            ' -------- GROUP BY PACKAGE  -----------------
            If CDbl(currPv_id) <> CDbl(rsRep("pv_id")) Then
               %>
               <tr>
                  <td><img src="images/spacer.gif" width="1" height="1"></td>
                  <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
                  <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
                  <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
                  <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
                  <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
                  <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
                  <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
                  <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
                  <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
               </tr>
               <tr>
                  <td>&nbsp;</td>
                  <td><%If rsRep("dlocked") = "Y" Then%><img src="images/i_locked.gif" width="7" height="10" hspace="2" title="Officially released."><%Else%><img src="images/spacer.gif" width="7" height="10" hspace="2"><%End If%></td>
                  <td nowrap><a href="fixed_issues.asp?pv_id=<%=rsRep("pv_id")%>&rtag_id=<%=nRtag_id%>" class="body_txt"><strong><%=rsRep("pkg_name")%></strong></a></td>
                  <td nowrap><a href="fixed_issues.asp?pv_id=<%=rsRep("pv_id")%>&rtag_id=<%=nRtag_id%>" class="body_txt"><strong><%=rsRep("pkg_version")%></strong></a></td>
                  <td>&nbsp;</td>
                  <td>&nbsp;</td>
                  <td>&nbsp;</td>
                  <td>&nbsp;</td>
                  <td align="center" valign="top" nowrap><%If nShow_dependencies = 0 Then%><%If IsNull( rsRep("not_done") ) Then%><img src="images/i_boxtick_on.gif" width="13" height="13"><%Else%><img src="images/i_boxtick_off.gif" width="13" height="13"><%End If%><%End If%></td>
               </tr>
               <%
               currPv_id = CDbl(rsRep("pv_id"))
            End If
            ' -------- END GROUP PACKAGE ------------------------
            %>
            <%
            ' -------- GROUP BY DEPENDENCY  -----------------
            If Not IsNull(rsRep("dpv_id")) Then
               If CDbl(currDpv_id) <> CDbl(rsRep("dpv_id")) Then
                  %>
                  <tr>
                     <td>&nbsp;</td>
                     <td>&nbsp;</td>
                     <td>&nbsp;</td>
                     <td>&nbsp;</td>
                     <td valign="top" nowrap><a href="fixed_issues.asp?pv_id=<%=rsRep("dpv_id")%>&rtag_id=<%=nRtag_id%>" class="body_txt"><strong><%=rsRep("dpkg_name")%></strong></a></td>
                     <td valign="top" nowrap><a href="fixed_issues.asp?pv_id=<%=rsRep("dpv_id")%>&rtag_id=<%=nRtag_id%>" class="body_txt"><strong><%=rsRep("dpkg_version")%></strong></a></td>
                     <td>&nbsp;</td>
                     <td>&nbsp;</td>
                     <td align="center" valign="top" nowrap><%If IsNull( rsRep("not_done") ) Then%><img src="images/i_boxtick_on.gif" width="13" height="13"><%Else%><img src="images/i_boxtick_off.gif" width="13" height="13"><%End If%></td>
                  </tr>
                  <%
                  currDpv_id = CDbl(rsRep("dpv_id"))
               End If
            End If
            ' -------- END GROUP DEPENDENCY ------------------------
            %>
            <%If Not IsNull( rsRep("completed_by") ) AND showTests Then%>
               <tr>
                  <td>&nbsp;</td>
                  <td>&nbsp;</td>
                  <td>&nbsp;</td>
                  <td>&nbsp;</td>
                  <td bgcolor="#F5F5F5" valign="top" nowrap class="body_row"><img src="images/i_test.gif" width="16" height="16" hspace="1" align="absmiddle"><%=rsRep("test_name")%></td>
                  <td bgcolor="#F5F5F5" valign="top" class="body_row"><%=NewLine_To_BR ( To_HTML ( rsRep("test_summary") ) )%></td>
                  <td bgcolor="#F5F5F5" align="center" valign="top"></td>
                  <td bgcolor="#F5F5F5" valign="top" nowrap class="body_txt"><%=DisplayDate ( rsRep("completion_date") )%>&nbsp;<%=emailField(rsRep("completed_by"),rsRep("user_email"))%></td>
                  <td>&nbsp;</td>
               </tr>
               <tr>
                  <td><img src="images/spacer.gif" width="1" height="1"></td>
                  <td><img src="images/spacer.gif" width="1" height="1"></td>
                  <td><img src="images/spacer.gif" width="1" height="1"></td>
                  <td><img src="images/spacer.gif" width="1" height="1"></td>
                  <td><img src="images/spacer.gif" width="1" height="1"></td>
                  <td><img src="images/spacer.gif" width="1" height="1"></td>
                  <td><img src="images/spacer.gif" width="1" height="1"></td>
                  <td><img src="images/spacer.gif" width="1" height="1"></td>
                  <td><img src="images/spacer.gif" width="1" height="1"></td>
               </tr>
            <%End If%>
            <%  rsRep.MoveNext
         WEnd
         %>
         <tr>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
         </tr>
      </table>

      <!-- PRINT, SAVE, ETC. ------------>
      <%If parPrint = "" Then%>
         <br>
         <br>
         <span onClick="window.print();" class="pointer txt_linked"><img src="images/btn_print.gif" width="23" height="24" hspace="4" border="0" align="absmiddle">Print this report</span><br>
         <br>
      <%End If%>
      <!-- PRINT, SAVE, ETC. END -------->
      <%
      rsRep.Close
      Set rsRep = nothing
   End If

End Sub
%>


<%
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Function  Get_CQ_Issues ( SSsql, OOrsCQ )
    On Error Resume Next
    Set OOrsCQ = OraDatabase.DbCreateDynaset( SSsql, cint(0))
    Get_CQ_Issues = Err.Number
End Function
'----------------------------------------------------------------------------------------------------------------------------------------
Function GetRMIssueState (NNpv_id, NNissId)
   Dim rsTemp, Query_String
   Dim s
   Query_String = _
   " SELECT (CASE WHEN iss_state = 0 THEN ' (O)' ELSE ' (F)' END) AS issState "&_
   "   FROM cq_issues cq "&_
   "  WHERE cq.pv_id = "& NNpv_id &_
   "    AND cq.iss_id = "& NNissId

   Set rsTemp = OraDatabase.DbCreateDynaset( Query_String, cint(0))

   s = ""
   If ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF)) Then
      s = (rsTemp.Fields("issState"))
   End If

   rsTemp.Close
   Set rsTemp = nothing

   GetRMIssueState = s
End Function
'----------------------------------------------------------------------------------------------------------------------------------------
' Function returns the number of imported clearquest issues
' and builds a string suitable for querying the clearquest issues database
Function Get_Package_Issues ( NNpv_id, SSsql, DDfixedIss, DDnotesIssDict, nIssState )
   Dim rsTemp, sqlstr, DEVIiss, retVal

   sqlstr = "SELECT iss_db, iss_id, iss_state, notes FROM CQ_ISSUES WHERE pv_id="& NNpv_id &"  AND iss_state IN (" & nIssState & ")"

   Set rsTemp = OraDatabase.DbCreateDynaset( sqlstr, cint(0))
   retVal = rsTemp.RecordCount

   DEVIiss  = "-1"

   While ((NOT rsTemp.BOF) AND (NOT rsTemp.EOF))
      If CInt(rsTemp("iss_db")) = CInt(enumCLEARQUEST_DEVI_ID) Then
         DEVIiss = DEVIiss &","& rsTemp("iss_id")
      End If

      rsTemp.MoveNext
   WEnd

   ' Construct SQL statement for CQ database
   SSsql = ReadFile( rootPath & "queries\cq_issues_rep1.sql" )
   SSsql = Replace( SSsql, "/*enumCLEARQUEST_DEVI_ID*/", enumCLEARQUEST_DEVI_ID)
   SSsql = Replace( SSsql, "/*DEVIiss*/", DEVIiss)

   rsTemp.Close()
   Set rsTemp = nothing

   Get_Package_Issues = retVal

End Function
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Sub sdAdd( dict, key, value )
   if IsNull(value) Then
      dict.Add CStr(key),""
   else
      dict.Add CStr(key),CStr(value)
   End If
End Sub

Function sdItem( dict, i )
   Dim a
   Dim s
   a = dict.Items
   s = a(i)
   sdItem=s
End Function

Function sdKey( dict, i )
   Dim a
   a = dict.Keys
   sdKey = a(i)
End Function
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Function ReleaseDeviStatus_ReportCheckbox( width, NameAndValue, Label, bCheck )
   Dim s
   If (IsNull(Request(NameAndValue)) OR (Request(NameAndValue) = "")) AND (not bCheck) Then
      s = "<td width=""" & width & """><INPUT Type=Checkbox  name=""" & NameAndValue & """ value=""" & NameAndValue & """>" & Label & "</td>"
   Else
      s = "<td width=""" & width & """><INPUT Type=Checkbox  CHECKED name=""" & NameAndValue & """ value=""" & NameAndValue & """>" & Label & "</td>"
   End If
   ReleaseDeviStatus_ReportCheckbox = s
End Function

'-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Function GetCQIssuesListFilter
   Dim s
   s = ""
   If not (IsNull(Request("CB_FILTER_FIXED")) OR (Request("CB_FILTER_FIXED") = "")) Then
      s = CStr(enumISSUES_STATE_FIXED)
      If not (IsNull(Request("CB_FILTER_OUTSTANDING")) OR (Request("CB_FILTER_OUTSTANDING") = "")) Then
         s = s & "," & CStr(enumISSUES_STATE_IMPORTED)
      End If
   Else
      If not (IsNull(Request("CB_FILTER_OUTSTANDING")) OR (Request("CB_FILTER_OUTSTANDING") = "")) Then
         s = CStr(enumISSUES_STATE_IMPORTED)
      End If
   End If
   GetCQIssuesListFilter = s
End Function
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------
Function GetPkgNameAndVersion(SSPvId, SSPkgNameAndVer)
   Dim SSpkgID, SSpkgName, SSpkgVersion, SSsrc_path, SSpkgDesc, BBdlocked
   SSpkgID      = ""
   SSpkgName    = ""
   SSpkgVersion = ""
   SSsrc_path   = ""
   SSpkgDesc    = ""
   BBdlocked    = 0
   Call Get_Pkg_Short_Info( SSPvId, SSpkgID, SSpkgName, SSpkgVersion, SSsrc_path, SSpkgDesc, BBdlocked )
   If not ((SSpkgName = "") and (SSpkgVersion = "")) Then
      SSPkgNameAndVer = SSpkgName & " " & SSpkgVersion
      GetPkgNameAndVersion = True
   Else
      SSPkgNameAndVer = ""
      GetPkgNameAndVersion = False
   End If
End Function
'-------------------------------------------------------------------------------------------------------------------------------------------------------------------
'==================================================================================
' Report Name      :   ReleaseDeviStatus_Report
' Description      :   List DEVIs for all Package Versions in a Release
' INPUT            :
'==================================================================================
Sub ReleaseDeviStatus_Report ( SSsection, NNproj_id, NNrtag_id)
   Dim rsCQQry                   ' Query for the CLEARQUEST database
   Dim rsRMQry                   ' Query for the RELEASE MANAGER database
   Dim SQLstr                    ' String to contain a query
   Dim issueCnt                  ' Records how many CQ issues were found for a given RM package version
   Dim retVal                    ' General return value
   Dim isFirstDeviRow            ' HTML rendering helper
   Dim isRowOpen                 ' HTML rendering helper
   Dim dict_Iss_Id_to_Iss_Num    ' Dictionaries populated during the formation of the package DEVI list
   Dim dict_Iss_Id_to_Iss_DB     '   creation, supporting the generation of the DEVI details list.
   Dim dict_Iss_Id_to_Risk
   Dim dict_Iss_Id_to_Summary
   Dim dict_Iss_Id_to_CodeRev
   Dim dict_Iss_Id_to_IntNotes
   Dim dict_Iss_Id_to_RelDBPatches
   Dim dict_Iss_Id_to_Pkg
   Dim dict_Iss_Id_to_PvId
   Dim dict_Iss_Id_to_Iss_Status
   Dim dict_Iss_Id_to_Iss_Type
   Dim dict_Iss_Id_to_Aff_Pkg
   Dim i,j,k                     ' General loop vars
   Dim s,strIn,strOut,sDisplay   ' General string vars
   Dim a                         ' General array var
   Dim pkgArr                    ' Holds an array of CSV strings listing RM package names, 1 array element per unique CQ issue found
   Dim pkgCsv                    ' Holds a single CSV string listing RM package names, related to a single unique CQ issue
   Dim pvIdArr                   ' Holds an array of CSV strings listing RM package PV IDs, 1 array element per unique CQ issue found
   Dim pvIdCsv                   ' Holds a single CSV string listing RM package PV IDs, related to a single unique CQ issue
   Dim crRefArr                  ' Holds an array of code review reference strings
   Dim relDbPatchArr             ' Holds an array of related DB patch strings
   Dim sqlTblCnt                 ' Counts the number of tables in the RM query string
   Dim FSO                       ' File System Object
   Dim NewTextFile               ' File Object
   Dim emailReport               ' Boolean flag signalling email generation
   Dim cqFilterStr               ' Fixed and/or Outstanding Issues Filter for RM Query
   Dim cbWIPChecked              ' Default checkbox states
   Dim cbPendingChecked
   Dim cbReleasedChecked
   Dim cbFixed
   Dim cbOutstanding
   Dim cbWithoutIssues
   Dim cbTraverseRipples
   Dim reObj                     ' regular expression object
   Dim reObjMatch
   Dim NumPkgsListed             ' Stats collection vars
   Dim NumIssuesListed
   Dim parRipDate                ' traverse ripple limit date
   Dim lastNonRipplePvId         ' pv_id after ripple version traversal
   Dim cqIssId                   ' clearquest database ID for a given issue (not a human readable number)

   Const Allow_All = TRUE
   Const Disallow_All = FALSE

   NumPkgsListed = 0
   NumIssuesListed = 0

   If NNproj_id = "" Then NNproj_id = -1
   If NNrtag_id = "" Then NNrtag_id = -1

   If SSsection = "TITLE" Then
      Response.write "Release DEVI Status"
      Exit Sub
   End If

   ' Determine if we have to assert default check status on one of the checkboxes
   cbWIPChecked      = False
   cbPendingChecked  = False
   cbReleasedChecked = False
   cbFixed           = False
   cbOutstanding     = False
   cbWithoutIssues   = False
   cbTraverseRipples = False
   If  (IsNull(Request("CB_FILTER_WIP")) OR (Request("CB_FILTER_WIP") = "")) _
   and (IsNull(Request("CB_FILTER_PENDING")) OR (Request("CB_FILTER_PENDING") = "")) _
   and (IsNull(Request("CB_FILTER_RELEASED")) OR (Request("CB_FILTER_RELEASED") = "")) Then
      cbWIPChecked = True
   End If
   If  (IsNull(Request("CB_FILTER_FIXED")) OR (Request("CB_FILTER_FIXED") = "")) _
   and (IsNull(Request("CB_FILTER_OUTSTANDING")) OR (Request("CB_FILTER_OUTSTANDING") = "")) Then
      cbFixed = True
   End If

   If (IsNull(Request("FRripdate")) OR (Request("FRripdate") = "")) Then
      parRipDate = DisplayDate(DateAdd("d",-31,Date))
   Else
      parRipDate = Request("FRripdate")
   End If

   If SSsection = "FORM" Then
      %>
      <script>
        $(document).ready(function(){
            $("#FRripdate").datepicker({
                    constrainInput: true,
                    showOn: 'both',
                    buttonImageOnly : true,
                    buttonImage: "images/i_calendar.gif",
                    buttonText: "Select Date",
                    dateFormat : "D dd-M-yy",
                    maxDate : 0,
                    yearRange : "1970:2099",
                    changeYear : true, 
                    changeMonth: true,
            });
        });

      </script>
      <table width="100%" border="0" cellpadding="2" cellspacing="1">
         <form action="<%=scriptName%>" method="post" name="repform" onSubmit="MM_validateForm('FRproj_id','Project','R','FRvtree_id','Version Tree','R','FRrtag_id','Release','R');return document.MM_returnValue">
            <table width="100%" border="0" cellpadding="2" cellspacing="1">
               <tr>
                  <td width="50%">
                     <table width="100%" border="0" cellpadding="2" cellspacing="1">
                        <tr>
                           <td width="10%" align="left" valign="top" nowrap class="form_field">Project</td>
                           <td width="90%" valign="top"><%Call Get_Projects( NNproj_id, Disallow_All )%></td>
                        </tr>
                        <tr>
                           <td align="left" nowrap class="form_field">Release</td>
                           <td><%Call Get_Open_Release_Labels ( NNproj_id,  NNrtag_id, Disallow_All )%></td>
                        </tr>
                        <tr><td colspan="2" height="130px"><img src="images/spacer.gif" width="1" height="1"></td></tr>
                        <tr>
                           <td>
                              <input name="btn" type="submit" class="form_btn" value="Submit"            >
                           </td>
                           <td>
                              <input name="btn" type="submit" class="form_btn" value="Mail Me CSV Report">
                              <input type="hidden" name="group" value="<%=parGroup%>">
                              <input type="hidden" name="repnum" value="<%=parRepNum%>">
                              <input type="hidden" name="action" value="true">
                           </td>
                        </tr>
                     </table>
                  </td>
                  <td width="50%">
                     <table width="100%" border="0" cellpadding="2" cellspacing="1">
                        <tr>
                           <td width="60%" valign="top">
                              <fieldset>
                                 <legend><span class="pointer body_scol" >Include&nbsp;Package&nbsp;Versions<%=Quick_Help("RepRDS_pv")%>&nbsp;</span></legend>
                                 <table width="100%" border="0" cellpadding="2" cellspacing="1">
                                    <tr><%=ReleaseDeviStatus_ReportCheckbox("25%", "CB_FILTER_WIP", "From Work-in-progress", cbWIPChecked)%></tr>
                                    <tr><%=ReleaseDeviStatus_ReportCheckbox("17%", "CB_FILTER_PENDING", "From Pending", cbPendingChecked)%></tr>
                                    <tr><%=ReleaseDeviStatus_ReportCheckbox("20%", "CB_FILTER_RELEASED", "From Released", cbReleasedChecked)%></tr>
                                    <tr><%=ReleaseDeviStatus_ReportCheckbox("100%", "CB_FILTER_WITHOUT_ISSUES", "Without Issues", cbWithoutIssues)%></tr>
                                 </table>
                              </fieldset>
                           </td>
                           <td width="40%" valign="top">
                              <fieldset>
                                 <legend><span class="pointer body_scol" >Include&nbsp;Package&nbsp;Versions<%=Quick_Help("RepRDS_iss")%>&nbsp;</span></legend>
                                 <table width="100%" border="0" cellpadding="2" cellspacing="1">
                                    <tr><%=ReleaseDeviStatus_ReportCheckbox("100%", "CB_FILTER_FIXED",       "Fixed", cbFixed)%></tr>
                                    <tr><%=ReleaseDeviStatus_ReportCheckbox("100%", "CB_FILTER_OUTSTANDING", "Outstanding", cbOutstanding)%></tr>
                                 </table>
                              </fieldset>
                           </td>
                        </tr>
                        <tr>
                           <td width="60%" valign="top" colspan="2">
                              <fieldset>
                                 <legend><span class="pointer body_scol" >Include&nbsp;Package&nbsp;Versions<%=Quick_Help("RepRDS_trav")%>&nbsp;</span></legend>
                                 <table width="100%" border="0" cellpadding="0" cellspacing="0">
                                    <tr>
                                       <%=ReleaseDeviStatus_ReportCheckbox("60%", "CB_FILTER_TRAVERSE_RIPPLES", "Traverse Ripples as far back as", cbTraverseRipples)%>
                                       <td>
                                          <input type="text" name="FRripdate" maxlength="10" size="12" value="<%=parRipDate%>" id="FRripdate">
                                       </td>
                                    </tr>
                                 </table>
                              </fieldset>
                           </td>
                        </tr>
                     </table>
                  </td>
               </tr>
            </table>
         </form>
      </table>
      <%
      Exit Sub
   End If

   If SSsection = "BODY" Then
      emailReport = false
      If Request("btn") = "Mail Me CSV Report" Then
         emailReport = true
      End If

      If NOT CBool(Request("action")) Then Exit Sub
      If NNrtag_id = -1 then Exit Sub

      ' Construct Release Manager Query based upon form settings (rtag and checkbox states)
      sqlTblCnt = 0
      SQLstr = "SELECT * FROM ( "
      If not (IsNull(Request("CB_FILTER_WIP")) OR (Request("CB_FILTER_WIP") = "")) Then
         sqlTblCnt = sqlTblCnt + 1
         SQLstr = SQLstr & " SELECT p.PROJ_ID,   rt.RTAG_ID,   v.VIEW_ID,   pk.PKG_ID,   pv.PV_ID,"&_
                           "        p.PROJ_NAME, rt.RTAG_NAME, v.VIEW_NAME, pk.PKG_NAME, pv.PKG_VERSION, pv.PKG_LABEL, pv.BUILD_TYPE, pv.DLOCKED, 'WIP' as STATE"&_
                           "   FROM PACKAGE_VERSIONS pv,"&_
                           "        PACKAGES pk,"&_
                           "        RELEASE_TAGS rt,"&_
                           "        PROJECTS p,"&_
                           "        VIEWS v," &_
                           "        WORK_IN_PROGRESS wip"&_
                           "  WHERE wip.RTAG_ID =   :RTAG_ID"&_
                           "    AND wip.RTAG_ID = rt.RTAG_ID"&_
                           "    AND wip.PV_ID   = pv.PV_ID"&_
                           "    AND wip.VIEW_ID = v.VIEW_ID"&_
                           "    AND pv.PKG_ID   = pk.PKG_ID"&_
                           "    AND rt.PROJ_ID  = p.PROJ_ID"
      End If

      If not (IsNull(Request("CB_FILTER_PENDING")) OR (Request("CB_FILTER_PENDING") = "")) Then
         If sqlTblCnt > 0 Then
            SQLstr = SQLstr & " UNION ALL "
         End If
         sqlTblCnt = sqlTblCnt + 1
         SQLstr = SQLstr & " SELECT p.PROJ_ID,   rt.RTAG_ID,   v.VIEW_ID,   pk.PKG_ID,   pv.PV_ID,"&_
                           "        p.PROJ_NAME, rt.RTAG_NAME, v.VIEW_NAME, pk.PKG_NAME, pv.PKG_VERSION, pv.PKG_LABEL, pv.BUILD_TYPE, pv.DLOCKED, 'Pending' as STATE"&_
                           "   FROM PACKAGE_VERSIONS pv,"&_
                           "        PACKAGES pk,"&_
                           "        RELEASE_TAGS rt,"&_
                           "        PROJECTS p,"&_
                           "        VIEWS v," &_
                           "        PLANNED pl"&_
                           "  WHERE pl.RTAG_ID  =   :RTAG_ID"&_
                           "    AND pl.RTAG_ID  = rt.RTAG_ID"&_
                           "    AND pl.PV_ID    = pv.PV_ID"&_
                           "    AND pl.VIEW_ID  = v.VIEW_ID"&_
                           "    AND pv.PKG_ID   = pk.PKG_ID"&_
                           "    AND rt.PROJ_ID  = p.PROJ_ID"
      End If

      If not (IsNull(Request("CB_FILTER_RELEASED")) OR (Request("CB_FILTER_RELEASED") = "")) Then
         If sqlTblCnt > 0 Then
            SQLstr = SQLstr & " UNION ALL "
         End If
         sqlTblCnt = sqlTblCnt + 1
         SQLstr = SQLstr & " SELECT p.PROJ_ID,   rt.RTAG_ID,   v.VIEW_ID,   pk.PKG_ID,   pv.PV_ID,"&_
                           "        p.PROJ_NAME, rt.RTAG_NAME, v.VIEW_NAME, pk.PKG_NAME, pv.PKG_VERSION, pv.PKG_LABEL, pv.BUILD_TYPE, pv.DLOCKED, 'Released' as STATE"&_
                           "   FROM PACKAGE_VERSIONS pv,"&_
                           "        PACKAGES pk,"&_
                           "        RELEASE_TAGS rt,"&_
                           "        PROJECTS p,"&_
                           "        VIEWS v," &_
                           "        RELEASE_CONTENT rc"&_
                           "  WHERE rc.RTAG_ID      =   :RTAG_ID"&_
                           "    AND rc.RTAG_ID      = rt.RTAG_ID"&_
                           "    AND rc.PV_ID        = pv.PV_ID"&_
                           "    AND rc.BASE_VIEW_ID = v.VIEW_ID"&_
                           "    AND pv.PKG_ID       = pk.PKG_ID"&_
                           "    AND rt.PROJ_ID      = p.PROJ_ID"
      End If

      SQLstr = SQLstr & " )"
      SQLstr = SQLstr & " ORDER BY UPPER(PKG_NAME), PKG_VERSION"

      ' Exit if nothing to do
      If sqlTblCnt = 0 Then
         Response.Write "Select one or more of Work-in-progress/Pending/Released package version states to be considered"
         Exit Sub
      End If

      ' Get SQL string for querying the CLEARQUEST database for this package version's fixed issues  enumISSUES_STATE_IMPORTED or enumISSUES_STATE_FIXED
      cqFilterStr = GetCQIssuesListFilter()
      If cqFilterStr = "" Then
         Response.Write "Select one or both of Fixed/Outstanding issues lists to be considered"
         Exit Sub
      End If

      ' Query RELEASE MANAGER for Package versions
      OraDatabase.Parameters.Add "RTAG_ID", NNrtag_id, ORAPARM_INPUT, ORATYPE_NUMBER
      Set rsRMQry = OraDatabase.DbCreateDynaset( SQLstr, cint(0))
      OraDatabase.Parameters.Remove "RTAG_ID"

      ' If no records returned issue a message to user and exit
      If rsRMQry.RecordCount = 0 Then
         Response.Write "No records returned - try including additional package version states"
         Exit Sub
      End If

      ' Create a downloadable file
      Set FSO = Server.CreateObject("Scripting.FileSystemObject")
      Set NewTextFile = FSO.CreateTextFile(Server.MapPath("docs\ReleaseDEVIStatus_"&objAccessControl.UserName&".csv"), true)

      ' Create some dictionaries
      set dict_Iss_Id_to_Iss_Num      = CreateObject("Scripting.Dictionary")
      set dict_Iss_Id_to_Iss_DB       = CreateObject("Scripting.Dictionary")
      set dict_Iss_Id_to_Pkg          = CreateObject("Scripting.Dictionary")
      set dict_Iss_Id_to_Risk         = CreateObject("Scripting.Dictionary")
      set dict_Iss_Id_to_Summary      = CreateObject("Scripting.Dictionary")
      set dict_Iss_Id_to_CodeRev      = CreateObject("Scripting.Dictionary")
      set dict_Iss_Id_to_IntNotes     = CreateObject("Scripting.Dictionary")
      set dict_Iss_Id_to_RelDBPatches = CreateObject("Scripting.Dictionary")
      set dict_Iss_Id_to_PvId         = CreateObject("Scripting.Dictionary")
      set dict_Iss_Id_to_Iss_Status   = CreateObject("Scripting.Dictionary")
      set dict_Iss_Id_to_Iss_Type     = CreateObject("Scripting.Dictionary")
      set dict_Iss_Id_to_Aff_Pkg      = CreateObject("Scripting.Dictionary")

      set reObj  = new RegExp

      NewTextFile.WriteLine(DoubleQuotes("Release DEVI Status Report for " & Get_Proj_Name(Request("FRproj_id")) & ", release " & Get_Release_Name(Request("FRrtag_id"))))
      NewTextFile.WriteLine("")
      NewTextFile.WriteLine("Package DEVI List")
      NewTextFile.WriteLine("")
      NewTextFile.WriteLine("""Package"",""Label"",""State"",""Issue Number"",""Issue Summary""")
      %>
      <H3>Release DEVI Status Report for
      &nbsp;project&nbsp;<a href="rtree.asp?proj_id=<%=NNproj_id%>" class="txt_linked"><%=Get_Proj_Name(Request("FRproj_id"))%></a>,
      &nbsp;release&nbsp;<a href="dependencies.asp?rtag_id=<%=NNrtag_id%>" class="txt_linked"><%=Get_Release_Name(Request("FRrtag_id"))%></a>
      </H3>
      <H4>Contents</H4>
      <table width="100%" border="0" cellspacing="0" cellpadding="1">
         <tr>
            <td valign="top" nowrap width="15%"><a href="#C1">Package DEVI List</a></td>
            <td valign="top" width="85%">This contains the list of package versions in the release, along with the CLEARQUEST issues assigned to them.</td>
         </tr>
         <tr><td>&nbsp;</td><td>&nbsp;</td></tr>
         <tr>
            <td valign="top"><a href="#C2">DEVI Details List</a></td>
            <td valign="top">This contains the list of CLEARQUEST issues for the release, along with selected details for each, and a reference back to the package versions to which they have been assigned.</td>
         </tr>
         <tr>
            <td valign="top"><a href="#C3">Statistics</a></td>
            <td valign="top">This contains some statistics collected during the report generation.</td>
         </tr>
         <tr>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
         </tr>
      </table>

      <H5><a name="C1">Package DEVI List</a></H5>
      <table width="100%" border="0" cellspacing="0" cellpadding="1">
         <tr>
            <td width="10%" nowrap class="body_colb">Package&nbsp;&nbsp;&nbsp;</td>
            <td width="10%" nowrap class="body_colb">Label&nbsp;&nbsp;&nbsp;</td>
            <td width="10%" nowrap class="body_colb">State&nbsp;&nbsp;&nbsp;</td>
            <td width="10%" class="body_colb">Issue Number<br>(F)=Fixed<br>(O)=Outstanding</td>
            <td width="60%" nowrap class="body_colb">Issue Summary&nbsp;&nbsp;&nbsp;</td>
         </tr>
         <tr>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
         </tr>
         <%
         while ((NOT rsRMQry.BOF) AND (NOT rsRMQry.EOF))
            isFirstDeviRow = 1
            isRowOpen = 1

            ' If this package version is a ripple, try and find its non-ripple predecessor in order to get at the
            ' issues that were addressed
            lastNonRipplePvId = rsRMQry("PV_ID")
            If not (IsNull(Request("CB_FILTER_TRAVERSE_RIPPLES")) OR (Request("CB_FILTER_TRAVERSE_RIPPLES") = "")) Then
               if ((rsRMQry("BUILD_TYPE") = "Y") and (rsRMQry("DLOCKED") = "Y")) Then
                  If (IsNull(Request("FRripdate")) OR (Request("FRripdate") = "")) Then
                     lastNonRipplePvId = getLastNonRippleVersionPVID(rsRMQry("PV_ID"), NULL, NULL)
                  Else
                     lastNonRipplePvId = getLastNonRippleVersionPVIDLimitedByDate(rsRMQry("PV_ID"), Request("FRripdate"))
                  End If
                  If IsNull(lastNonRipplePvId) or (lastNonRipplePvId = "") Then
                     lastNonRipplePvId = rsRMQry("PV_ID")
                  End If
               End If
            End If

            issueCnt = Get_Package_Issues (lastNonRipplePvId, SQLstr, NULL, NULL, cqFilterStr )
            if (issueCnt > 0) _
            or not(IsNull(Request("CB_FILTER_WITHOUT_ISSUES")) OR (Request("CB_FILTER_WITHOUT_ISSUES") = "")) Then

               NumPkgsListed = NumPkgsListed + 1

               %>
               <tr>
                  <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
                  <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
                  <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
                  <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
                  <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
               </tr>
               <%

               NewTextFile.Write(DoubleQuotes(rsRMQry("PKG_NAME")) & ",")
               NewTextFile.Write(DoubleQuotes(rsRMQry("PKG_LABEL")) & ",")
               NewTextFile.Write(DoubleQuotes(rsRMQry("STATE")) & ",")
               %>
               <tr>
               <td valign="top"><a href="fixed_issues.asp?rtag_id=<%=NNrtag_id%>&pv_id=<%=rsRMQRy("PV_ID")%>" class="txt_linked"><%=rsRMQry("PKG_NAME")%></a></td>
               <td valign="top"><%=rsRMQry("PKG_LABEL")%></td>
               <td valign="top"><%=rsRMQry("STATE")%></td>
               <%

               ' Complete the row immediately if this package version has no issues, else process the issues.
               if issueCnt = 0 Then
                  NewTextFile.WriteLine(",")
                  %>
                  <td><img src="images/spacer.gif" width="1" height="1"></td>
                  <td><img src="images/spacer.gif" width="1" height="1"></td>
                  </tr>
                  <%
                  isRowOpen = 0
               Else
                  ' Query the CLEARQUEST database
                  retVal = Get_CQ_Issues ( SQLstr, rsCQQry )
                  If retVal = 0 Then
                     While ((NOT rsCQQry.BOF) AND (NOT rsCQQry.EOF))
                        Dim issueNumber
                        issueNumber = rsCQQry("ISS_NUM") & GetRMIssueState (lastNonRipplePvId, rsCQQry("ISS_ID"))

                        ' Keep dictionary of issue IDs to human readable issue numbers, plus other info we will need later on for the report
                        If not dict_Iss_Id_to_Iss_Num.Exists(CStr(rsCQQry("ISS_ID"))) Then
                           sdAdd dict_Iss_Id_to_Iss_Num,      rsCQQry("ISS_ID"), issueNumber
                           sdAdd dict_Iss_Id_to_Iss_DB,       rsCQQry("ISS_ID"), rsCQQry("ISS_DB")
                           sdAdd dict_Iss_Id_to_Risk,         rsCQQry("ISS_ID"), rsCQQry("RISK")
                           sdAdd dict_Iss_Id_to_Summary,      rsCQQry("ISS_ID"), rsCQQry("SUMMARY")
                           sdAdd dict_Iss_Id_to_CodeRev,      rsCQQry("ISS_ID"), rsCQQry("CR_REF")
                           sdAdd dict_Iss_Id_to_IntNotes,     rsCQQry("ISS_ID"), rsCQQry("INT_NOTES")
                           sdAdd dict_Iss_Id_to_RelDBPatches, rsCQQry("ISS_ID"), rsCQQry("DB_PATCHES")
                           sdAdd dict_Iss_Id_to_Iss_Type,     rsCQQry("ISS_ID"), rsCQQry("ISSUE_TYPE")
                           sdAdd dict_Iss_Id_to_Iss_Status,   rsCQQry("ISS_ID"), rsCQQry("STATUS")
                           sdAdd dict_Iss_Id_to_Aff_Pkg,      rsCQQry("ISS_ID"), rsCQQry("AFFECTED_PACKAGES")
                        End If

                        ' Keep dictionary of issue IDs to release manager package names (latter is a comma separated list)
                        If dict_Iss_Id_to_Pkg.Exists(CStr(rsCQQry("ISS_ID"))) Then
                           dict_Iss_Id_to_Pkg.Item(CStr(rsCQQry("ISS_ID"))) = dict_Iss_Id_to_Pkg.Item(CStr(rsCQQry("ISS_ID"))) & "," & CStr(rsRMQry("PKG_NAME")) & " " & CStr(rsRMQry("PKG_VERSION"))
                        Else
                           sdAdd dict_Iss_Id_to_Pkg, rsCQQry("ISS_ID"), rsRMQry("PKG_NAME") & " " & CStr(rsRMQry("PKG_VERSION"))
                        End If

                        ' Keep dictionary of issue IDs to release manager package version IDs (latter is a comma separated list)
                        If dict_Iss_Id_to_PvId.Exists(CStr(rsCQQry("ISS_ID"))) Then
                           dict_Iss_Id_to_PvId.Item(CStr(rsCQQry("ISS_ID"))) = dict_Iss_Id_to_PvId.Item(CStr(rsCQQry("ISS_ID"))) & "," & CStr(rsRMQry("PV_ID"))
                        Else
                           sdAdd dict_Iss_Id_to_PvId, rsCQQry("ISS_ID"), rsRMQry("PV_ID")
                        End If

                        ' Begin new row if needed
                        if isRowOpen = 0 Then
                           isRowOpen = 1
                           %><tr><%
                        End If

                        ' If first row, no need to pad since those columns have already been filled in outer loop
                        If isFirstDeviRow = 1 Then
                           isFirstDeviRow = 0
                           NewTextFile.Write(DoubleQuotes(issueNumber) & ",")
                           NewTextFile.WriteLine(DoubleQuotes(rsCQQry("SUMMARY")))
                           %>
                           <td valign="top"><a class="txt_linked"  href="#<%=rsCQQry("ISS_ID")%>"><%=issueNumber%></a></td>
                           <td valign="top"><%=rsCQQry("SUMMARY")%></td>
                           <%
                        Else
                           NewTextFile.Write(",,," & DoubleQuotes(issueNumber) & ",")
                           NewTextFile.WriteLine(DoubleQuotes(rsCQQry("SUMMARY")))
                           %>
                           <td valign="top"><img src="images/spacer.gif" width="1" height="1"></td>
                           <td valign="top"><img src="images/spacer.gif" width="1" height="1"></td>
                           <td valign="top"><img src="images/spacer.gif" width="1" height="1"></td>
                           <td valign="top"><a class="txt_linked" href="#<%=rsCQQry("ISS_ID")%>"><%=issueNumber%></a></td>
                           <td valign="top"><%=rsCQQry("SUMMARY")%></td>
                           <%
                        End If

                        ' End this row
                        isRowOpen = 0
                        %></tr><%
                        rsCQQry.MoveNext
                     Wend  ' end of loop processing each issue
                     rsCQQry.Close
                  Else
                     NewTextFile.WriteLine("," & DoubleQuotes("ERROR - could not get issue details from CLEARQUEST"))
                     %>
                     <td><img src="images/spacer.gif" width="1" height="1"></td>
                     <td>ERROR - could not get issue details from CLEARQUEST</td>
                     <%
                  End If

                  ' Complete the row if needed
                  if isRowOpen = 1 Then
                     if (isFirstDeviRow = 1) Then
                        NewTextFile.WriteLine(",")
                        %>
                        <td><img src="images/spacer.gif" width="1" height="1"></td>
                        <td><img src="images/spacer.gif" width="1" height="1"></td>
                        <%
                     End If
                     isRowOpen = 0
                     %></tr><%
                  End If
               End If
            End If
            rsRMQry.MoveNext
         Wend  ' End of loop processing each package version
         set rsCQQry = nothing
         %>
         <tr>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
         </tr>
      </table>

      <%
      NewTextFile.WriteLine("")
      NewTextFile.WriteLine("DEVI Details List")
      NewTextFile.WriteLine("")
      NewTextFile.WriteLine("""Issue Number"",""Property"",""Details""")
      %>

      <H5><a name="C2">DEVI Details List</a></H5>
      <table width="100%" border="0" cellspacing="0" cellpadding="1">
         <tr>
            <td width="10%" nowrap class="body_colb">Issue Number&nbsp;&nbsp;&nbsp;</td>
            <td width="20%" nowrap class="body_colb">Property&nbsp;&nbsp;&nbsp;</td>
            <td width="70%" nowrap class="body_colb">Details&nbsp;&nbsp;&nbsp;</td>
         </tr>
         <tr>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
         </tr>
         <%
         For i = 0 To (dict_Iss_Id_to_Iss_Num.Count - 1)

            cqIssId = sdKey(dict_Iss_Id_to_Iss_Num, i)

            NumIssuesListed = NumIssuesListed + 1
            %>
            <tr>
               <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
               <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
               <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            </tr>
            <%
            '-------------------------------------------------------------------------------------------------------------------------------
            ' First line is the DEVI Number, and its summary info
            s = sdItem(dict_Iss_Id_to_Summary,i)   ' Prepare for CSV
            s = Replace(s,"""","""""")
            NewTextFile.WriteLine(DoubleQuotes(sdItem(dict_Iss_Id_to_Iss_Num,i)) & ",Issue Summary," & DoubleQuotes(s))
            s = sdItem(dict_Iss_Id_to_Summary,i)   ' Prepare for HTML
            s = NewLine_To_BR(To_HTML(s))
            %>
            <tr>
            <td valign="top"><a name="<%=cqIssId%>" class="txt_linked vixIframeDialog" href="_wform_issues_details.asp?iss_db=<%=sdItem(dict_Iss_Id_to_Iss_DB,i)%>&iss_id=<%=sdKey(dict_Iss_Id_to_Iss_Num,i)%>"><%=sdItem(dict_Iss_Id_to_Iss_Num,i)%></a></td>
            <td valign="top">Issue Summary:</td>
            <td valign="top"><%=s%></td>
            </tr><%
            '-------------------------------------------------------------------------------------------------------------------------------
            ' Next line is the DEVI Type Value (ie Defect, Future Enhancement, etc)
            NewTextFile.WriteLine(",Type," & DoubleQuotes(sdItem(dict_Iss_Id_to_Iss_Type,i)))
            %>
            <tr>
            <td valign="top"><img src="images/spacer.gif" width="1" height="1"></td>
            <td valign="top">Type:</td>
            <td valign="top"><%=sdItem(dict_Iss_Id_to_Iss_Type, i)%></td>
            </tr>
            <%
            '-------------------------------------------------------------------------------------------------------------------------------
            ' Next line is the DEVI Status Value
            NewTextFile.WriteLine(",Status," & DoubleQuotes(sdItem(dict_Iss_Id_to_Iss_Status,i)))
            %>
            <tr>
            <td valign="top"><img src="images/spacer.gif" width="1" height="1"></td>
            <td valign="top">Status:</td>
            <td valign="top"><%=sdItem(dict_Iss_Id_to_Iss_Status, i)%></td>
            </tr>
            <%
            '-------------------------------------------------------------------------------------------------------------------------------
            ' Next line is the DEVI Risk Value
            NewTextFile.WriteLine(",Risk," & DoubleQuotes(sdItem(dict_Iss_Id_to_Risk,i)))
            %>
            <tr>
            <td valign="top"><img src="images/spacer.gif" width="1" height="1"></td>
            <td valign="top">Risk:</td>
            <td valign="top"><%=sdItem(dict_Iss_Id_to_Risk, i)%></td>
            </tr>
            <%
            '-------------------------------------------------------------------------------------------------------------------------------
            ' Next line is the DEVI's code review reference
            a = dict_Iss_Id_to_CodeRev.Items  ' Get collection into an array
            s = a(i)                          ' Get array element into a string
            s = Replace(s, chr(13), "+")      ' Replace possible delimiters with a single delimiter ("+")
            s = Replace(s, chr(10), "+")
            s = Replace(s, " ", "+")
            crRefArr = Split(s,"+")           ' Split on our contrived delimiter and iterate through results

            NewTextFile.Write(",Code Review Ref,""")
            %>
            <tr>
            <td valign="top"><img src="images/spacer.gif" width="1" height="1"></td>
            <td valign="top">Code Review Ref:</td>
            <td valign="top">
            <%
            For j = 0 To UBOUND(crRefArr)
               if not ((crRefArr(j) = "+") or (crRefArr(j) = ",") or (Trim(crRefArr(j)) = "")) Then
                  if j = 0 Then
                     NewTextFile.Write(Trim(crRefArr(j)))
                     %>
                     <a href="<%=Trim(crRefArr(j))%>" class="txt_linked"><%=Trim(crRefArr(j))%></a>
                     <%
                  Else
                     NewTextFile.Write("," & Trim(crRefArr(j)))
                     %>
                     <a href="<%=Trim(crRefArr(j))%>" class="txt_linked"><br><%=Trim(crRefArr(j))%></a>
                     <%
                  End If
               End If
            Next
            NewTextFile.WriteLine("""")
            %>
            </td>
            </tr>
            <%

            '-------------------------------------------------------------------------------------------------------------------------------
            ' Next line is the DEVI's related DB Patches
            '  This is quite complicated but at the end of the day, we are aiming to convert the free form text in
            '  the CLEARQUEST devi into a list of hyperlinks to the actual package versions in RM, based on the assumption
            '  that the free form text contains PV_ID numbers somewhere therein.
            a = dict_Iss_Id_to_RelDBPatches.Items  ' Get collection into an array
            s = a(i)                               ' Get array element into a string
            s = Replace(s, chr(13), "+")           ' Replace possible delimiters with a single delimiter ("+")
            s = Replace(s, chr(10), "+")
            s = Replace(s, " ", "+")
            relDbPatchArr = Split(s,"+")           ' Split on our contrived delimiter and iterate through results

            NewTextFile.Write(",Related DB Patches,""")
            %>
            <tr>
            <td valign="top"><img src="images/spacer.gif" width="1" height="1"></td>
            <td valign="top">Related DB Patches:</td>
            <td valign="top">
            <%
            For j = 0 To UBOUND(relDbPatchArr)
               if not ((relDbPatchArr(j) = "+") or (relDbPatchArr(j) = ",") or (Trim(relDbPatchArr(j)) = "")) Then
                  ' Given that the Related DB Patches is a free form text field in a CLEARQUEST DEVI,
                  ' it can contain a variety of text. Normally it contains a list of PV_ID's but it
                  ' can also contain the patch file names (eg. orahops.467229_patch.xml) which normally
                  ' contains PV_IDs embedded within them. We have to cater for both approaches and
                  ' somehow extract those PV_IDs. We have already split the string so we know we are
                  ' now dealing with a single item, but sometimes users name their packages or files with
                  ' numbers as well as letters. The code below looks for the longest numeric sequence
                  ' and assumes that is the PV_ID
                  Dim lenMax,lenThis,objMatch
                  lenMax  = 0
                  lenThis = 0

                  sDisplay = Trim(relDbPatchArr(j))   'default

                  ' search for numeric sequences in the string
                  reObj.IgnoreCase = True
                  reObj.Global = True
                  reObj.Pattern = "[0-9]+"
                  set reObjMatch = reObj.Execute(Trim(relDbPatchArr(j)))
                  If reObjMatch.Count > 0 Then
                     ' Look for the longest numeric sequence
                     for each objMatch in reObjMatch
                        lenThis = objMatch.Length
                        If lenThis > lenMax Then
                           lenMax = lenThis
                           sDisplay = objMatch  'sDisplay is now a numeric sequence
                        End If
                     next
                     if (lenMax > 0) Then
                        ' Form the display string as "PV_ID (package-name package-version)"
                        If GetPkgNameAndVersion(sDisplay, s) Then
                           sDisplay = sDisplay & " (" & s & ")"
                        Else
                           ' Couldn't get the package name/version from RM so it is likely this number
                           ' is not a true/real PV_ID so revert to the simpler display format we began with
                           ' as a default.
                           sDisplay = Trim(relDbPatchArr(j))   'reset to full string
                           lenMax = 0                          'zero to force simpler display format in HTML
                        End If
                     End If
                  End If

                  if j = 0 Then
                     NewTextFile.Write(Trim(sDisplay))
                     If (lenMax = 0) Then
                        %><%=Trim(relDbPatchArr(j))%><%
                     Else
                        %><a href="dependencies.asp?pv_id=<%=Trim(relDbPatchArr(j))%>" class="txt_linked"><%=sDisplay%></a><%
                     End If
                  Else
                     NewTextFile.Write("," & Trim(sDisplay))
                     If (lenMax = 0) Then
                        %><%=Trim(relDbPatchArr(j))%><%
                     Else
                        %><a href="dependencies.asp?pv_id=<%=Trim(relDbPatchArr(j))%>" class="txt_linked"><br><%=sDisplay%></a><%
                     End If
                  End If
               End If
            Next
            NewTextFile.WriteLine("""")
            %>
            </td>
            </tr>
            <%
            '-------------------------------------------------------------------------------------------------------------------------------
            ' Next line is the DEVI's affected packages field
            s = sdItem(dict_Iss_Id_to_Aff_Pkg,i)   ' Prepare for CSV
            s = Replace(s,"""","""""")
            NewTextFile.WriteLine(",Affected Packages," & DoubleQuotes(s))
            s = sdItem(dict_Iss_Id_to_Aff_Pkg,i)   ' Prepare for HTML
            s = NewLine_To_BR(To_HTML(s))
            %>
            <tr>
            <td valign="top"><img src="images/spacer.gif" width="1" height="1"></td>
            <td valign="top">Affected Packages:</td>
            <td valign="top"><%=s %></td>
            </tr>
            <%
            '-------------------------------------------------------------------------------------------------------------------------------
            ' Next line(s) is/are the packages this DEVI is assigned to, in release manager
            pkgArr = dict_Iss_Id_to_Pkg.Items
            pkgCsv = pkgArr(i)
            pkgArr = Split(pkgCsv, ",")

            pvIdArr = dict_Iss_Id_to_PvId.Items
            pvIdCsv = pvIdArr(i)
            pvIdArr = Split(pvIdCsv, ",")

            NewTextFile.Write(",RM Assigned Packages,""")
            %>
            <tr>
            <td valign="top"><img src="images/spacer.gif" width="1" height="1"></td>
            <td valign="top">RM Assigned Packages:</td>
            <td valign="top">
            <%
            For j = 0 To UBOUND(pkgArr)
               If j = 0 Then
                  NewTextFile.Write(pkgArr(j))
                  %><a href="fixed_issues.asp?rtag_id=<%=NNrtag_id%>&pv_id=<%=pvIdArr(j)%>" class="txt_linked"><%=pkgArr(j)%></a><%
               Else
                  NewTextFile.Write("," & pkgArr(j))
                  %><a href="fixed_issues.asp?rtag_id=<%=NNrtag_id%>&pv_id=<%=pvIdArr(j)%>" class="txt_linked"><br><%=pkgArr(j)%></a><%
               End If
            Next
            NewTextFile.WriteLine("""")
            %>
            </td>
            </tr>
            <%
            '-------------------------------------------------------------------------------------------------------------------------------
            ' Next line is the DEVI's integration notes
            s = sdItem(dict_Iss_Id_to_IntNotes, i) 'Prepare for CSV
            s = Replace(s,"""","""""")
            NewTextFile.WriteLine(",Integration Notes," & DoubleQuotes(s))

            s = sdItem(dict_Iss_Id_to_IntNotes, i) ' Prepare for HTML
            s = NewLine_To_BR(To_HTML(s))
            %>
            <tr>
            <td valign="top"><img src="images/spacer.gif" width="1" height="1"></td>
            <td valign="top">Integration Notes:</td>
            <td valign="top"><%=s %>
            </td>
            </tr>
            <%
         Next
         %>
         <tr>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
            <td background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
         </tr>
      </table>
      <H5><a name="C3">Statistics</a></H5>
      Report&nbsp;generated on&nbsp;<%=DisplayDate(Date)%>&nbsp;at&nbsp;<%=Time%><BR>
      <%=NumPkgsListed %>&nbsp;Package(s)&nbsp;Listed<BR>
      <%=NumIssuesListed  %>&nbsp;Issue(s)&nbsp;Listed<BR>
      <!-- PRINT, SAVE, ETC. ------------>
      <%If parPrint = "" Then%>
         <br>
         <br>
         <span onClick="window.print();" class="pointer txt_linked"><img src="images/btn_print.gif" width="23" height="24" hspace="4" border="0" align="absmiddle">Print this report</span><br>
         <br>
      <%End If%>
      <%
      ' Clean up
      rsRMQry.Close
      set rsRMQry = nothing
      set dict_Iss_Id_to_Iss_Num      = nothing
      set dict_Iss_Id_to_Iss_DB       = nothing
      set dict_Iss_Id_to_Pkg          = nothing
      set dict_Iss_Id_to_Risk         = nothing
      set dict_Iss_Id_to_Summary      = nothing
      set dict_Iss_Id_to_CodeRev      = nothing
      set dict_Iss_Id_to_IntNotes     = nothing
      set dict_Iss_Id_to_RelDBPatches = nothing
      set dict_Iss_Id_to_PvId         = nothing
      set dict_Iss_Id_to_Iss_Status   = nothing
      set dict_Iss_Id_to_Iss_Type     = nothing
      set dict_Iss_Id_to_Aff_Pkg      = nothing
      set reObj                       = nothing

      NewTextFile.Close
      Set NewTextFile=Nothing

      ' EMAIL CSV report if user has requested it
      If emailReport Then
         Dim LocalPath
         LocalPath = Server.MapPath("docs\ReleaseDEVIStatus_"&objAccessControl.UserName&".csv")

         Send_Email   "Release Manager Notification",_
                       ADMIN_EMAIL, _
                       objAccessControl.UserEmail,_
                       "Release DEVI Status Report (csv) from Release Manager", _
                       "Your requested report...",_
                       LocalPath
      End If
   End If
End Sub
%>
<%
'==================================================================================
' Report Name      :   Find Files within a Package
' Description      :   Locate all files in all versions of the package
' Form Input       :   Package Name, File Name ( Wild cards allowed )
'==================================================================================
Sub Find_Package_File ( SSsection, SSpkg_name, SSfile_name )
   Dim Query_String, rsRep


   If SSsection = "TITLE" Then
      Response.write "Find Files within a Package"
      Exit Sub
   End If


   If SSsection = "FORM" Then
      %>
      <table width="100%" border="0" cellpadding="2" cellspacing="1">
         <form action="<%=scriptName%>" method="post" name="repform" onSubmit="MM_validateForm('FRpkg_name','Package Name','R', 'FRfile_name','File Name','R');return document.MM_returnValue">
            <tr>
               <td width="1%" nowrap class="form_field"><img src="images/spacer.gif" width="1" height="8"></td>
               <td width="1%" align="right" nowrap class="form_field" valign="top">Package Name</td>
               <td class="form_txt"><input type="text" name="FRpkg_name" size="30" class="form_item" value="<%=SSpkg_name%>"><br>
               HINTS:<br>
               - You can use * wildcard. e.g. *0123 or 0123* or *0123*<br><br></td>
            </tr>
            <tr>
               <td nowrap class="form_field">&nbsp;</td>
               <td align="right" nowrap class="form_field" valign="top">File Name</td>
               <td class="form_txt"><input type="text" name="FRfile_name" size="10" class="form_item" value="<%=SSv_ext%>"><br>
               You can use Wildcards</td>
            </tr>
            <tr>
               <td nowrap class="form_field">&nbsp;</td>
               <td align="right" nowrap class="form_field">&nbsp;</td>
               <td><br>
                  <input type="hidden" name="group" value="<%=parGroup%>">
                  <input type="hidden" name="repnum" value="<%=parRepNum%>">
                  <input type="hidden" name="action" value="true">
                  <input name="Submit" type="submit" class="form_btn" value="Submit">
               </td>
            </tr>
         </form>
      </table>
      <%   Exit Sub
   End If


   If SSsection = "BODY" Then
      Const img_Official = "<img src='images/i_locked.gif' width='7' height='10' hspace='3' align='absmiddle'>"
      If NOT CBool(Request("action")) Then Exit Sub

      If SSpkg_name = "" Then SSpkg_name = "%"
      If SSv_ext = "" Then SSv_ext = "%"

      Query_String = ReadFile( rootPath & "queries\rep_package_version_history.sql" )
      Query_String = Replace ( Query_String, "/*PKG_NAME*/", Replace( SQLstring(SSpkg_name), "*", "%") )
      Query_String = Replace ( Query_String, "/*V_EXT*/", Replace( SQLstring(SSv_ext), "*", "%") )
      %>
      <table width="100%" border="0" cellspacing="0" cellpadding="2">
         <tr>
            <td width="1%" nowrap class="body_colb" align="right">Official<%=img_Official%></td>
            <td width="1%" nowrap class="body_colb">Package Name and Version&nbsp;&nbsp;&nbsp;</td>
            <td width="1%" nowrap class="body_colb">Location</td>
            <td width="100%" nowrap class="body_colb">&nbsp;</td>
         </tr>
         <tr>
            <td colspan="4" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
         </tr>
         <%
         Dim currPv_id
         currPv_id = -1
         Set rsRep = OraDatabase.DbCreateDynaset( Query_String, 0 )

         If rsRep.RecordCount = 0 Then
            With Response
               .write "<tr>"
               .write "<td colspan='4' class='body_row'>Found 0 records</td>"
               .write "</tr>"
            End With
         End If

         While ((NOT rsRep.BOF) AND (NOT rsRep.EOF))
            ' -------- GROUP BY Package Version -----------------
            If Cstr(currPv_id) <> Cstr(rsRep("pv_id")) Then
            %>
               <tr>
               <td colspan="3" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
               <td></td>
               </tr>
            <tr>
               <td align="right"><%If rsRep("dlocked") = "Y" Then%><%=img_Official%><%End If%></td>
               <td nowrap class="body_scol"><%=rsRep("pkg_name") &" "& rsRep("pkg_version")%></td>
               <td colspan='2' class="body_scol"></td>
               </tr>
            <%
               currPv_id = Cstr(rsRep("pv_id"))
            End If
            ' -------- END GROUP ------------------------
            %>
               <tr>
               <td class="body_row"></td>
               <td class="body_row"></td>
               <%If IsNull(rsRep("rtag_id")) Then%>
                  <td nowrap class="body_txt_gray" valign="top">Not Used!</td>
               <%Else%>
                  <td nowrap class="body_row" valign="top"><%=rsRep("proj_name") &" &gt; "& rsRep("vtree_name") &" &gt; "& rsRep("rtag_name") &" &gt; <a href='dependencies.asp?pv_id="& rsRep("pv_id") &"&rtag_id="& rsRep("rtag_id") &"' class='txt_linked'>"& rsRep("pkg_name") &" "& rsRep("pkg_version") &"</a>"%></td>
               <%End If%>
               <td class="body_row"></td>
               </tr>
         <%  rsRep.MoveNext
         WEnd
         %>
         <tr>
            <td colspan="4" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
         </tr>
      </table>
      <!-- PRINT, SAVE, ETC. ------------>
      <%If parPrint = "" Then%>
         <br>
         <br>
         <span onClick="window.print();" class="pointer txt_linked"><img src="images/btn_print.gif" width="23" height="24" hspace="4" border="0" align="absmiddle">Print this report</span><br>
         <br>
      <%End If%>
      <!-- PRINT, SAVE, ETC. END -------->
      <%
      rsRep.Close
      Set rsRep = nothing
   End If

End Sub
%>

<%
'==================================================================================
' Report Name      :   Find Files within a Package
' Description      :   Locate all files in all versions of the package
' Form Input       :   Package Name, File Name ( Wild cards allowed )
'==================================================================================
Sub Find_Package_File ( SSsection, SSpkg_name, SSfile_name )
   Dim Query_String, rsRep


   If SSsection = "TITLE" Then
      Response.write "Find Files within a Package"
      Exit Sub
   End If


   If SSsection = "FORM" Then
      %>
      <table width="100%" border="0" cellpadding="2" cellspacing="1">
         <form action="<%=scriptName%>" method="post" name="repform" onSubmit="MM_validateForm('FRpkg_name','Package Name','R', 'FRfile_name','File Name','R');return document.MM_returnValue">
            <tr>
               <td width="1%" nowrap class="form_field"><img src="images/spacer.gif" width="1" height="8"></td>
               <td width="1%" align="right" nowrap class="form_field" valign="top">Package Name</td>
               <td class="form_txt"><input type="text" name="FRpkg_name" size="30" class="form_item" value="<%=SSpkg_name%>"><br>
               HINTS:<br>
               - You can use * wildcard. e.g. *0123 or 0123* or *0123*<br><br></td>
            </tr>
            <tr>
               <td nowrap class="form_field">&nbsp;</td>
               <td align="right" nowrap class="form_field" valign="top">File Name</td>
               <td class="form_txt"><input type="text" name="FRfile_name" size="10" class="form_item" value="<%=SSfile_name%>"><br>
               You can use Wildcards</td>
            </tr>
            <tr>
               <td nowrap class="form_field">&nbsp;</td>
               <td align="right" nowrap class="form_field">&nbsp;</td>
               <td><br>
                  <input type="hidden" name="group" value="<%=parGroup%>">
                  <input type="hidden" name="repnum" value="<%=parRepNum%>">
                  <input type="hidden" name="action" value="true">
                  <input name="Submit" type="submit" class="form_btn" value="Submit">
               </td>
            </tr>
         </form>
      </table>
      <%   Exit Sub
   End If


   If SSsection = "BODY" Then
      Const img_Official = "<img src='images/i_locked.gif' width='7' height='10' hspace='3' align='absmiddle'>"
      If NOT CBool(Request("action")) Then Exit Sub

      If SSpkg_name = "" Then SSpkg_name = "%"
      If SSfile_name = "" Then SSfile_name = "%"

      Query_String = ReadFile( rootPath & "queries\rep_package_version_history.sql" )
      Query_String = Replace ( Query_String, "/*PKG_NAME*/", Replace( SQLstring(SSpkg_name), "*", "%") )
      Query_String = Replace ( Query_String, "/*V_EXT*/", Replace( SQLstring(SSfile_name), "*", "%") )
      %>
      <table width="100%" border="0" cellspacing="0" cellpadding="2">
         <tr>
            <td width="1%" nowrap class="body_colb" align="right">Official<%=img_Official%></td>
            <td width="1%" nowrap class="body_colb">Package Name and Version&nbsp;&nbsp;&nbsp;</td>
            <td width="1%" nowrap class="body_colb">Location</td>
            <td width="100%" nowrap class="body_colb">&nbsp;</td>
         </tr>
         <tr>
            <td colspan="4" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
         </tr>
         <%
         Dim currPv_id
         currPv_id = -1
         Set rsRep = OraDatabase.DbCreateDynaset( Query_String, 0 )

         If rsRep.RecordCount = 0 Then
            With Response
               .write "<tr>"
               .write "<td colspan='4' class='body_row'>Found 0 records</td>"
               .write "</tr>"
            End With
         End If

         While ((NOT rsRep.BOF) AND (NOT rsRep.EOF))
            ' -------- GROUP BY Package Version -----------------
            If Cstr(currPv_id) <> Cstr(rsRep("pv_id")) Then
            %>
               <tr>
               <td colspan="3" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
               <td></td>
               </tr>
            <tr>
               <td align="right"><%If rsRep("dlocked") = "Y" Then%><%=img_Official%><%End If%></td>
               <td nowrap class="body_scol"><%=rsRep("pkg_name") &" "& rsRep("pkg_version")%></td>
               <td colspan='2' class="body_scol"></td>
               </tr>
            <%
               currPv_id = Cstr(rsRep("pv_id"))
            End If
            ' -------- END GROUP ------------------------
            %>
               <tr>
               <td class="body_row"></td>
               <td class="body_row"></td>
               <%If IsNull(rsRep("rtag_id")) Then%>
                  <td nowrap class="body_txt_gray" valign="top">Not Used!</td>
               <%Else%>
                  <td nowrap class="body_row" valign="top"><%=rsRep("proj_name") &" &gt; "& rsRep("vtree_name") &" &gt; "& rsRep("rtag_name") &" &gt; <a href='dependencies.asp?pv_id="& rsRep("pv_id") &"&rtag_id="& rsRep("rtag_id") &"' class='txt_linked'>"& rsRep("pkg_name") &" "& rsRep("pkg_version") &"</a>"%></td>
               <%End If%>
               <td class="body_row"></td>
               </tr>
         <%  rsRep.MoveNext
         WEnd
         %>
         <tr>
            <td colspan="4" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
         </tr>
      </table>
      <!-- PRINT, SAVE, ETC. ------------>
      <%If parPrint = "" Then%>
         <br>
         <br>
         <span onClick="window.print();" class="pointer txt_linked"><img src="images/btn_print.gif" width="23" height="24" hspace="4" border="0" align="absmiddle">Print this report</span><br>
         <br>
      <%End If%>
      <!-- PRINT, SAVE, ETC. END -------->
      <%
      rsRep.Close
      Set rsRep = nothing
   End If

End Sub
%>

<%
'==================================================================================
' Report Name      :   Find Files within a Package
' Description      :   Locate all files in all versions of the package
' Form Input       :   Package Name, File Name ( Wild cards allowed )
'==================================================================================
Sub Find_Package_File ( SSsection, SSpkg_name, SSfile_name )
   Dim Query_String, rsRep


   If SSsection = "TITLE" Then
      Response.write "Find Files within a Package"
      Exit Sub
   End If


   If SSsection = "FORM" Then
      %>
      <table width="100%" border="0" cellpadding="2" cellspacing="1">
         <form action="<%=scriptName%>" method="post" name="repform" onSubmit="MM_validateForm('FRpkg_name','Package Name','R', 'FRfile_name','File Name','R');return document.MM_returnValue">
            <tr>
               <td width="1%" nowrap class="form_field"><img src="images/spacer.gif" width="1" height="8"></td>
               <td width="1%" align="right" nowrap class="form_field" valign="top">Package Name</td>
               <td class="form_txt"><input type="text" name="FRpkg_name" size="30" class="form_item" value="<%=SSpkg_name%>"><br>
               You can use * wildcard. e.g. *0123 or 0123* or *0123*<br><br></td>
            </tr>
            <tr>
               <td nowrap class="form_field">&nbsp;</td>
               <td align="right" nowrap class="form_field" valign="top">Path Name</td>
               <td class="form_txt"><input type="text" name="FRfile_name" size="10" class="form_item" value="<%=SSfile_name%>"><br>
               You should use * wildcards. e.g.  /lib/*.a</td>
            </tr>
            <tr>
               <td nowrap class="form_field">&nbsp;</td>
               <td align="right" nowrap class="form_field">&nbsp;</td>
               <td><br>
                  <input type="hidden" name="group" value="<%=parGroup%>">
                  <input type="hidden" name="repnum" value="<%=parRepNum%>">
                  <input type="hidden" name="action" value="true">
                  <input name="Submit" type="submit" class="form_btn" value="Submit">
               </td>
            </tr>
         </form>
      </table>
      <%   Exit Sub
   End If


   If SSsection = "BODY" Then
      If NOT CBool(Request("action")) Then Exit Sub

      If SSpkg_name = "" Then SSpkg_name = "%"
      If SSfile_name = "" Then SSfile_name = "%"

      Query_String = ReadFile( rootPath & "queries\rep_package_file_find.sql" )
      Query_String = Replace ( Query_String, "/*PKG_NAME*/", Replace( SQLstring(SSpkg_name), "*", "%") )
      Query_String = Replace ( Query_String, "/*FILE_NAME*/", Replace( SQLstring(SSfile_name), "*", "%") )
      %>
      <table width="100%" border="0" cellspacing="0" cellpadding="2">
         <tr>
            <td width="1%" nowrap class="body_colb">Package Name and Version&nbsp;&nbsp;&nbsp;</td>
            <td width="1%" nowrap class="body_colb">Location</td>
            <td width="100%" nowrap class="body_colb">&nbsp;</td>
         </tr>
         <tr>
            <td colspan="3" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
         </tr>
         <%
         Dim currPv_id
         currPv_id = -1
         Set rsRep = OraDatabase.DbCreateDynaset( Query_String, 0 )

         If rsRep.RecordCount = 0 Then
            With Response
               .write "<tr>"
               .write "<td colspan='3' class='body_row'>Found 0 records</td>"
               .write "</tr>"
            End With
         End If

         While ((NOT rsRep.BOF) AND (NOT rsRep.EOF))
            ' -------- GROUP BY Package Version -----------------
            If Cstr(currPv_id) <> Cstr(rsRep("pv_id")) Then
            %>
               <tr>
               <td colspan="3" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
               <td></td>
               </tr>
            <tr>
               <td nowrap class="body_row" valign="top"><a href="dependencies.asp?pv_id=<%=rsRep("pv_id")%>" class="txt_linked"><%=rsRep("pkg_name") &" "& rsRep("pkg_version")%></a></td>
               <td colspan="2" class="body_scol"></td>
               </tr>
            <%
               currPv_id = Cstr(rsRep("pv_id"))
            End If
            ' -------- END GROUP ------------------------
            %>
               <tr>
               <td class="body_row"></td>
                  <td nowrap class="body_row" valign="top"><%=rsRep("filename")%></td>
               <td class="body_row"></td>
               </tr>
         <%  rsRep.MoveNext
         WEnd
         %>
         <tr>
            <td colspan="4" background="images/bg_rep_line.gif"><img src="images/spacer.gif" width="1" height="1"></td>
         </tr>
      </table>
      <!-- PRINT, SAVE, ETC. ------------>
      <%If parPrint = "" Then%>
         <br>
         <br>
         <span onClick="window.print();" class="pointer txt_linked"><img src="images/btn_print.gif" width="23" height="24" hspace="4" border="0" align="absmiddle">Print this report</span><br>
         <br>
      <%End If%>
      <!-- PRINT, SAVE, ETC. END -------->
      <%
      rsRep.Close
      Set rsRep = nothing
   End If

End Sub
%>