SAP R/3 форум ABAP консультантов
Russian ABAP Developer's Club

Home - FAQ - Search - Memberlist - Usergroups - Profile - Log in to check your private messages - Register - Log in - English
Blogs - Weblogs News

Ввод данных с применением Table Control



 
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP
View previous topic :: View next topic  
Author Message
peleken
Специалист
Специалист



Joined: 17 Jan 2011
Posts: 61

PostPosted: Fri Feb 10, 2012 11:11 pm    Post subject: Ввод данных с применением Table Control Reply with quote

Здравствуйте, уважаемые эксперты.

Помогите с решением такой задачи (см. скрин)

Создал экранную таблицу. Мне необходимо ввести туда несколько строк значений. При вводе в первый столбец определенного значения в других столбцах напротив этого значения появляются информационные данные об этом значении, как на рисунке. Но как только я ввожу другое значение во вторую строку и нажимаю ввод, то это значение перескакивает в первую строку и уже показывает данные этого значения.
Понятно что при обработке таблицы я работаю с рабочей областью. Но как мне её зафиксировать в первой строке, что бы она осталась и дальше вводить N-е кол-во значений в последующих строках. Подскажите где рыть? курс ВС410 читал. Наверное плохо.


Code:
REPORT  ZTRANSF message-id zardm.

TABLES: ZTRANS, ZISSRET, ZARD.

CONTROLS TRANS TYPE TABLEVIEW USING SCREEN 0100.
TYPES: BEGIN OF T_TRANS,
  CLIENT TYPE ZTRANS-CLIENT,
  STOCKNO TYPE ZTRANS-STOCKNO,
  CC TYPE ZTRANS-CC,
  LOC TYPE ZTRANS-LOC,
  LOC_TR TYPE ZTRANS-LOC,
  QOH_TR TYPE ZTRANS-QOH,
  QOH TYPE ZTRANS-QOH,
  UOM TYPE ZTRANS-UOM,
  UOMRU TYPE ZTRANS-UOMRU,
  FULLDESC TYPE ZTRANS-FULLDESC,
  FULLDERU TYPE ZTRANS-FULLDERU,
  MARK TYPE CHAR1,
END OF T_TRANS.

CONSTANTS: CONST_X(1)     TYPE C VALUE 'X'.

DATA: ITR TYPE TABLE OF T_TRANS,
      "ITR_NEW TYPE TABLE OF T_TRANS,
      "ITR_DEL TYPE TABLE OF T_TRANS,
      WA_TR TYPE T_TRANS,
      ITR_Z TYPE TABLE OF ZISSRET,
      WA_Z LIKE LINE OF ITR_Z.
DATA: AKTINDEX LIKE SY-TABIX VALUE 1.

DATA: MSIDX LIKE SY-TABIX,
      READ_INDEX LIKE SY-TABIX.
DATA: CURFIELD(30)    TYPE C.
DATA: LOOP_ZEILE      LIKE SY-STEPL.
DATA: OK_CODE TYPE SY-UCOMM,
      LOC_TR TYPE ZTRANS-LOC,
      ST TYPE I,
      QOH_TR(10) TYPE C,
      ITR_LINES LIKE SY-LOOPC,
      ITR_TOPLINE LIKE SY-LOOPC,
      LINES TYPE I,
      CONF.
*-------------------------------------------------------------------------------
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
MODULE GET_LINES.
  LOOP AT ITR INTO WA_TR WITH CONTROL TRANS CURSOR TRANS-CURRENT_LINE.
    MODULE READ_TABLE_V.
  ENDLOOP.
MODULE SET_CURSOR_TR.
*
PROCESS AFTER INPUT.

LOOP AT ITR.
  CHAIN.
  FIELD ZTRANS-STOCKNO.
  FIELD ZTRANS-CC.

   MODULE TRANS_MODIFY ON CHAIN-REQUEST.
  ENDCHAIN.
FIELD WA_TR-MARK

MODULE TRANS_MARK_TC ON REQUEST.
ENDLOOP.
MODULE USER_COMMAND_0100.
MODULE ZTRANS_USER_COMMAND.
MODULE TR_EXIT.
*------------------------------------------------------------------------------

MODULE GET_LINES OUTPUT.
DATA: L_LINES LIKE SY-TFILL.
DESCRIBE TABLE ITR LINES L_LINES.
ADD 1 TO L_LINES.
TRANS-LINES = L_LINES.
AKTINDEX = TRANS-TOP_LINE.

ENDMODULE.                 " GET_LINES  OUTPUT
*------------------------------------------------------------------------------

MODULE READ_TABLE_V OUTPUT.
ITR_LINES = SY-LOOPC.
MOVE-CORRESPONDING WA_TR TO ZTRANS.
ENDMODULE.                 " READ_TABLE_V  OUTPUT
*------------------------------------------------------------------------------

MODULE SET_CURSOR_TR OUTPUT.
 IF ZISSRET-REFNO IS NOT INITIAL.
  SET CURSOR FIELD 'ZTRANS-STOCKNO' LINE 1.
  ENDIF.

ENDMODULE.                 " SET_CURSOR_TR  OUTPUT
*----------------------------------------------------------------------*

MODULE TRANS_MODIFY INPUT.
MOVE-CORRESPONDING ZTRANS TO WA_TR.
READ TABLE ITR INTO WA_TR WITH KEY STOCKNO = WA_TR-STOCKNO.
MODIFY ITR FROM WA_TR INDEX TRANS-CURRENT_LINE.
IF SY-SUBRC NE 0.
 APPEND WA_TR TO ITR.
ENDIF.
IF LOC_TR = SPACE.
    SET CURSOR FIELD 'LOC_TR' LINE SY-STEPL.

 ENDIF.
ENDMODULE.                 " TRANS_MODIFY  INPUT
*----------------------------------------------------------------------*

MODULE TRANS_MARK_TC INPUT.
DATA: WA2 LIKE LINE OF ITR.
  IF TRANS-LINE_SEL_MODE = 1
  AND WA_TR-MARK = 'X'.
    LOOP AT ITR INTO WA2
      WHERE MARK = 'X'.
      WA2-MARK = ''.
      MODIFY ITR FROM WA2 TRANSPORTING MARK.
    ENDLOOP.
  ENDIF.
  MODIFY ITR
    FROM WA_TR
    INDEX TRANS-CURRENT_LINE
    TRANSPORTING MARK.

ENDMODULE.                 " TRANS_MARK_TC  INPUT
*----------------------------------------------------------------------*

MODULE USER_COMMAND_0100 INPUT.
  CASE OK_CODE.
    WHEN 'REQU'.
      ZISSRET-USERIR = WA_Z-USERIR = SY-UNAME.
     
      SELECT * FROM ZARD INTO CORRESPONDING FIELDS OF TABLE ITR
        WHERE STOCKNO = WA_TR-STOCKNO
        AND CC = WA_TR-CC.

    WHEN 'MODF'.
      PERFORM SAVE_TRANS_DATA.

  ENDCASE.
ENDMODULE.                 " USER_COMMAND_0100  INPUT

*----------------------------------------------------------------------*

MODULE ZTRANS_USER_COMMAND INPUT.
OK_CODE = SY-UCOMM.
PERFORM USER_OK_TC USING 'TRANS'
                         'ITR'
                         'MARK'
                CHANGING OK_CODE.
SY-UCOMM = OK_CODE.
ENDMODULE.                 " ZTRANS_USER_COMMAND  INPUT



TRANSF.jpg
 Description:
 Filesize:  13.69 KB
 Viewed:  6198 Time(s)

TRANSF.jpg


Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Russian ABAP Developer's Club Forum Index -> ABAP All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG.
SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG.
Every effort is made to ensure content integrity. Use information on this site at your own risk.