CLRL(nn|*END)

カテゴリー
画面ビルド
追加情報
CLRL レコードは、デフォルトで不透明な背景をもつ画面の層をオーバーラップさせることによりサポートされます。 これは標準以外の振る舞いですが、ブラウザー環境で十分満足できるものです。CLRL 層の背景カラーは、ユーザー選択のスタイルと同じになります。不透明な背景カラーのスタイルを使用する必要があります。そうでないと、基本レコードのテキストが表示されて、オーバーラップした層からのデータと同じ位置に表示されることがあります。デフォルト層の背景を変更する場合、 /WebContent/webfacing/styles/apparea ディレクトリーの下にある apparea.css ファイルの wf_layer スタイル・クラスを更新できます。

アプリケーションが入力を要求する位置 (レコードの上部および下部) にある行を出力専用の CLRL レコードで占めることも可能ですが、このようにしてしまうと WebFacing での作業に支障が生じます。 CLRL レコード全体が不透明になってレコード下部のオーバーラップしている部分が隠されてしまい、 その部分をクリックできなくなるためです。このサポートされないシナリオを回避するには、出力専用の CLRL レコードを 2 つのレコードに分割する必要があります。そのレコードにはそれぞれ、入力レコードの上部および下部のフィールドを含めてください。

CLRL キーワードは WINDOW キーワードのレコード様式ではまだサポートされず、無視されます。

CLRL 付きのウィンドウ・シミュレーション: CLRL(*NO) または CLRL(nn) キーワードをウィンドウのようなレコードを DDS にインプリメントするために使用する場合は、 WebFacing はこの共通の使用をサポートするためにそのレコード様式のウィンドウを構成しようとします。 CLRL(nn) では、nn は、ウィンドウとしてそれを認識するためにそのレコード長より小さくなければなりません。

レコードをウィンドウとして認識するためには、ウィンドウにするつもりの長方形エリアの外側にフィールドがあってはなりません。ファンクション・キー・ラベル (または他の必須ではない定数) をウィンドウ・エリアの外側に定義した開発者の次善策は、Web 設定を使用してこれらのフィールドを非表示にすることです。WebFacing はこれらの Web 設定を考慮し、長方形を適切に検出します。

CLRL ウィンドウ認識アルゴリズムは、共通に使用される CLRL ウィンドウ・パターンが基になります。検出を成功させるために、シミュレートされるウィンドウの上と横の枠に対して、次の規則が真でなければなりません。

  1. 上部の枠では、WebFacing は (先頭行、先頭桁) から (先頭行、最終桁) までのスペースを占有している固定フィールドまたは出力フィールドを調べ、それをウィンドウ・タイトルとして使用します。固定フィールドが使用され、同じ文字が (先頭行、先頭桁 +1) から (先頭行、最終桁 -1) まで繰り返し使用される場合は、上部の枠の形成に使用される文字はタイトルとして使用されず、単に除去されます。
  2. 横の枠では、WebFacing はレコードの 2 行目から 2 行目の最後までの固定フィールドを検査します。シミュレートされるウィンドウの左と右の枠には、同じストリングを使用する必要があります。これが真の場合は、横の枠の形成に使用するストリングは除去されます。

注: シミュレートされるウィンドウの下の枠は、この行をメッセージ情報の表示に使用することがあるので、変更されません。

以下の 5250 の振る舞いは直観的ではなく、エミュレートされません: 入力可能フィールドがない CLRL レコードは画面上のスペースを占有しません。 入力可能フィールドなしの CLRL(*ALL) レコードを書き込むと、画面は最初に消去されてから、レコードが表示されます。しかし、前に画面に表示されていたレコードはアクティブ・レコード・テーブルから除去されず、後から OVERLAY 検査のために使用されます。OVERLAY レコードを書き込むと、まず始めに、アクティブ・レコード・テーブルのレコードがオーバーラップしているかどうかを検査します。オーバーラップしている場合は、それらのレコードはアクティブ・レコード・テーブルから除去され、この OVERLAY レコードを画面に書き込む前に、これらのレコードからの行は画面から消去されます。また、上記のルールは CLRL(nn|*END|*NO) にも適用されます。 WebFacing はこの振る舞いから逸脱して、オーバーラップ検査を実行する時にその画面上にあるレコードだけを考慮します。アクティブ・レコード・テーブル中にはあるが、画面上にないレコードは考慮されません。