クライアントサイドで提供されているWebServicesを使用してSharePoint 2007システムからレポートを作成しています(これはすべて開発者の制限によるものです。エクササイズはSharePointデザイナーでは非常に簡単です)。XSL、クライアント側のJavaScript変数へのアクセス
現在、私は作業報告書を持っています。 JavaScriptでは、WebサービスへのCAMLクエリを生成するために使用される3つのパラメータ(「開始日」、「終了日」および「ビジネスカテゴリ」)を渡します。 XMLレスポンスが返され、(一部の書式のクリーンアップ後に)XSLTがインポートされ(外部ファイル)、直接適用され、その結果がページのDIVにポンピングされます。すべてうまくいく。
しかし、私は実際に入力パラメータ(日付とカテゴリ)をレポートに表示したいと思います。これを行うには少なくとも2つのkludgyオプションがあります。
1)ディスプレイDIVの外に値を出力します。これはうまくいくでしょうが、それほど有用ではありません。
2)XSLの値のプレースホルダーを表示してから、表示する前に一連の置換を実行します。これはただ気分が...奇妙です。
3)変換前のXMLパケットにノードを手動で追加し、XSLTで通常の値にアクセスします。これは私にとっては一番きれいだと思われますが、荷物もいくつか持っています。
これを行う「正しい」方法はありますか?いずれにせよ、それはどれですか? 、あなたがJavaScriptでXSLTにパラメータを渡すことができ
// Set the URL of the XSL to apply
reportXSLURL = "BusinessCategoryReport.xsl";
// Set the input variables.
var CurCategory = DP_QueryString.get("ForCategory", "first");
var CurFrom = DP_QueryString.get("ForFrom", "first");
var CurTo = DP_QueryString.get("ForTo", "first");
* * Soap Call Censored (Too Hot for the Internet) * *
// Load the data
function ProcessResponse(ResponseText) {
// Create and load the serviceXML
var serviceXML = new DP_XML();
serviceXML.parse(ResponseText);
// Create and Load the XSL
var reportXSL = new DP_XML();
reportXSL.load(reportXSLURL);
// Clean Up
CleanSharePointColumn(serviceXML.Doc, "ows_Duration", "CalculatedField");
CleanSharePointColumn(serviceXML.Doc, "ows_Incident_x0020_Manager_x0028_s_x", "UserList");
CleanSharePointColumn(serviceXML.Doc, "ows_Application_x0020__x0028_EAI_x00", "LookupList");
CleanSharePointColumn(serviceXML.Doc, "ows_Business_x0020_Category", "LookupList");
CleanSharePointColumn(serviceXML.Doc, "ows_Incident_x0020_Start", "DateTime_Min");
CleanSharePointColumn(serviceXML.Doc, "ows_Incident_x0020_End", "DateTime_Min");
// Present the Results
document.getElementById("DataDisplay").innerHTML = serviceXML.Doc.transformNode(reportXSL.Doc);
};