2

KUNNR、NAME_1、Z_CLASSの3つのフィールドを持つテーブルを作成しました。KUNNRにはデータ要素としてKUNNRがあり、NAME_1にはNAME1_GPがあり、Z_CLASSには3つの値(1、2、または3)で作成したデータ要素があります。テーブルメンテナンスジェネレーターを作成し、SM30でいくつかのデータを入力しました。ここで、クライアント番号(KUNNR)を入力してEnterキーを押すと、クライアントの名前(NAME_1)が自動的に表示されるようにする必要があります。Z_CLASSが入力され、空白のままになっていないことを確認する必要があります。私はSAPを初めて使用するため、ソリューションを検索する方法がよくわかりません。ありがとうございました。

PROCESS BEFORE OUTPUT.
 MODULE LISTE_INITIALISIEREN.
 LOOP AT EXTRACT WITH CONTROL
  TCTRL_Z10FICLASSFICA CURSOR NEXTLINE.
   MODULE LISTE_SHOW_LISTE.
 ENDLOOP.
*
PROCESS AFTER INPUT.
 MODULE LISTE_EXIT_COMMAND AT EXIT-COMMAND.
 MODULE LISTE_BEFORE_LOOP.
 LOOP AT EXTRACT.
   MODULE LISTE_INIT_WORKAREA.
   CHAIN.
    FIELD Z10FICLASSFICA-KUNNR .
    FIELD Z10FICLASSFICA-NAME1 .
    FIELD Z10FICLASSFICA-Z_CLASS .
    MODULE SET_UPDATE_FLAG ON CHAIN-REQUEST.
   ENDCHAIN.
   FIELD VIM_MARKED MODULE LISTE_MARK_CHECKBOX.
   CHAIN.
    FIELD Z10FICLASSFICA-KUNNR .
    MODULE LISTE_UPDATE_LISTE.
   ENDCHAIN.
 ENDLOOP.
 MODULE LISTE_AFTER_LOOP.
4

2 に答える 2

2

名前については、冗長フィールドとして保持しないでください。外部キー関係を定義してから、メンテナンスビューを使用して、顧客番号に対応する名前を表示します。

必須フィールドチェックの場合は、生成された画面を編集し、必須フィールドが入力されているかどうかをチェックするモジュールを追加します。画面フィールドオプションでフィールドを必須に設定することも可能ですが、空の行でもフィールドが必須として表示されるため、これはお勧めしません。

于 2012-10-15T17:37:12.730 に答える
-1

私は両方の問題の答えを見つけました。クライアントの名前を自動的に入力するために、イベント「非表示フィールドの入力」(21番)を含むフォームルーチンを使用しました。生成されたインクルードでは、次のコードを使用しました。

FORM fill_hidden.
DATA: lc_name1 TYPE kna1-name1.
Data: lc_kunnr TYPE kna1-kunnr.

lc_kunnr = z10ficlassfica-kunnr.

SELECT SINGLE name1 INTO lc_name1 FROM kna1 WHERE kunnr = lc_kunnr.

z10ficlassfica-name1 = lc_name1.
endform.

必須フィールドについては、[メンテナンス画面]、[要素リスト]タブ、[特殊属性]タブに移動し、[エントリ]列のドロップダウンメニューから[必須]を選択しました。チャームのように働いた。すべての回答をありがとう:)

于 2012-10-16T10:35:45.957 に答える