0

SHAREABLE EDITでうまく機能するこのコードを見つけました:

// Attribute DXL for locked objects
if (isLockedByUser(obj))
{
obj.attrDXLName = "LOCKED"
}

そして追加しました:

else
{
obj.attrDXLName = "unlocked"
}

しかし、else条件は機能しません (if部品は同じように機能します)。私は何が欠けていますか?DXL でのコーディングは初めてですが、C の経験があります。編集:elseロック解除されたアイテムではおそらく状態を更新できないことがわかったので、表示されません。

残りの質問は、Exclusive Edit で機能しないのはなぜですか? isLockedByUserそのレベルでロックされているため、代わりにモジュールをチェックする必要がありますか?

// Attribute DXL for locked objects
if (isLockedByUser(obj) or isLockedByUser(current))
{
obj.attrDXLName = "LOCKED"
}

...どちらも機能しません。繰り返しますが、共有編集では機能しますが、排他的編集では機能しません。

このフィールドを Exclusive Edit で機能させる方法についての提案はありますか?

4

1 に答える 1

0

isLockedByUser の DXL リファレンス マニュアル (Chapter 36: General Functions > Locking) では、次のように説明されています。

bool isLockedByUser(Object o)

編集共有可能モードのときに、指定されたオブジェクトが現在のユーザーによってロックされている場合は true を返します。それ以外の場合は false を返します。

この関数は、現在のユーザーが特定のオブジェクトを変更できるかどうかを確認することとは異なります。

私の推測では (私自身は DXL によるロックを扱ったことはありません)、 isLockedByUser はモジュールが共有編集モードの場合にのみ意味を持つため、実行しようとしていることを別の方法で行う必要があるかもしれません。

于 2016-09-08T16:36:25.747 に答える