2

私はNotesプログラマーではありませんが、私の罪のために、最近、社内プロジェクトのいくつかのNotes機能に取り組んでいます。状況に応じて、フィールドの編集を有効/無効にする必要があります。私にはかなり標準的な機能のように思えますが、これを行う方法についての情報はどこにも見つかりません。

フォーム設定(および他のフィールドのonchange)コードでは、次のようになります。

if some requirement = true then
    textField.enable = true
else
    textField.enable = false
end if

あるコードに基づいて条件付きで段落を非表示にする回避策がある他の場所を見てきました。1つは編集可能なフィールド、もう1つは計算フィールドで、反対の非表示条件を持つ2つの段落があります。ただし、これがどのように実装されているかを確認するには、Notesについて十分に理解していません(他のフォームで実行されていることは確認できますが、Notes内には、表示できない、または取得できない「魔法の」ステップがあるようです。 )。

[編集]カーからの返信は私が探しているもののようですが、それでもInputEnabledプロパティがどこにあるのかわかりません。最初の質問で言ったはずですが、私はNotes7.0.3を使用しています。

公平を期すために、フィールドを有効/無効にするタイミングは関係ありません。設定されるのはブール条件であり、私の場合はフォームの読み込みのみであるため、この動的な変化について心配する必要はありません。フォームが表示されている間。

私はNotesにいくつかの問題を抱えています。私の最大のバグベアは、DesignerUIに非常に緊密に結びついていることです。ほとんどのGUI言語(C#、Java、Delphi、さらにはVB)でこの種のことをプログラムで実行できますが、Notesでプロパティボックスを開いて正しく設定する必要があります。

これはオプションの方法としては問題ありませんが、この方法を強制すると、この場合はIDEで可能な範囲でしか機能できず、ここのIDEは積極的に機能しているように見えます。複数の関数/スクリプトを開くことはできません。左側のメニューに戻らずに、あるスクリプトから別のスクリプトに切り替えることはできません。コードベースで変数/フィールドの出現を簡単に検索することはできません(そして私を信じてください、これ私の場合、Notesまたは内部コードベースのいずれかがグローバル変数を多用しているように見えるため、これは私にとって大きな失敗です!)、表示されるプロパティボックスを介してのみフィールドを操作でき、でコードを編集することはできませんメインのNotesクライアントを介してデバッグ中のDesigner。

コーディングのJava側はLotusScriptよりも優れていますが、それでもかなりくだらないです(なぜ、Javaコードにデバッグできないのですか?? JavaクラスごとにJARファイルを再インポートする必要があるのはなぜですか、クラスごとに異なるCLASSPATHがありますか? ???)。おそらくこれはNotes8で改善されたと思いますが、Eclipseに基づいていると聞きました。これが本当かどうか誰かが知っていますか?

4

2 に答える 2

0

「状況」に関する詳細を聞くと役立ちますが、これを処理する最も一般的な方法は、有効/無効にするフィールドで数式を非表示にすることです。

技術的には、フィールドを有効または無効にするのではなく、非表示にするだけですが、通常はそれでも同様に機能します。

Notesで使用するイベントはほとんどないため、開発者は通常、ドキュメントの更新を「イベント」として使用して、フィールドを非表示または表示します。

TriggerFieldとSubjectという2つのフィールドがあると仮定します。また、TriggerFieldの値に基づいてサブジェクトを無効にしたいとします。これを行う最も簡単な方法は、TriggerFieldをダイアログリストタイプとして設定し、[キーワードの変更時にフィールドを更新する]オプションをオンにすることです。これは、ダイアログリストの値が変更されると、ドキュメント全体が更新されることを意味します。

次に、[件名]フィールドの数式を非表示にするときに、そのフィールドをいつ表示または非表示にするかの基準を指定します。フィールド値が変更された後、ドキュメント(つまりフォーム)が更新されると、数式が再評価されるときに非表示になります。

状況に応じて、この問題を解決する方法は他にもあります。ユーザーが自分でフォームを更新できるようにする場合は、@ Command([ViewRefreshFields])コマンドを呼び出すボタンをフォームに配置します。フォームに他の変更を同時に加えたい場合は、refreshコマンドの前にそのボタンに他の数式を追加できます。

別のオプションは、特定のフィールドを表示専用にすることです。次に、LotusScriptを実行するボタンを作成して、ユーザーがその表示専用フィールドを変更できるようにします。スクリプトでは、ユーザーに値を指定し、表示専用フィールドを設定してから、ドキュメントの更新を呼び出すことができます。

于 2008-12-18T18:32:35.010 に答える
0

ND7 以降で、フィールドの入力を無効にするだけの場合は、無効にするフィールドの InputEnabled セクションに適切な式を記述します。

したがって、Trigger と呼ばれる 2 つのフィールド、値が "On" のチェックボックス、およびテキスト フィールドであるもう 1 つの Subject があります。トリガーがチェックされている場合、値のサブジェクトを有効にする必要があります。

フィールド Subject の Input Enabled 要素に次の式を入力するだけです。

Trigger = "On"

また、トリガーの値が変更されるたびにこれを再計算したいので、トリガー フィールドで [キーワードの変更時にフィールドを更新する] オプションを選択します。

古いバージョンで立ち往生している場合は、段落を適切に非表示にする必要があります。

于 2008-12-18T18:54:50.083 に答える