7.26.3 DEF_LIST についてのコメント/警告

  • 作業リストには2つのタイプがあります。1つは、ENTRYSパラメータに*MAXが指定された作業リストです。このタイプのリストは、メモリーを動的に割り当てることから、ダイナミック作業リストと呼ばれます。もう1つの作業リストは、ENTRYSパラメータにその他の値が指定されたもので、スタティック作業リストと呼ばれます。

警告

  • スタティック作業リストを定義する際は、各作業リストに割り当てられる記憶域がリストの項目の長さ×項目数に等しくなることを覚えておいてください。そのため、多数の作業リストを使用するファンクションに割り当てられる記憶容量は、非常に大きくなる可能性があります。
  • 通常の状況では、リストの記憶容量を変更する必要はありません。 記憶容量の変更による影響を理解せずにその設定を変更すると、アプリケーションのパフォーマンスや安定性に影響を与える可能性があります。作業を続ける前に、LANSA販売代理店にお問い合わせください。
  • スタティック作業リストが、通常使用可能なWindows32 ビットのプロセス・メモリー容量を超えると、メッセージ870、871、872、873、および874が表示されることがあります。メッセージ871の例として、「3GBの最大32ビットWindowsサーバープロセスメモリの上限を超えます。」などがあります。これらのメッセージは、致命的エラーに近いものとして捉えてください。これらのエラーは、メモリー要件が特定のWindows構成の容量を超えていることを示します。一般に、IBM iなどその他のプラットフォームの容量はこれより大きいですが、その場合も、これらの警告は、設計を再検討する必要があることを示します。
  • メッセージ874には、リストのサイズが含まれます。メッセージ874の例として、「リストページサイズ = 1098000000バイト エントリ長 = 549バイト」などがあります。
  • 一方、ダイナミック作業リストの場合、事前に割り当てられるのは、リスト項目のポインターを保持するための小容量のメモリーのみです。その後、必要容量が増加したときに、オペレーティング・システム・メモリーの1ページ分または1項目のサイズのいずれか大きい容量のメモリーが割り当てられます。Microsoft Windowsの場合、1ページのサイズは32KBです。メモリーは、項目がリストから削除されると解放されます。項目を無限に追加し続けると、最終的にWindowsでメモリーが不足します。
  • IBM iで使用可能な合計メモリー容量はこれより大きいですが、1回のメモリー割り当て容量は最大16MBに制限されます。すなわち、IBM iでは、各スタティック作業リストは合計サイズ16MBに制限され、各ダイナミック作業リストは、最大項目幅が16MBに制限されます。したがって、ダイナミック作業リストの合計容量の方がはるかに大きく、この容量は、オペレーティング・システムがプロセスで使用できる合計メモリー容量によってのみ制限されます。厳密には、これがIBM iの制限です。その他すべてのプラットフォームについても、全リストで使用する合計メモリーに関して、各リストに同じ制限が適用されます。
  • 大きな作業リストでは満足のいくパフォーマンスが得られない可能性があります。特に LOC_ENTRY が使用された場合、インデックスがないので、順番にしかアクセスできません。リストを素早く検索できるようにする手順は、SPACE BIF を参照してください。

注意:定義したRDML作業リストの基本リストは、合計長さが256バイトに制限されます。この制限は、組み込み関数 TRANSFORM_LIST を呼び出して付加リストを指定することにより克服できます。または、ダイナミック作業リストでRDMLXファンクションを使用します。

作業リストは無限のリソースではないため、項目数は、現実的で合理的な範囲にとどめてください。

  • ブラウズ・リストで定義されたフィールドが画面上の1行に収まらない場合、次の行に折り返されます。例えば、コマンドが以下のように指定されているとします。
   DEF_LIST   NAME(#ORDERLINE) FIELDS(#ORDLIN  #PRODUCT #QUANTITY #PRICE)

この場合、画面上では、リストは以下のように表示されます。

 
    番号     製品                     数量                  価格 
     99       9999999               99999               99999.99 
     99       9999999               99999               99999.99 
     99       9999999               99999               99999.99 
 

以下のように、DEF_LISTコマンドにさらにフィールドを追加したとします。

   DEF_LIST   NAME(#ORDERLINE) FIELDS(#ORDLIN #PRODUCT #PDESC #QUANTITY #PRICE #TAXRTE)

この場合、リストは以下のように表示されます。

 
     番号     製品              記述 
     99      9999999           XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 
     数量     99999         価格 99999.99     税率 99.99 
     99      9999999           XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 
     数量     99999         価格 99999.99     税率 99.99 
     99     9999999          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 
     数量     99999         価格 99999.99     税率 99.99 
 

フィールド属性/画面設計機能を使用して、自動設計された画面レイアウトを任意に変更することができます。

詳細は以下を参照してください。

  • フィールド属性の詳細については、フィールド属性 を参照してください。
  • 画面設計機能の詳細については、『Visual LANSA ユーザーガイド』の画面設計の機能を参照してください。ただし、ブラウズ・リストのフィールドに対して指定された行属性は無視されることに注意してください。

『LANSA/AD ユーザーガイド』

  • フィールド属性については、新しいフィールド属性の概念として「新規のフィールド定義の作成」を参照してください。
  • 画面設計機能の詳細については、「画面設計機能」を参照してください。ただし、ブラウズ・リストのフィールドに対して指定された行属性は無視されることに注意してください。
  • No labels