4

@DbName() を使用して、メモ データベースの名前とファイルパスを取得しています。残念ながら、ファイルパスと名前はスラッシュなしの 1 つの文字列として返されます。たとえば、ファイルパスが「Dir1/Dir2/dbname.nsf」の場合、「Dir1Dir2dbname.nsf」として返されます。スラッシュを含むファイルパスを取得する方法はありますか?

4

3 に答える 3

3

@DBName() 関数呼び出しは、リスト配列として使用する必要があります。次のサンプルでは、​​使用方法と得られる出力について詳しく説明します。

コード

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
    <xp:table><xp:tr>
    <xp:td>
        <xp:label value="Field 1 (@DbName as a string) " id="label1">
        </xp:label>
    </xp:td><xp:td>
        <xp:text escape="true" id="computedField1" value="#{javascript:return @DbName();}">
        </xp:text>
    </xp:td>
    </xp:tr><xp:tr>
    <xp:td>
        <xp:label value="Field 2 (@DbName used as list)" id="label2">
        </xp:label>
    </xp:td><xp:td>
        <xp:text escape="true" id="computedField2">
        <xp:this.value><![CDATA[#{javascript:var database = @Subset(@DbName(), -1);
            var server = @Name("[CN]", @Subset(@DbName(), 1));
            return database + " on " + server
            }]]></xp:this.value>
        </xp:text>
    </xp:td></xp:tr>
    </xp:table>
</xp:view>

出力

Field 1 (@DbName as a string)   CN=testserver/O=testorg,subdir\Test.nsf
Field 2 (@DbName used as list)  subdir\Test.nsf on testserver

これらの結果が得られない場合は、質問をサンプル コードで更新してください。

もう 1 つの確認事項は、「\」がコード内でエスケープ文字として変換されているかどうかです。

于 2013-05-16T07:03:36.780 に答える
1

これを計算フィールドに入れていますか、それとも数式で使用していますか? ここに別の方法があります。

database.getFilePath()

それはあなたにDir/dbnameを与えるはずです

于 2013-05-15T16:25:42.330 に答える