Versions Compared

Key

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

[ Image Added |../../index.htm#lansa/dsnbi_0040.htm]
現在地:

Anchor
_Ref85618262
_Ref85618262
Anchor
_Toc130909915
_Toc130909915
例 - 組み込み関数を 3GL サブルーチンとして定義

このセクションでは、LANSA ファンクションのインライン・コードの一部となる組み込み関数の作成に必要となる手順を説明していきます。この例は非常に簡素なものですが、組み込み関数が LANSA システムに組み込まれる様子が理解できると思います。
シナリオ:これはユーザー定義の組み込み関数です。この組み込み関数を使って、日付を YYMMDD 形式から DDMMYY 形式に切り替えします。
組み込み関数が日付の操作を行なうためには、データ構造 (I SPECS) とコード (C SPECS) が必要です。
この組み込み関数の名前は UD_FLIP_DATE です。
次に利用可能な識別子は 412 です。
(DC@F47 による) BIF 定義

...

 
以下のようにデータを組み込み関数定義ファイルに入力します: BIF412ISPC という名前のメンバーを QBIFSRC に作成して、そのデータ構造を以下のようにコーディングします。
I* 組み込み関数 412 - UD_FLIP_DATE が私用するコード
I*
IDATEIN      DS
I                                        1   60NUMDI
I                                        1   20YRIN
I                                        3   40MNIN
I                                        5   60DYIN
I*
IDATEOU      DS
I                                        1   60NUMDO
I                                        1   20DYOU
I                                        3   40MNOU
I                                        5   60YROU
BIF412CSPC という名前のメンバーを QBIFSRC に作成して、以下のように日付処理のコーディングをします。
C*====================================================
C* IB@412 : UD_FLIP_DATE
C*====================================================
CSR         IB@412    BEGSR
C*
C                     MOVEL'Y'       DC@RET
C*
C                     Z-ADDB@412A    NUMDI
C*
C                     MOVELDYIN      DYOU
C                     MOVELMNIN      MNOU
C                     MOVELYRIN      YROU
C*
C                     Z-ADDNUMDO     B@412B
C*
CSR                   ENDSR
これらのソース・メンバーは、コンパイル時に生成される /COPY により、この組み込み関数を利用する LANSA ファンクションのインライン・コードに含まれます。
[ Image Added |../../index.htm#lansa/dsnbi_0040.htm]