Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

[ Image Removed |../../index.htm#lansa/l4wdev06_0120.htm]
現在地:

...

アプリケーションにユーザーが変更する可能性があるオプションや選択肢がある場合は、記録して一度だけ変更する必要があるか確認します。

同様に、ユーザーがアプリケーションを起動したときに、最後にアプリケーションを使用したときに操作したものと同じデータで操作を続行する必要がある場合があります。これを簡単に実現するために、最後に終了したときに表示されていたデータでアプリケーションを起動する必要があります。

Windowsリポジトリに設定を保存

フォームの情報をレジストリに保存し、後に取得するには、Changeコマンドと、特別に記憶されている以下の値のいずれかを使用します。

*remembered_value_for_user

特定のユーザーが最後にこのフォームを実行したときのフィールドの値を返します。

*remembered_value_for_user_in_system

特定のユーザーが最後に任意のフォームまたはこのフィールドを含むファンクションを実行したときのフィールドの値を返します。

*remembered_value_for_function

最後にこのフォームが実行されたときのフィールドの値を返します。

*remembered_value_for_system

最後にフィールドを含む任意のフォームまたはファンクションが実行されたときのフィールドの値を返します。

Changeコマンドをこれらの値の1つではじめて実行するときに、対象のフィールドの最後の値のレジストリ・エントリーが作成されます。 注:これらの値はWebインターフェースでは利用できません。セキュリティ上の理由により、Webインターフェースからはレジストリ設定にアクセスできないからです。

Note

注:これらの値はWebインターフェースでは利用できません。セキュリティ上の理由により、Webインターフェースからはレジストリ設定にアクセスできないからです。

サンプル・アプリケーションを使用し、社員番号に基づいて社員の名前を取得します。 Image Removed

Image Added
 
アプリケーションが起動すると、アプリケーションが最後に終了されたときに表示されていた社員が表示されます。値はこのコードを使用して取得されます。 EVTROUTINE handling

     EVTROUTINE handling(#com_owner.Initialize)

...

        CHANGE FIELD(#EMPNO #GIVENAME #SURNAME) TO(*remembered_value_for_function)

...


ENDROUTINE

フォームのサイズと位置の記憶

これと同じ方法を使用してフォームの位置とサイズを記憶することができますが、最初に情報を保存するフィールドを作成する必要があります。 Define #top *dec 7 0 Define #left *dec 7 0 Define #width *dec 7 0 Define #height *dec 7 0  
それからこれらのフィールドの最後の値を取得し、Initializeイベントでフォームの適切なプロパティに割り当てる必要があります。
EVTROUTINE handling

     Define #top *dec 7 0
Define #left *dec 7 0
Define #width *dec 7 0
Define #height *dec 7 0

それからこれらのフィールドの最後の値を取得し、Initializeイベントでフォームの適切なプロパティに割り当てる必要があります。

     EVTROUTINE handling(#com_owner.Initialize)

...


   CHANGE FIELD(#top #left #width #height) TO(*remembered_value_for_function)

...


   Set #com_owner top(#top)

...

 left(#left)

...

 width(#width)

...

 height(#height)

...


ENDROUTINE

アプリケーションが終了したときにこれらの4つのプロパティの現在の値をフィールドに保存するには、以下のように指定する必要があります。 EVTROUTINE handling

     EVTROUTINE handling(#com_owner.closing)

...


   Change #top    #com_owner.top

...


   Change #left   #com_owner.left

...


   Change #width  #com_owner.width

...


   Change #height #com_owner.height

...


Endroutine

コードの簡略化

アプリケーションで記憶するすべてのフィールドをグループ化してコードを簡略化できます。例えばそのグループを#Rememberと呼ぶことができるでしょう。

     group_

...

by name(#remember)

...

 fields(#top #left #width #height #empno #givename #surname)

 
そしてこの行を追加してフォームのイベントを初期化するだけです。 Change #remember 

     Change #remember *remembered_value_for_user

...

すべてのフォームの記憶

STD_FORMコンポーネントの設定を記憶するために必要なコードを追加し、新しいフォームを作成するたびに使用する場合があります。詳細は「デフォルトのコンポーネントの動作の変更」を参照してください。
[ Image Removed |../../index.htm#lansa/l4wdev06_0120.htm]