Search.csp

To download the CSP files from this tutorial, click TutorialSamples.zip. For more information, see Code examples.

<%@ Language=JavaScript%>

<HTML>

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">

<link REL=STYLESHEET TYPE='text/css' HREF='tut.css'>

<BODY>

<!-- #include file=RetrieveIStore.csp -->

<!-- #include file=helper_js.csp -->

<%



function SearchForReport(SearchString ,IStore)

{

//This function searches for a report that contains the

//sub string, SearchString, and returns an HTML table

//that is populated with the report name,

//report description, and the last time it was modified.


//Precondition:

//SearchString - The string that will help identify the report

//IStore - The InfoStore object required to interface with the server.


//Postcondition:

//Returns an empty string if there are no reports, null if an error occurred, and

//the string if successful.



//Notes:

//The function returns a string that is an HTML table.


    //The query that will select the reports and report instances.

    var Query;  

    //The result of the query.

    var Result;

    //A string to hold the HTML table.

    var HTMLTable;

    HTMLTable="";

    var StrCSearch;


    StrCSearch = SearchString;

            

    //Create a query that selects all the reports, and the instances.

    Query = "Select SI_NAME, SI_ID, SI_DESCRIPTION, SI_UPDATE_TS, SI_PARENT_FOLDER " +

    "From CI_INFOOBJECTS Where SI_PROGID='CrystalEnterprise.Report' And SI_NAME LIKE '%" + StrCSearch + "%'";

        

    //Query the server.

    try {

        Result = IStore.Query(Query);

    }

    catch(e) {

        return null;

    }

        

    if ( Result.Count > 0 )

    {

        //Set up the table header.

        HTMLTable="<TABLE Border=0 Width = \"100%\"><TR><TD><B>Name</B></TD>" +

            "<TD><B>Description</B></TD>" +

            "<TD><B>Last Modified</B></TD></TR>" ;

                

        var oReport;

        var k;

        //For Each oReport in Result

        for(k=1;k<=Result.Count;k++)

        {

            //Add the report name and details to the table.

            HTMLTable=HTMLTable +

                "<TR  valign=top><TD>" +

                "<A HRef='ReportDescription.csp?ReportID=" + Result.Item(k).ID +

                "&FolderID=" + Result.Item(k).Properties.Item("SI_PARENT_FOLDER") +

                "' Target='Main'>" + Result.Item(k).Title + "</A></TD>" +

                "<TD>" + Result.Item(k).Description + "</TD>" +

                "<TD>" + Result.Item(k).Properties.Item("SI_UPDATE_TS") + "</TD></TR>";

        }

        HTMLTable=HTMLTable+"</TABLE>";

    }

    return (HTMLTable);

}

function RedirectWithFrames(URL)

{

    Response.Write ("<script language=javascript>open (\""+URL+"\",\"_top\");</script>");

}

var Result;

var IStore;

var Error;

var SearchString;


//Retrieve the search string from the search form.

SearchString = Request.Form.Item("SearchString");


//Try to retrieve the InfoStore object.

IStore = RetrieveIStore();

if ( IStore==null )

    //If it failed, redirect the user to the logon page.

    RedirectWithFrames ("LogonForm.csp");

else

{

    var HTMLTable;

    HTMLTable = SearchForReport(SearchString, IStore,Error);

    if (HTMLTable!=null)

    {

        Response.Write ("<B>Report Listing</B><BR><BR>");

        if ( HTMLTable != "" )

            Response.Write( HTMLTable);

        else

            Response.Write ("No reports were found.");

    }

    else

        Response.Write ("There was an error trying to retrieve the reports.");

}


%>

</BODY>

</HTML>



Crystal Decisions, Inc.
http://www.crystaldecisions.com
Support services:
http://support.crystaldecisions.com