2012-01-12 6 views
1

私はパーセンテージ(完全)を表示するヘッダを追加できるように、XSLTに変換したSP Dataviewを持っています。
dvwpをxsltに変換する前に、2つのカウントヘッダーを追加しました.1つはCompleteに、もう1つはLastNameに追加しました。彼らはすばらしく働いて、レコードの数とレコードの数を完全なフィールドの値で表示しました。しかし、私はdvをxsltに変換すると、私は私のヘッダーを失ったことに気づきました:(

xsltを使ってそれらを追加しています。私の完全な分野であるはい値の合計#を取得SPリストフィールドを使用するXSLTの方程式

UPDATE1:?
このhttp://www.endusersharepoint.com/STP/viewtopic.php?f=14&t=534を発見し、それを試してみました、しかし、次のエラー - の原因となるプロセッサのスタイルシートの設定に失敗しました:0x80004005が:引数1を返す必要があります。ノードセット - >カウント(/ dsQueryResponse/Rows/Row = 'Y')< -

UPDATE2:
Completeは、自分のXSLTデータセットを持つフィールドの名前です。戻り値の型はYかブランクのいずれかです。私は<xsl:value-of select="count(/xpath/to/parent/element[@Complete eq 'Y']) div count($Rows)" />を試しましたが、次のエラーが表示されました。プロセッサスタイルシートの設定に失敗しました:0x80004005: '' ''トークン ''が見つかりました 'NAME'.count(/ xpath/to/parent/element [@Complete - > eq < - -'Y '])div要素数($行)/wの問題があるかもしれないことを考えることを始めています '私のXML演算子を参照.... EQ' ...

Update3と:

<xsl:value-of select="count(/xpath/to/parent/element[@Complete = 'Y']) div count($Rows)" /> 

これはまだ0と言われていますが、正解を示していない理由は、整数を表示することを期待していると思います式から返されるは、XPathで式をいじるされている...小数をすることになるだろう...ここで私は

count(/xpath/to/parent/element[@Complete = 'Y']) div count($Rows)*100 
(count(/xpath/to/parent/element[@Complete = 'Y']) div count($Rows))*100 
100(count(/xpath/to/parent/element[@Complete = 'Y']) div count($Rows)) 

UPDATE4 tried-てきたものだ:
は、だから私は私の前を知っていますXPathとXSLT 1.0のすべての数値は浮動小数点数なので、浮動小数点数を表示していない正しい数は正しくないと考えました。 Reference

UPDATE5:さらに調査時
、私はこれではなく、値の0を返しているような問題は、私の式のcount(/xpath/to/parent/element[@Complete = 'Y'])一部であることを見出しました。私は私のデータから来ているように、これらのノードが呼び出されるかわからない*

<records*> 
<record*> 
    <last_name></last_name> 
    <first_name></first_name> 
    <mi></mi> 
    <office_symbol></office_symbol> 
    <geo_location></geo_location> 
    <complete></complete> 
    <date_complete></date_complete> 
    <date_expires></date_expires> 
    <email></email> 
    <supervisor></supervior> 
</record*> 
</records*> 

UPDATE6 [私は完全COLに少なくとも3「Y」ヴァルスを持って知っています]データベースではなくxmlファイルには、私はちょうど、レコード/レコードの私の元の質問に戻って

UPDATE7
を作りました。私はまだ完全なノード= Yのところにある親の数(上記のXML iのレコード)を表示するXPath方程式を見つけようとしています。

UPDATE8
Ok。だから私はhttp://www.w3schools.com/xsl/tryxslt.asp?xmlfile=cdcatalog&xsltfile=tryxsl_value-ofを使って編集してテストしました。 Complete Xの数を計算するためのXSLTは<xsl:value-of select="count(catalog/cd [complete = 'Y'])" />です。したがって、私はW3schoolsで動作するものを自分のSP Dataviewに入れて何も得ません。ちょうど空きスペースです。 SPDVでコードが動作しないのはなぜですか?

答えて

0

あなたの「完全」フィールドが要素の場合:

<xsl:value-of select="count(/xpath/to/parent/element[@complete eq 'Yes'])"/> 

私はできませんあなたのXMLの構造を知らなくても:あなたの完全なフィールドは、要素の属性がある場合は

<xsl:value-of select="count(/xpath/to/complete/field/element[string(.) eq 'Yes])"/> 

特定のXPATHが必要です - 述語 "[]"は "Yes"の値だけを選択するものです

+1

この回答ではXPath 2.0を使用しているようです。しかし、Sharepointで使用されるXSLTプロセッサはXSLT 1.0であり、XPath 2.0はサポートされていません(AFAIK)。 –

+0

@ Murray-私はCompleteが要素ノードであると判断しました... – jg100309