﻿/**
  * $Header: /Web36/WebObjects/RSUtils.js 7     16.07.04 11:48 Mp $
  * ----------------------------------------------------------------
  * RSUtils.js
  * Copyright by AP AG 2002-2004
  * Sammelung aller gemeinsamen Client-Funktionen
  * für den report-Server
  * ----------------------------------------------------------------
  * 01.03.2001 GWI created
  * ----------------------------------------------------------------
  */

P2Service.use("rserver", "../WebObjects/Reporting.asmx");

/**
* Ermittelt den Hauptanteil einer URL für den Reportingsrever.
*/
function getMainURLForRS()
{
  try {
  return (P2Service.rserver.getMainURLForRS());
     } catch (exept) {
     nlsInfo(exept.description);
   }
}

/**
* Liefert die Standard-Parameter für den Reporting Server.
*/
function getURLExtendedParamsForRS()
{
  try {
  return (P2Service.rserver.getURLExtendedParamsForRS());
     } catch (exept) {
     nlsInfo(exept.description);
   }
}

/**
* Ermittelt den P2plus ServerName und liefert ihn zurueck.
*/
function getServerName()
{
  try {
  return (P2Service.rserver.getServerName());
     } catch (exept) {
     nlsInfo(exept.description);
   }

}

/**
* Ermittelt den P2plus WebName und liefert ihn zurueck.
*/
function getWebName()
{
  try {
  return (P2Service.rserver.getWebName());
     } catch (exept) {
     nlsInfo(exept.description);
   }
}

/**
* Liefert den String für das PDF Format
*/
function getParamPDF()
{
  return "&rs:Format=PDF";
}

/**
* Liefert den String für das PDF Format
*/
function getParamHTML()
{
  return "&rs:Format=HTML4.0";
}


/**
  * Erweitert die URL um das Sprachverzeichnis.
  * Ermittelt das aktuelle Sprachverzeichnis und liefert ihn zurueck.
  */
function getNlsDir()
{
  var nlsdir = "";
  var lng = "";
  
  try {
    lng = P2Service.rserver.getUILng();
    if (lng != "") {
      nlsdir = "/_nls_" + lng;
    } // if 
  } catch (exept) {
    nlsInfo(exept.description);
  } // try
  
  return nlsdir;
} // getNlsDir


/** 
  * Öffnet eine Liste aus einer Rec-Seite heraus
  * @param reportpath, relativer Pfad des Reports ohne MIME-Typ: "/ReportDateiname"
  * @param paramname, Name des Reportparameters: bei xxxList.rdl meist 'where'
  * @param paramval, Wert des Reportparameters, kann komplexe Where-Bedingung enthalten
  * @param reportorder, orderby-Merkmal
  * @param format, "pdf" oder "html"  
  * @return Url zum Report
  */
function getReportRecLink(reportpath, paramname, paramval, reportorder, format)
{
  var urlstr = getMainURLForRS() + getNlsDir() + reportpath + getURLExtendedParamsForRS();
  
  if (!format) {
    // format = "pdf"; 
    format = popUpMenu("pdf:PDF,html:HTML4.0"); // nonls
  } // if
  urlstr += (format == "pdf" ? getParamPDF() : getParamHTML());
  if (reportorder) {
    urlstr += "&orderby=" + reportorder;
  } // if
  if (paramname) {
    urlstr += "&" + paramname + "=" + codeQS(decodeURI(paramval));  
  } // if
  return (urlstr);
} // getReportRecLink




