zoukankan      html  css  js  c++  java
  • ラジオボタンで選択項目を動的に変更

    概要


    選択されたラジオボタンによって各項目の入力可能?入力不可を動的に制御する方法を紹介したいと思う。

    サンプルコード:単一

    単一
     
    ABAP
    PARAMETERS r_bukrs RADIOBUTTON GROUP rg DEFAULT 'X' USER-COMMAND command.
    PARAMETERS r_vkorg RADIOBUTTON GROUP rg.
    PARAMETERS p_bukrs TYPE bukrs.
    PARAMETERS p_vkorg TYPE vkorg.
     
    AT SELECTION-SCREEN OUTPUT.
      LOOP AT SCREEN.
        CASE screen-name.
          WHEN 'P_BUKRS'.
            IF r_bukrs = 'X'.
              screen-input = 1.
            ELSE.
              screen-input = 0.
            ENDIF.
          WHEN 'P_VKORG'.
            IF r_vkorg = 'X'.
              screen-input = 1.
            ELSE.
              screen-input = 0.
            ENDIF.
        ENDCASE.
        MODIFY SCREEN.
      ENDLOOP.
    

      

    説明


    今回は、r_bukrsを選択された場合、p_bukrsを入力可能にしp_vkorgを入力不可にする。
    また、逆にr_vkorgを選択された場合、p_bukrsを入力不可にしp_vkorgを入力可能にするというプログラムである。
    気をつけて頂きたいのがAT SELECTION-SCREEN OUTPUT.のイベントブロックが実行されるようにラジオボタンにUSER-COMMANDのオプションをつける事だ。
    SCREENは選択画面の情報をもっているので、ループしSCREEN-NAMEで処理対象の選択項目を判断する。
    その後、どちらのラジオボタンが選択されているかを確認し、SCREEN-INPUTに1(入力可能)か0(入力不可)の値を設定する。
    最後にMODIFYでSCREENの値を反映する。

    上記の例は一つ一つの項目を設定したが、複数の項目を同時に設定したい場合はグループを設定する事で判断が可能だ。

    サンプルコード:グループ

    PARAMETERS r_bukrs RADIOBUTTON GROUP rg DEFAULT 'X' USER-COMMAND command.
    PARAMETERS r_vkorg RADIOBUTTON GROUP rg.
     
    PARAMETERS p_bukrs TYPE bukrs MODIF ID BUK.
    PARAMETERS p_land1 TYPE LAND1 MODIF ID BUK.
     
    PARAMETERS p_vkorg TYPE vkorg MODIF ID VKO.
    PARAMETERS p_vtweg TYPE vtweg MODIF ID VKO.
     
    AT SELECTION-SCREEN OUTPUT.
      LOOP AT SCREEN.
        CASE screen-group1.
          WHEN 'BUK'.
            IF r_bukrs = 'X'.
              screen-input = 1.
            ELSE.
              screen-input = 0.
            ENDIF.
          WHEN 'VKO'.
            IF r_vkorg = 'X'.
              screen-input = 1.
            ELSE.
              screen-input = 0.
            ENDIF.
        ENDCASE.
        MODIFY SCREEN.
      ENDLOOP.
    

      

    説明


    各選択項目にMODIF IDのオプションをつけると、SCREEN-GROUP1に値が設定される。
    その値を使用する事が各選択項目の名前を一つずつ確認する必要がなくなる。
    選択項目が多い場合にはプログラムソースを簡略化する事ができるのでお勧めだ。

    補足


    構造:screenは選択画面のさまざまな情報を保持しており、入力可能?入力不可だけではなく
    項目自体を表示?非表示(screen-invisible)にしたり、必須?任意(screen-required)を変更したりする事が可能だ。

  • 相关阅读:
    去 抚仙湖 和 去 洱海 差不多
    开源项目 D++
    未来 的 科学家, 不仅 是 数学家, 也是 系统设计 大师
    出一道 智商题 : 证明 永动机 是否 能 设计出来 ?
    评论一下 “推倒数学大厦”的 一个 作业题
    用 无穷级数 的 思路 三等分角
    三等分角 化圆为方 可以 考虑 用 无穷级数 的 方式 来 实现
    CPU 应该 搞 0 级 Cache , 而不是 大寄存器
    关于 智商 (2)
    关于 智商
  • 原文地址:https://www.cnblogs.com/yjyongil/p/10605248.html
Copyright © 2011-2022 走看看