13 people following this project (follow)

Overview arrow_sm.gif Code Sample arrow_sm.gif Contributors

Overview

The SQL Server Reporting Services (SSRS) SDK for PHP is a library that uses the SQL Server Reporting Services SOAP APIs to enable PHP developers to leverage the SSRS Business Intelligence/Reporting features in their application.

The library is designed to make simple for developers to call the SSRS remote APIs to perform the following operations:
  • Query for the list of reports available on the server
  • Query for the list of parameters required for each report with the list of valid values
  • Query the list of Formats supported by the Server
  • Execute a Report

Additional links and information can be found on the Interoperability Bridges website: http://www.interoperabilitybridges.com/projects/sql-server-reporting-services-sdk-for-php

getreports-example.jpg

Code Sample

// include the SSRS library
require_once 'SSRSReport.php';

define("REPORT", "/AdventureWorks 2008 Sample Reports/TopStoresBegin");
$settings = parse_ini_file("app.config", 1);
// Create a connection to the SSRS Server
$rs = new SSRSReport(new Credentials($settings["UID"], $settings["PASWD"]),$settings["SERVICE_URL"]);

// Load the report and specify the params required for its execution
$executionInfo = $rs->LoadReport2(REPORT, NULL);
$parameters = array();
$parameters[0] = new ParameterValue();
$parameters[0]->Name = "ProductCategory";
$parameters[0]->Value = "1";
$parameters[1] = new ParameterValue();
$parameters[1]->Name = "StartDate";
$parameters[1]->Value = "1/1/2003";
$parameters[2] = new ParameterValue();
$parameters[2]->Name = "EndDate";
$parameters[2]->Value = "12/31/2003";
$parameters[3] = new ParameterValue();
$parameters[3]->Name = "ProductSubcategory";
$parameters[3]->Value = "2";
$rs->SetExecutionParameters2($parameters);

// Require the Report to be rendered in HTML format
$renderAsHTML = new RenderAsHTML();

// Set the links in the reports to point to the php app

$renderAsHTML->ReplacementRoot = getPageURL();

// Set the root path on the server for any image included in the report
$renderAsHTML->StreamRoot = './images/';

// Execute the Report
$result_html = $rs->Render2($renderAsHTML,
                                 PageCountModeEnum::$Actual,
                                 $Extension,
                                 $MimeType,
                                 $Encoding,
                                 $Warnings,
                                 $StreamIds);

// Save all images on the server (under /images/ dir)
    foreach($StreamIds as $StreamId)
    {
        $renderAsHTML->StreamRoot = null;
        $result_png = $rs->RenderStream($renderAsHTML,
                                    $StreamId,
                                    $Encoding,
                                    $MimeType);

        if (!$handle = fopen("./images/" . $StreamId, 'wb'))
        {
            echo "Cannot open file for writing output";
            exit;
        }

        if (fwrite($handle, $result_png) === FALSE)
        {
            echo "Cannot write to file";
            exit;
        }
        fclose($handle);
    }
// include the Report within a Div on the page
echo '<html><body><br/><br/>';
echo '<div align="center">';
echo '<div style="overflow:auto; width:700px; height:600px">';
    echo $result_html;
echo '</div>';
echo '</div>';
echo '</body></html>';


Contributors

Persistent.jpg
Microsoft is the project sponsor and provides architectural guidance and best practices for this SDK. Persistent Systems Ltd. is an award-winning technology company specialized in software product development services. The Company’s proven processes for entire product lifecycle helps customers increase revenue, margin and enhance brand value.

Last edited Apr 9 2010 at 5:37 PM by jccim, version 10