‎2008 May 02 8:03 AM
Hi all,
I have two screens. 1st screen calles second.
Second has got Table control with both scroll bars. Vertical scroll bar limit = 20.
When i enter data into Table control and press vertical scroll bar down, data gets cleared.
How to solve this?
Thanks in advance.
‎2008 May 02 8:33 AM
‎2008 May 02 10:30 AM
go through this
REPORT YJAR_VENDOR_INBOUND02 NO STANDARD PAGE HEADING LINE-SIZE 255
MESSAGE-ID ZABC.
*******************************************************************************
STRUCTURE DEFINITIONS :
*
*******************************************************************************
TYPES : BEGIN OF TY_SOURCE ,
LIFNR TYPE LIF16 ,
BUKRS TYPE BUKRS ,
EKORG TYPE EKORG ,
KTOKK TYPE KTOKK ,
NAME1 TYPE AD_NAME1 ,
SORTL TYPE AD_SORT1 ,
LAND1 TYPE LAND1 ,
BANKS TYPE BANKS ,
BANKL TYPE BANKK ,
BANKN TYPE BANKN ,
AKONT TYPE AKONT ,
FDGRV TYPE FDGRV ,
WAERS TYPE BSTWA ,
END OF TY_SOURCE ,
BEGIN OF TY_HEADER ,
LIFNR TYPE LIF16 ,
BUKRS TYPE BUKRS ,
EKORG TYPE EKORG ,
KTOKK TYPE KTOKK ,
NAME1 TYPE AD_NAME1 ,
SORTL TYPE AD_SORT1 ,
LAND1 TYPE LAND1 ,
AKONT TYPE AKONT ,
FDGRV TYPE FDGRV ,
WAERS TYPE BSTWA ,
END OF TY_HEADER ,
BEGIN OF TY_ITEM ,
LIFNR TYPE LIF16 ,
BANKS TYPE BANKS ,
BANKL TYPE BANKK ,
BANKN TYPE BANKN ,
END OF TY_ITEM .
*******************************************************************************
INTERNAL TABLE AND WORK AREA DEFINITIONS :
*
*******************************************************************************
DATA : T_SOURCE TYPE STANDARD TABLE OF TY_SOURCE INITIAL SIZE 1 ,
W_SOURCE TYPE TY_SOURCE ,
W_SOURCE1 TYPE TY_SOURCE ,
T_TARGET TYPE STANDARD TABLE OF BDCDATA INITIAL SIZE 1 ,
W_TARGET TYPE BDCDATA ,
T_HEADER TYPE STANDARD TABLE OF TY_HEADER INITIAL SIZE 1 ,
W_HEADER TYPE TY_HEADER ,
T_ITEM TYPE STANDARD TABLE OF TY_ITEM INITIAL SIZE 1 ,
W_ITEM TYPE TY_ITEM ,
I(2) TYPE C ,
FNAM(20) .
*******************************************************************************
UPLOADING FLATFILE TO SOURCE INTERNAL TABLE :
*
*******************************************************************************
PERFORM SUB_UPLOAD_FLATFILE.
PERFORM SUB_SPLIT_DATA.
*include bdcrecx1.
*
*start-of-selection.
*
*perform open_group.
LOOP AT T_HEADER INTO W_HEADER .
REFRESH T_TARGET .
PERFORM BDC_DYNPRO USING 'SAPMF02K' '0100'.
PERFORM BDC_FIELD USING 'BDC_CURSOR' 'RF02K-KTOKK'.
PERFORM BDC_FIELD USING 'BDC_OKCODE' '/00'.
PERFORM BDC_FIELD USING 'RF02K-LIFNR' W_HEADER-LIFNR.
PERFORM BDC_FIELD USING 'RF02K-BUKRS' W_HEADER-BUKRS.
PERFORM BDC_FIELD USING 'RF02K-EKORG' W_HEADER-EKORG.
PERFORM BDC_FIELD USING 'RF02K-KTOKK' W_HEADER-KTOKK.
PERFORM BDC_DYNPRO USING 'SAPMF02K' '0110'.
PERFORM BDC_FIELD USING 'BDC_CURSOR' 'LFA1-LAND1'.
PERFORM BDC_FIELD USING 'BDC_OKCODE' '/00'.
PERFORM BDC_FIELD USING 'LFA1-NAME1' W_HEADER-NAME1.
PERFORM BDC_FIELD USING 'LFA1-SORTL' W_HEADER-SORTL.
PERFORM BDC_FIELD USING 'LFA1-LAND1' W_HEADER-LAND1.
PERFORM BDC_DYNPRO USING 'SAPMF02K' '0120'.
PERFORM BDC_FIELD USING 'BDC_CURSOR' 'LFA1-KUNNR'.
PERFORM BDC_FIELD USING 'BDC_OKCODE' '/00'.
PERFORM BDC_DYNPRO USING 'SAPMF02K' '0130'.
PERFORM BDC_FIELD USING 'BDC_CURSOR' 'LFBK-BANKL(02)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE' 'ENTR'.
I = '01' .
LOOP AT T_ITEM INTO W_ITEM WHERE LIFNR = W_HEADER-LIFNR .
CONCATENATE 'LFBK-BANKS(' I ')' INTO FNAM .
PERFORM BDC_FIELD USING FNAM W_ITEM-BANKS.
CONCATENATE 'LFBK-BANKL(' I ')' INTO FNAM .
PERFORM BDC_FIELD USING FNAM W_ITEM-BANKL.
CONCATENATE 'LFBK-BANKN(' I ')' INTO FNAM .
PERFORM BDC_FIELD USING FNAM W_ITEM-BANKN.
I = I + 1 .
IF I GT 5 .
PERFORM BDC_DYNPRO USING 'SAPMF02K' '0130'.
PERFORM BDC_FIELD USING 'BDC_CURSOR' 'LFBK-BANKS(01)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE' 'P+'.
I = '01'.
ENDIF.
PERFORM BDC_DYNPRO USING 'SAPMF02K' '0130'.
PERFORM BDC_FIELD USING 'BDC_CURSOR' 'LFBK-BANKS(01)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE' '=ENTR'.
ENDLOOP .
PERFORM BDC_DYNPRO USING 'SAPMF02K' '0210'.
PERFORM BDC_FIELD USING 'BDC_CURSOR' 'LFB1-FDGRV'.
PERFORM BDC_FIELD USING 'BDC_OKCODE' '/00'.
PERFORM BDC_FIELD USING 'LFB1-AKONT' W_HEADER-AKONT.
PERFORM BDC_FIELD USING 'LFB1-FDGRV' W_HEADER-FDGRV.
PERFORM BDC_DYNPRO USING 'SAPMF02K' '0215'.
PERFORM BDC_FIELD USING 'BDC_CURSOR' 'LFB1-ZTERM'.
PERFORM BDC_FIELD USING 'BDC_OKCODE' '/00'.
PERFORM BDC_DYNPRO USING 'SAPMF02K' '0220'.
PERFORM BDC_FIELD USING 'BDC_CURSOR' 'LFB5-MAHNA'.
PERFORM BDC_FIELD USING 'BDC_OKCODE' '/00'.
PERFORM BDC_DYNPRO USING 'SAPMF02K' '0310'.
PERFORM BDC_FIELD USING 'BDC_CURSOR' 'LFM1-WAERS'.
PERFORM BDC_FIELD USING 'BDC_OKCODE' '/00'.
PERFORM BDC_FIELD USING 'LFM1-WAERS' W_HEADER-WAERS.
PERFORM BDC_DYNPRO USING 'SAPMF02K' '0320'.
PERFORM BDC_FIELD USING 'BDC_CURSOR' 'RF02K-LIFNR'.
PERFORM BDC_FIELD USING 'BDC_OKCODE' '=ENTR'.
PERFORM BDC_DYNPRO USING 'SAPLSPO1' '0300'.
PERFORM BDC_FIELD USING 'BDC_OKCODE' '=YES'.
*perform bdc_transaction using 'XK01'.
*
*perform close_group.
CLEAR W_HEADER .
CALL TRANSACTION 'XK01'
USING T_TARGET
MODE 'A'.
ENDLOOP .
&----
*& Form SUB_UPLOAD_FLATFILE
&----
THIS SUBROUTINE IS USED TO UPLOAD THE FLATFILE TO SOURCE INTERNAL TABLE
-
FORM SUB_UPLOAD_FLATFILE .
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = 'E:/FLATFILE.TXT'
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
IMPORTING
FILELENGTH =
HEADER =
TABLES
DATA_TAB = T_SOURCE
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17
.
IF SY-SUBRC 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " SUB_UPLOAD_FLATFILE
&----
*& Form SUB_SPLIT_DATA
&----
THIS SUBROUTINE IS USED TO SPLIT DATA FROM SOURCE INTERNAL TABLE TO
HEADER AND ITEM INTERNAL TABLE
-
FORM SUB_SPLIT_DATA .
LOOP AT T_SOURCE INTO W_SOURCE .
W_SOURCE1 = W_SOURCE .
AT NEW LIFNR .
W_HEADER-LIFNR = W_SOURCE1-LIFNR.
W_HEADER-BUKRS = W_SOURCE1-BUKRS.
W_HEADER-EKORG = W_SOURCE1-EKORG.
W_HEADER-KTOKK = W_SOURCE1-KTOKK.
W_HEADER-NAME1 = W_SOURCE1-NAME1.
W_HEADER-SORTL = W_SOURCE1-SORTL.
W_HEADER-LAND1 = W_SOURCE1-LAND1.
W_HEADER-AKONT = W_SOURCE1-AKONT.
W_HEADER-FDGRV = W_SOURCE1-FDGRV.
W_HEADER-WAERS = W_SOURCE1-WAERS.
APPEND W_HEADER TO T_HEADER .
ENDAT .
W_ITEM-LIFNR = W_SOURCE-LIFNR .
W_ITEM-BANKS = W_SOURCE-BANKS .
W_ITEM-BANKL = W_SOURCE-BANKL.
W_ITEM-BANKN = W_SOURCE-BANKN.
APPEND W_ITEM TO T_ITEM .
CLEAR W_HEADER.
CLEAR W_ITEM .
ENDLOOP.
ENDFORM. " SUB_SPLIT_DATA
-
Start new screen *
-
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR W_TARGET.
W_TARGET-PROGRAM = PROGRAM.
W_TARGET-DYNPRO = DYNPRO.
W_TARGET-DYNBEGIN = 'X'.
APPEND W_TARGET TO T_TARGET.
ENDFORM. "BDC_DYNPRO
-
Insert field *
-
FORM BDC_FIELD USING FNAM FVAL.
IF FVAL SPACE.
CLEAR W_TARGET.
W_TARGET-FNAM = FNAM.
W_TARGET-FVAL = FVAL.
APPEND W_TARGET TO T_TARGET.
ENDIF.
ENDFORM. "BDC_FIELD
****************FLAT FILE FORMAT***********************
1000-56 1000 1000 0001 ABC-01 TC IN US 123445678 123456 31000 A1 INR
1000-56 1000 1000 0001 ABC-01 TC IN US 123123123 234567 31000 A1 INR
1000-56 1000 1000 0001 ABC-01 TC IN US 123123123 345678 31000 A1 INR
1000-56 1000 1000 0001 ABC-01 TC IN US 123123123 345679 31000 A1 INR
1000-56 1000 1000 0001 ABC-01 TC IN US 123123123 345670 31000 A1 INR
1000-56 1000 1000 0001 ABC-01 TC IN US 123123123 345671 31000 A1 INR
1000-56 1000 1000 0001 ABC-01 TC IN US 123123123 345672 31000 A1 INR
1000-56 1000 1000 0001 ABC-01 TC IN US 123123123 345673 31000 A1 INR
1000-56 1000 1000 0001 ABC-01 TC IN US 123123123 345674 31000 A1 INR
‎2008 May 02 2:02 PM
hi,
your data is getting cleared because u have written query to fill table control in PAI.
you just do one thing write code to fill table in PBO of second screen.
if will work.
reward if useful.
‎2008 May 02 2:21 PM
Hi,
You have to check if in tho PAI you are updating your internal table and in tho PBO you are movin internal table data to table control:
PROCESS BEFORE OUTPUT.
loop at TG_NWTNFITM with control tc_itens
cursor tc_itens-current_line.
MODULE: MOVE_INT_TAB_TO_TABLE_CONTROL.
ENDLOOP.
PROCESS AFTER INPUT.
LOOP at TG_NWTNFITM.
MODULE: MOVE_TABLE_CONTROL_TO_INT_TAB.
ENDLOOP.
Regards,
Fernando
‎2008 May 02 2:35 PM
Dixit,
I am not sure about your code, I guess some where in your code, you are refershing the internal table, which is used for Table Control.
I suggest u, go through your code in Debug mode and check the Internal table.
Hope this Helps,
Thanks,
Swetha