Migaro. 技術Tips

                       

ミガロ. 製品の技術情報
IBMiの活用に役立つ情報を掲載!


SmartPad4i バックエンド側からHTMLの属性変更

SmartPad4i(Cobos4i)は、画面のインターフェースをHTML、バックエンドの業務ロジック部分をRPG/COBOLで作成できるツールです。RPG/COBOL側ではSETATRという処理(サブルーチン)を呼び出すことでHTML側の属性を簡単に変更することができます。
Tipsでは、SETATRの使用方法についてご紹介します。

SETATRについて

IBMi側のSETATRサブルーチンを利用すると、Designerで設定した要素のHTML属性を変更することができます。
例えば、新規商品登録画面などで、商品コードが入力完了するまで、商品名の入力欄が使用できないように設定することや、非表示にすることができます。

使用方法

SETATRはRPG/COBOL側から、フィールド(変数)を設定して呼びだします。
変数には以下のような設定が可能です。

  • [SPFLDN]
    処理対象要素のid属性名を設定
  • [SPORDF]
    サブファイル以外の場合 BLANKや’0000’を設定   サブファイルの場合は以下の設定が可能
    • ‘ALL ‘ : 全行
    • ‘ODD ‘奇数行
    • ‘EVEN’ : 偶数行
    • ‘0005’ : 行指定 (例 5行目  
  • [SPORD1]
    サブファイル以外の場合はBLANKや’0000’を設定
    サブファイルの場合はサブファイルの開始行(SPL1xx)を設定
  • [SPELEM]
    ラジオボタンの対応項目を設定
  • [SPATRC]
    以下のプロパティを要素に設定
    • ‘ ‘ : 前回の設定結果を取り消し
    • ‘D ‘ : Disableを設定 (利用不可)
    • ‘E ‘ : Enableを設定 (利用可能)
    • ‘H ‘ : Hiddenを設定 (非表示)
    • ‘R ‘ : Readonlyを設定 (読み取り専用)
  • [SPCLAS]
    クラス属性を設定
    • ‘ ‘ : 前の設定を消去
    • 適用するクラス名を指定 ※クラス名は10文字まで
  • [SPATRB]
    SPATRBには、SETATRの全ての設定が含まれます。
    SETATRの設定を全て消去する場合には、
      *BLANKを指定
  • [SPRETC]
    SETATR実行結果を返却
    • ’00’ : 正常に処理完了
    • ’01’ : SPFLDN が未設定
    • ’02’ : 利用できない要素
    • ’03’ : SPORDF 設定値が不正
    • ’04’ : SPORD1 設定値が不正
    • ’99’ : 100項目を超えた

SETATRの例(RPG / COBOL)

SETATRで非表示に設定

SETATR で id属性に”SNM”を設定した要素を非表示にする。

RPG

 C                     MOVEL'SNM'     SPFLDN   フィールド名
 C                     MOVEL*BLANK    SPORDF   サブファイル行数 
 C                     MOVEL*BLANK    SPORD1   サブファイル開始行
 C                     MOVEL*BLANK    SPELEM    
 C                     MOVEL'H '      SPATRC   属性設定[H] 非表示
 C                     MOVEL*BLANK    SPCLAS   クラス属性を設定
 C                     MOVEL*BLANK    SPRETC   返り値
 C                     EXSR SETATR             SETATR実行

COBOL

                      MOVE  "SNM"  TO  SPFLDN   フィールド名
                       MOVE  SPACE  TO  SPORDF   サブファイル行数 
                       MOVE  SPACE  TO  SPORD1   サブファイル開始行
                       MOVE  SPACE  TO  SPELEM    
                       MOVE  "H "   TO  SPATRC   属性設定[H] 非表示
                       MOVE  SPACE  TO  SPCLAS   クラス属性を設定
                       MOVE  SPACE  TO  SPRETC   返り値
                       PERFORM SETATR THRU SETATR-EXIT    SETATR実行

また、SETATRを利用することで、要素のclass属性を
動的に変更することもできます。
この機能を利用して、値に問題のある入力覧の背景色等の表示設定を
変更することが可能です。

SETATRでCLASS属性を設定

SETATR で id属性に”SNM”を設定した要素にclass属性[ERR]を設定
することで背景色を赤に変更する。

HTML

■HTML(CSS側)
 <!-- CSS 背景色を赤 -->
 <style>
   .ERR { background-color: #FFCCCC;  } 
 </style>

RPG

 C                     MOVEL'SNM'     SPFLDN   フィールド名
 C                     MOVEL*BLANK    SPORDF   サブファイル行数 
 C                     MOVEL*BLANK    SPORD1   サブファイル開始行
 C                     MOVEL*BLANK    SPELEM
 C                     MOVEL*BLANK    SPATRC
 C                     MOVEL'ERR'     SPCLAS   クラス名称を設定
 C                     MOVEL*BLANK    SPRETC   返り値
 C                     EXSR SETATR             SETATR実行

COBOL

                       MOVE  "SNM"  TO  SPFLDN   フィールド名
                       MOVE  SPACE  TO  SPORDF   サブファイル行数 
                       MOVE  SPACE  TO  SPORD1   サブファイル開始行
                       MOVE  SPACE  TO  SPELEM
                       MOVE  SPACE  TO  SPATRC
                       MOVE  "ERR"  TO  SPCLAS   クラス名称を設定
                       MOVE  SPACE  TO  SPRETC   返り値
                       PERFORM SETATR THRU SETATR-EXIT    SETATR実行