我有一個名爲Pathname的文檔項,它是包含數據庫路徑的文本列表。我需要創建一個視圖,僅包含特定文檔,其中包含Pathname項目中的特定數據庫路徑。 我嘗試了這些聲明,但沒有一個工作:如何在Lotus公式中使用@Contains和@Implode
1. @isMember( 「Databasepath」,路徑名)
2. @Contains(@Implode(路徑名); 「Databasepath」)
感謝您的任何建議。
我有一個名爲Pathname的文檔項,它是包含數據庫路徑的文本列表。我需要創建一個視圖,僅包含特定文檔,其中包含Pathname項目中的特定數據庫路徑。 我嘗試了這些聲明,但沒有一個工作:如何在Lotus公式中使用@Contains和@Implode
1. @isMember( 「Databasepath」,路徑名)
2. @Contains(@Implode(路徑名); 「Databasepath」)
感謝您的任何建議。
代碼中沒有必要使用「implode」。
如果路徑名看起來像這樣:
apps\database1.nsf; apps\database2.nsf; mail\mailfile1.nsf;
,並要過濾掉所有的「應用程序」的路徑,則公式是這樣的:
@Contains(PathName; "apps\\")
不要忘記複製反斜槓,如果你「硬編碼」它們,因爲它們是轉義字符。
但現在想想含路徑名:
localapps\db1.nsf; apps\db2.nsf; local\apps\db3.nsf
然後上面的公式將選擇所有條目。在這種情況下,這個公式會更好:
@Contains("#" + PathName; "#apps\\")
或(如果給定的路徑總是開頭):
@Begins(PathName; "apps\\")
如果它是一個真正的文本列表(即「路徑1 \ DB1。 nsf「:」Path2 \ Db2.nsf「:」Path3 \ Db3.nsf「),那麼您應該只能使用equals運算符,因爲如果標量與任何一個標量匹配,則標量與列表值的比較返回true列表值。公式語言語義的這個細節實際上使@Contains的許多用法變得不必要!
也就是說,它應該是這麼簡單
SELECT Pathname = "Path1\\Db1.nsf";
,或者如果路徑名尚未標準化時,則
SELECT @uppercase(Pathname) = "PATH1\\DB1.NSF";
這已經有一段時間,但我好像記得'@ Contains'可以直接接受文本列表作爲參數。請注意,它是區分大小寫的。 – 2014-10-10 07:51:49